--- 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 = 35
 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
@@ -4901,6 +4901,13 @@
 F:	include/scsi/osd_*
 F:	fs/exofs/
 
+OVERLAYFS FILESYSTEM
+M:	Miklos Szeredi <miklos@szeredi.hu>
+L:	linux-fsdevel@vger.kernel.org
+S:	Supported
+F:	fs/overlayfs/*
+F:	Documentation/filesystems/overlayfs.txt
+
 P54 WIRELESS DRIVER
 M:	Christian Lamparter <chunkeey@googlemail.com>
 L:	linux-wireless@vger.kernel.org
@@ -5452,7 +5459,7 @@
 F:	drivers/block/brd.c
 
 RANDOM NUMBER DRIVER
-M:	Matt Mackall <mpm@selenic.com>
+M:	Theodore Ts'o" <tytso@mit.edu>
 S:	Maintained
 F:	drivers/char/random.c
 
@@ -6258,7 +6265,7 @@
 
 STABLE BRANCH
 M:	Greg Kroah-Hartman <greg@kroah.com>
-L:	stable@kernel.org
+L:	stable@vger.kernel.org
 S:	Maintained
 
 STAGING SUBSYSTEM
--- 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)
@@ -659,6 +664,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/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/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 <tiwai@suse.de>
+ *
+ * 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 <linux/init.h>
+#include <linux/slab.h>
+#include <linux/export.h>
+#include <sound/core.h>
+#include <sound/control.h>
+#include <sound/jack.h>
+#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_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/hda_codec.c
+++ linux-3.2.0/sound/pci/hda/hda_codec.c
@@ -33,6 +33,7 @@
 #include <sound/jack.h>
 #include "hda_local.h"
 #include "hda_beep.h"
+#include "hda_jack.h"
 #include <sound/hda_hwdep.h>
 
 #define CREATE_TRACE_POINTS
@@ -1446,7 +1447,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 +1724,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 +1759,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 +2030,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 +2276,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 +2290,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);
@@ -3364,6 +3333,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 +4974,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 +5014,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 +5070,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 +5364,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_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 <tiwai@suse.de>
+ *
+ * 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_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);
 }
@@ -1120,8 +1087,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),
@@ -1750,7 +1715,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 +1726,6 @@
 		cxt5051_portc_automic(codec);
 		break;
 	}
-	snd_hda_input_jack_report(codec, nid);
 }
 
 static const struct snd_kcontrol_new cxt5051_playback_mixers[] = {
@@ -1901,8 +1864,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 +1879,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);
@@ -3052,7 +3012,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),
@@ -3450,7 +3409,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 +3713,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 +3722,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 +3936,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 +3951,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 +4020,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 +4055,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 +4073,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 +4084,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 +4162,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 +4200,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 +4231,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 +4337,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 +4346,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)
@@ -4386,22 +4404,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 +4439,53 @@
 	{}
 };
 
+/* 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(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 +4504,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;
--- 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/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/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/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/hda/patch_via.c
+++ linux-3.2.0/sound/pci/hda/patch_via.c
@@ -54,6 +54,7 @@
 #include <sound/asoundef.h>
 #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/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/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/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_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 */
@@ -4010,8 +4011,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 +4032,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 +4140,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 +4163,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 +4206,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 +4270,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 +4365,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 +4388,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 +4520,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 +4543,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 +4654,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 +4789,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 +4881,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 +4964,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 +5028,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 +5089,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 +5122,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 +5130,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 +5147,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 +5192,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 +5314,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 +5321,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 +5359,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 +5401,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 +5466,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;
@@ -5406,8 +5590,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;
@@ -5489,6 +5671,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 +5818,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 +5837,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 +5987,6 @@
 			break;
 		}
 	}
-	spec->vmaster_nid = 0x02;
 
 	alc_apply_fixup(codec, ALC_FIXUP_ACT_PROBE);
 
@@ -5798,8 +5994,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 +6040,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 +6060,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,6 +6078,7 @@
 	  .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 = 0x10ec0680, .name = "ALC680", .patch = patch_alc680 },
 	{ .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 },
@@ -5898,6 +6096,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/patch_cirrus.c
+++ linux-3.2.0/sound/pci/hda/patch_cirrus.c
@@ -26,6 +26,7 @@
 #include <sound/core.h>
 #include "hda_codec.h"
 #include "hda_local.h"
+#include "hda_jack.h"
 #include <sound/tlv.h>
 
 /*
@@ -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/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/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/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/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,
@@ -176,13 +177,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 +225,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 +1085,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 +1174,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 +1597,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 */
@@ -2875,7 +2841,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 +3520,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 +3533,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 +4132,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 +4153,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 +4242,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 +4313,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 +4371,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 +4381,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 +4398,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 +4411,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 +4469,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 +4633,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 +4732,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 +4748,7 @@
 		break;
 	}
 
-	switch (event->type) {
+	switch (event->action) {
 	case STAC_HP_EVENT:
 	case STAC_LO_EVENT:
 	case STAC_MIC_EVENT:
@@ -4835,7 +4756,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 +4780,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 +4874,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 +4977,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 +5780,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 +6257,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/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_hdmi.c
+++ linux-3.2.0/sound/pci/hda/patch_hdmi.c
@@ -36,6 +36,7 @@
 #include <sound/jack.h>
 #include "hda_codec.h"
 #include "hda_local.h"
+#include "hda_jack.h"
 
 static bool static_hdmi_pcm;
 module_param(static_hdmi_pcm, bool, 0644);
@@ -754,10 +755,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 +777,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 +809,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 +878,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);
@@ -904,11 +913,6 @@
 	snd_hda_codec_write(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 */
@@ -996,8 +1000,6 @@
 					   msecs_to_jiffies(300));
 		}
 	}
-
-	snd_hda_input_jack_report(codec, pin_nid);
 }
 
 static void hdmi_repoll_eld(struct work_struct *work)
@@ -1147,11 +1149,17 @@
 	struct hdmi_spec *spec = codec->spec;
 	int pin_idx = hinfo_to_pin_index(spec, hinfo);
 	hda_nid_t pin_nid = spec->pins[pin_idx].pin_nid;
+	int pinctl;
 
 	hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels);
 
 	hdmi_setup_audio_infoframe(codec, pin_idx, substream);
 
+	pinctl = snd_hda_codec_read(codec, pin_nid, 0,
+				    AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
+	snd_hda_codec_write(codec, pin_nid, 0,
+			    AC_VERB_SET_PIN_WIDGET_CONTROL, pinctl | PIN_OUT);
+
 	return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format);
 }
 
@@ -1226,21 +1234,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);
+	if (pcmdev > 0)
+		sprintf(hdmi_str + strlen(hdmi_str), ",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;
-
-	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 +1272,8 @@
 
 		if (err < 0)
 			return err;
+
+		hdmi_present_sense(per_pin, false);
 	}
 
 	return 0;
@@ -1286,14 +1290,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 +1312,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);
@@ -1911,6 +1913,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 */
 };
@@ -1957,6 +1960,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/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];
@@ -768,11 +770,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 +792,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 +1701,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
@@ -2509,6 +2513,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 +2757,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 +2974,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/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/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 <mcdebugger@duganet.ru> 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/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/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/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/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/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/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;
 	}
 
--- 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/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/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/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/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;
@@ -3186,7 +3413,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 +3537,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/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/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/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/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
@@ -2559,7 +2559,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 +3105,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 +3175,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;
--- 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/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/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(&register_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(&register_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 <tiwai@suse.de>
+ *
+ * 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 <linux/kernel.h>
+#include <linux/export.h>
+#include <sound/core.h>
+#include <sound/control.h>
+
+#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/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/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(&register_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(&register_mutex);
 	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/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/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/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;
--- 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(&register_mutex);
 	return 0;
--- 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/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/usb/card.c
+++ linux-3.2.0/sound/usb/card.c
@@ -336,7 +336,7 @@
 		return -ENOMEM;
 	}
 
-	mutex_init(&chip->shutdown_mutex);
+	init_rwsem(&chip->shutdown_rwsem);
 	chip->index = idx;
 	chip->dev = dev;
 	chip->card = card;
@@ -555,9 +555,11 @@
 		return;
 
 	card = chip->card;
-	mutex_lock(&register_mutex);
-	mutex_lock(&chip->shutdown_mutex);
+	down_write(&chip->shutdown_rwsem);
 	chip->shutdown = 1;
+	up_write(&chip->shutdown_rwsem);
+
+	mutex_lock(&register_mutex);
 	chip->num_interfaces--;
 	if (chip->num_interfaces <= 0) {
 		snd_card_disconnect(card);
@@ -574,11 +576,9 @@
 			snd_usb_mixer_disconnect(p);
 		}
 		usb_chip[chip->index] = NULL;
-		mutex_unlock(&chip->shutdown_mutex);
 		mutex_unlock(&register_mutex);
 		snd_card_free_when_closed(card);
 	} else {
-		mutex_unlock(&chip->shutdown_mutex);
 		mutex_unlock(&register_mutex);
 	}
 }
@@ -610,16 +610,20 @@
 {
 	int err = -ENODEV;
 
+	down_read(&chip->shutdown_rwsem);
 	if (!chip->shutdown && !chip->probing)
 		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/midi.c
+++ linux-3.2.0/sound/usb/midi.c
@@ -148,6 +148,7 @@
 		struct snd_usb_midi_out_endpoint* ep;
 		struct snd_rawmidi_substream *substream;
 		int active;
+		bool autopm_reference;
 		uint8_t cable;		/* cable number << 4 */
 		uint8_t state;
 #define STATE_UNKNOWN	0
@@ -1076,7 +1077,8 @@
 		return -ENXIO;
 	}
 	err = usb_autopm_get_interface(umidi->iface);
-	if (err < 0)
+	port->autopm_reference = err >= 0;
+	if (err < 0 && err != -EACCES)
 		return -EIO;
 	substream->runtime->private_data = port;
 	port->state = STATE_UNKNOWN;
@@ -1087,9 +1089,11 @@
 static int snd_usbmidi_output_close(struct snd_rawmidi_substream *substream)
 {
 	struct snd_usb_midi* umidi = substream->rmidi->private_data;
+	struct usbmidi_out_port *port = substream->runtime->private_data;
 
 	substream_open(substream, 0);
-	usb_autopm_put_interface(umidi->iface);
+	if (port->autopm_reference)
+		usb_autopm_put_interface(umidi->iface);
 	return 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),
 				  &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),
 				  NULL, 0, 1000);
+	up_read(&mixer->chip->shutdown_rwsem);
 
 	if (ret < 0) {
 		snd_printk(KERN_ERR
--- 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/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)
--- 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/card.h
+++ linux-3.2.0/sound/usb/card.h
@@ -86,6 +86,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/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/endpoint.c
+++ linux-3.2.0/sound/usb/endpoint.c
@@ -17,6 +17,7 @@
 
 #include <linux/gfp.h>
 #include <linux/init.h>
+#include <linux/ratelimit.h>
 #include <linux/usb.h>
 #include <linux/usb/audio.h>
 
@@ -147,8 +148,10 @@
 	int i;
 
 	/* stop urbs (to be sure) */
-	deactivate_urbs(subs, force, 1);
-	wait_clear_urbs(subs);
+	if (!subs->stream->chip->shutdown) {
+		deactivate_urbs(subs, force, 1);
+		wait_clear_urbs(subs);
+	}
 
 	for (i = 0; i < MAX_URBS; i++)
 		release_urb_ctx(&subs->dataurb[i]);
@@ -458,8 +461,8 @@
 
 	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);
+		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,7 +897,8 @@
 	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;
 
 	snd_usb_set_pcm_ops(as->pcm, stream);
--- 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/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/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/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/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/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/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/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/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/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 <trace/define_trace.h>
--- 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 <linux/fs.h>
+#include <linux/tracepoint.h>
+
+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 <trace/define_trace.h>
--- 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/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/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/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/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/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/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/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/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/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/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/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/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/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_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_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/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/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/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/linux/vt_kern.h
+++ linux-3.2.0/include/linux/vt_kern.h
@@ -130,7 +130,7 @@
 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 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/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/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/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/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/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/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/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/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/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/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/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
--- 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/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/seccomp.h
+++ linux-3.2.0/include/linux/seccomp.h
@@ -1,25 +1,89 @@
 #ifndef _LINUX_SECCOMP_H
 #define _LINUX_SECCOMP_H
 
+#include <linux/compiler.h>
+#include <linux/types.h>
 
+
+/* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, <mode>) */
+#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 <linux/audit.h>.
+ * @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 <linux/thread_info.h>
 #include <asm/seccomp.h>
 
-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 <linux/errno.h>
 
-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/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 */
 
--- 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(&current->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(&current->mems_allowed_seq, seq);
 }
 
 static inline void set_mems_allowed(nodemask_t nodemask)
 {
 	task_lock(current);
+	write_seqcount_begin(&current->mems_allowed_seq);
 	current->mems_allowed = nodemask;
+	write_seqcount_end(&current->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/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/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/filter.h
+++ linux-3.2.0/include/linux/filter.h
@@ -10,6 +10,7 @@
 
 #ifdef __KERNEL__
 #include <linux/atomic.h>
+#include <linux/compat.h>
 #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/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/efi.h
+++ linux-3.2.0/include/linux/efi.h
@@ -383,7 +383,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
  */
--- 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/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/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/hid.h
+++ linux-3.2.0/include/linux/hid.h
@@ -875,7 +875,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/pci_ids.h
+++ linux-3.2.0/include/linux/pci_ids.h
@@ -1823,7 +1823,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
 
@@ -2124,7 +2123,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/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,
--- 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/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/fs.h
+++ linux-3.2.0/include/linux/fs.h
@@ -482,6 +482,12 @@
  */
 #include <linux/quota.h>
 
+/*
+ * 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,6 +2112,7 @@
 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 *);
@@ -2579,7 +2604,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/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/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
--- 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)
 {
@@ -185,6 +186,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/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/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/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/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/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/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/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/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		avail_size;
 	};
 
 	__u16			vlan_tci;
@@ -1326,6 +1324,18 @@
 }
 
 /**
+ *	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)
+{
+	return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len;
+}
+
+/**
  *	skb_reserve - adjust headroom
  *	@skb: buffer to alter
  *	@len: bytes to move
@@ -1453,6 +1463,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 +1863,6 @@
 {
 	int delta = 0;
 
-	if (headroom < NET_SKB_PAD)
-		headroom = NET_SKB_PAD;
 	if (headroom > skb_headroom(skb))
 		delta = headroom - skb_headroom(skb);
 
--- 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/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/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/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/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/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/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/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/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/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/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/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/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/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/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)
 
 /*
--- 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/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/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/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/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/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/memory.h
+++ linux-3.2.0/include/linux/memory.h
@@ -20,7 +20,7 @@
 #include <linux/compiler.h>
 #include <linux/mutex.h>
 
-#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/kvm_host.h
+++ linux-3.2.0/include/linux/kvm_host.h
@@ -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/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 <include/linux/capability.h>.
@@ -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/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/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/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/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/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/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/mempolicy.h
+++ linux-3.2.0/include/linux/mempolicy.h
@@ -188,7 +188,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);
--- 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/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 */
--- 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/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)
 {
@@ -2637,7 +2658,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/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/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/crash_dump.h
+++ linux-3.2.0/include/linux/crash_dump.h
@@ -5,6 +5,7 @@
 #include <linux/kexec.h>
 #include <linux/device.h>
 #include <linux/proc_fs.h>
+#include <linux/elf.h>
 
 #define ELFCORE_ADDR_MAX	(-1ULL)
 #define ELFCORE_ADDR_ERR	(-2ULL)
--- 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/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/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/hyperv.h
+++ linux-3.2.0/include/linux/hyperv.h
@@ -25,6 +25,173 @@
 #ifndef _HYPERV_H
 #define _HYPERV_H
 
+#include <linux/types.h>
+
+/*
+ * An implementation of HyperV key value pair (KVP) functionality for Linux.
+ *
+ *
+ * Copyright (C) 2010, Novell, Inc.
+ * Author : K. Y. Srinivasan <ksrinivasan@novell.com>
+ *
+ */
+
+/*
+ * 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 <linux/scatterlist.h>
 #include <linux/list.h>
 #include <linux/uuid.h>
@@ -35,7 +202,7 @@
 #include <linux/mod_devicetable.h>
 
 
-#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/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/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
--- linux-3.2.0.orig/include/linux/hugetlb.h
+++ linux-3.2.0/include/linux/hugetlb.h
@@ -14,6 +14,15 @@
 #include <linux/shm.h>
 #include <asm/tlbflush.h>
 
+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)
 {
--- 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/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/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/kmsg_dump.h
+++ linux-3.2.0/include/linux/kmsg_dump.h
@@ -15,14 +15,18 @@
 #include <linux/errno.h>
 #include <linux/list.h>
 
+/*
+ * 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/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/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/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/netdevice.h
+++ linux-3.2.0/include/linux/netdevice.h
@@ -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/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 <asm/ptrace.h>
 
@@ -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/mtd/map.h
+++ linux-3.2.0/include/linux/mtd/map.h
@@ -26,7 +26,7 @@
 #include <linux/list.h>
 #include <linux/string.h>
 #include <linux/bug.h>
-
+#include <linux/kernel.h>
 
 #include <asm/unaligned.h>
 #include <asm/system.h>
--- 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/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/amba/bus.h
+++ linux-3.2.0/include/linux/amba/bus.h
@@ -16,6 +16,7 @@
 
 #include <linux/clk.h>
 #include <linux/device.h>
+#include <linux/mod_devicetable.h>
 #include <linux/err.h>
 #include <linux/resource.h>
 #include <linux/regulator/consumer.h>
@@ -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/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/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/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/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 <linux/scatterlist.h>
+
 #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/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/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/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/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/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/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/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 <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
+
+/* 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/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/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/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/scm.h
+++ linux-3.2.0/include/net/scm.h
@@ -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/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 <linux/list.h>
+#include <linux/timer.h>
+#include <linux/workqueue.h>
+
 #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/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/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/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/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;
--- linux-3.2.0.orig/include/net/cipso_ipv4.h
+++ linux-3.2.0/include/net/cipso_ipv4.h
@@ -42,6 +42,7 @@
 #include <net/netlabel.h>
 #include <net/request_sock.h>
 #include <linux/atomic.h>
+#include <asm/unaligned.h>
 
 /* 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/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/tcp.h
+++ linux-3.2.0/include/net/tcp.h
@@ -834,6 +834,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,
--- 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/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/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/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/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/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/crypto/sha512_generic.c
+++ linux-3.2.0/crypto/sha512_generic.c
@@ -21,8 +21,6 @@
 #include <linux/percpu.h>
 #include <asm/byteorder.h>
 
-static DEFINE_PER_CPU(u64[80], msg_schedule);
-
 static inline u64 Ch(u64 x, u64 y, u64 z)
 {
         return z ^ (x & (y ^ z));
@@ -33,11 +31,6 @@
         return (x & y) | (z & (x | y));
 }
 
-static inline u64 RORu64(u64 x, u64 y)
-{
-        return (x >> y) | (x << (64 - y));
-}
-
 static const u64 sha512_K[80] = {
         0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL,
         0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
@@ -68,10 +61,10 @@
         0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL,
 };
 
-#define e0(x)       (RORu64(x,28) ^ RORu64(x,34) ^ RORu64(x,39))
-#define e1(x)       (RORu64(x,14) ^ RORu64(x,18) ^ RORu64(x,41))
-#define s0(x)       (RORu64(x, 1) ^ RORu64(x, 8) ^ (x >> 7))
-#define s1(x)       (RORu64(x,19) ^ RORu64(x,61) ^ (x >> 6))
+#define e0(x)       (ror64(x,28) ^ ror64(x,34) ^ ror64(x,39))
+#define e1(x)       (ror64(x,14) ^ ror64(x,18) ^ ror64(x,41))
+#define s0(x)       (ror64(x, 1) ^ ror64(x, 8) ^ (x >> 7))
+#define s1(x)       (ror64(x,19) ^ ror64(x,61) ^ (x >> 6))
 
 static inline void LOAD_OP(int I, u64 *W, const u8 *input)
 {
@@ -80,7 +73,7 @@
 
 static inline void BLEND_OP(int I, u64 *W)
 {
-	W[I] = s1(W[I-2]) + W[I-7] + s0(W[I-15]) + W[I-16];
+	W[I & 15] += s1(W[(I-2) & 15]) + W[(I-7) & 15] + s0(W[(I-15) & 15]);
 }
 
 static void
@@ -89,15 +82,7 @@
 	u64 a, b, c, d, e, f, g, h, t1, t2;
 
 	int i;
-	u64 *W = get_cpu_var(msg_schedule);
-
-	/* load the input */
-        for (i = 0; i < 16; i++)
-                LOAD_OP(i, W, input);
-
-        for (i = 16; i < 80; i++) {
-                BLEND_OP(i, W);
-        }
+	u64 W[16];
 
 	/* load the state into our registers */
 	a=state[0];   b=state[1];   c=state[2];   d=state[3];
@@ -105,21 +90,35 @@
 
 	/* now iterate */
 	for (i=0; i<80; i+=8) {
-		t1 = h + e1(e) + Ch(e,f,g) + sha512_K[i  ] + W[i  ];
+		if (!(i & 8)) {
+			int j;
+
+			if (i < 16) {
+				/* load the input */
+				for (j = 0; j < 16; j++)
+					LOAD_OP(i + j, W, input);
+			} else {
+				for (j = 0; j < 16; j++) {
+					BLEND_OP(i + j, W);
+				}
+			}
+		}
+
+		t1 = h + e1(e) + Ch(e,f,g) + sha512_K[i  ] + W[(i & 15)];
 		t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-		t1 = g + e1(d) + Ch(d,e,f) + sha512_K[i+1] + W[i+1];
+		t1 = g + e1(d) + Ch(d,e,f) + sha512_K[i+1] + W[(i & 15) + 1];
 		t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-		t1 = f + e1(c) + Ch(c,d,e) + sha512_K[i+2] + W[i+2];
+		t1 = f + e1(c) + Ch(c,d,e) + sha512_K[i+2] + W[(i & 15) + 2];
 		t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-		t1 = e + e1(b) + Ch(b,c,d) + sha512_K[i+3] + W[i+3];
+		t1 = e + e1(b) + Ch(b,c,d) + sha512_K[i+3] + W[(i & 15) + 3];
 		t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-		t1 = d + e1(a) + Ch(a,b,c) + sha512_K[i+4] + W[i+4];
+		t1 = d + e1(a) + Ch(a,b,c) + sha512_K[i+4] + W[(i & 15) + 4];
 		t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-		t1 = c + e1(h) + Ch(h,a,b) + sha512_K[i+5] + W[i+5];
+		t1 = c + e1(h) + Ch(h,a,b) + sha512_K[i+5] + W[(i & 15) + 5];
 		t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-		t1 = b + e1(g) + Ch(g,h,a) + sha512_K[i+6] + W[i+6];
+		t1 = b + e1(g) + Ch(g,h,a) + sha512_K[i+6] + W[(i & 15) + 6];
 		t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-		t1 = a + e1(f) + Ch(f,g,h) + sha512_K[i+7] + W[i+7];
+		t1 = a + e1(f) + Ch(f,g,h) + sha512_K[i+7] + W[(i & 15) + 7];
 		t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
 	}
 
@@ -128,8 +127,6 @@
 
 	/* erase our data */
 	a = b = c = d = e = f = g = h = t1 = t2 = 0;
-	memset(W, 0, sizeof(__get_cpu_var(msg_schedule)));
-	put_cpu_var(msg_schedule);
 }
 
 static int
@@ -177,7 +174,7 @@
 	index = sctx->count[0] & 0x7f;
 
 	/* Update number of bytes */
-	if (!(sctx->count[0] += len))
+	if ((sctx->count[0] += len) < len)
 		sctx->count[1]++;
 
         part_len = 128 - index;
--- linux-3.2.0.orig/crypto/cryptd.c
+++ linux-3.2.0/crypto/cryptd.c
@@ -137,13 +137,18 @@
 	struct crypto_async_request *req, *backlog;
 
 	cpu_queue = container_of(work, struct cryptd_cpu_queue, work);
-	/* Only handle one request at a time to avoid hogging crypto
-	 * workqueue. preempt_disable/enable is used to prevent
-	 * being preempted by cryptd_enqueue_request() */
+	/*
+	 * Only handle one request at a time to avoid hogging crypto workqueue.
+	 * preempt_disable/enable is used to prevent being preempted by
+	 * cryptd_enqueue_request(). local_bh_disable/enable is used to prevent
+	 * cryptd_enqueue_request() being accessed from software interrupts.
+	 */
+	local_bh_disable();
 	preempt_disable();
 	backlog = crypto_get_backlog(&cpu_queue->queue);
 	req = crypto_dequeue_request(&cpu_queue->queue);
 	preempt_enable();
+	local_bh_enable();
 
 	if (!req)
 		return;
--- 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 <asm/amd_nb.h>
+
+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/isapnp/core.c
+++ linux-3.2.0/drivers/pnp/isapnp/core.c
@@ -41,6 +41,7 @@
 #include <linux/init.h>
 #include <linux/isapnp.h>
 #include <linux/mutex.h>
+#include <linux/async.h>
 #include <asm/io.h>
 
 #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/pnp/pnpacpi/core.c
+++ linux-3.2.0/drivers/pnp/pnpacpi/core.c
@@ -321,9 +321,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/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/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/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/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/misc/sgi-xp/xpc_uv.c
+++ linux-3.2.0/drivers/misc/sgi-xp/xpc_uv.c
@@ -18,6 +18,8 @@
 #include <linux/interrupt.h>
 #include <linux/delay.h>
 #include <linux/device.h>
+#include <linux/cpu.h>
+#include <linux/module.h>
 #include <linux/err.h>
 #include <linux/slab.h>
 #include <asm/uv/uv_hub.h>
@@ -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/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/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/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/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/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/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/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/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/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/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/nandsim.c
+++ linux-3.2.0/drivers/mtd/nand/nandsim.c
@@ -28,7 +28,7 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/vmalloc.h>
-#include <asm/div64.h>
+#include <linux/math64.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
 #include <linux/string.h>
@@ -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-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;
@@ -206,7 +208,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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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);
--- 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;
 
--- 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/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 <http://www.gnu.org/licenses/>.
+ */
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/ctype.h>
+#include <linux/edac.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/of_platform.h>
+
+#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/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/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/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/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 <http://www.gnu.org/licenses/>.
+ */
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/ctype.h>
+#include <linux/edac.h>
+#include <linux/interrupt.h>
+#include <linux/platform_device.h>
+#include <linux/of_platform.h>
+
+#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/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/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)) {
@@ -2267,12 +2269,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,6 +2281,17 @@
 	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;
 }
 
--- 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/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/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;
 
@@ -943,6 +943,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;
@@ -1033,8 +1036,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 +1048,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;
+
+	if (ret)
+		return ret;
 
-	return 1;
+enable_faults:
+	iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
+
+	return 0;
 }
 
 /****************************************************************************
@@ -1215,20 +1228,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 +1247,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);
@@ -1461,6 +1468,8 @@
 
 	register_syscore_ops(&amd_iommu_syscore_ops);
 
+	x86_platform.iommu_shutdown = disable_iommus;
+
 	if (iommu_pass_through)
 		goto out;
 
@@ -1469,7 +1478,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/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)
@@ -1846,6 +1865,11 @@
 
 		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 */
@@ -1861,6 +1885,8 @@
 		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 +2458,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 +2505,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_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/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/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/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/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/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/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/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/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/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/fbmem.c
+++ linux-3.2.0/drivers/video/fbmem.c
@@ -1651,6 +1651,7 @@
 	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,7 +1659,6 @@
 	registered_fb[i] = NULL;
 	num_registered_fb--;
 	fb_cleanup_device(fb_info);
-	device_destroy(fb_class, MKDEV(FB_MAJOR, i));
 	event.info = fb_info;
 	fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event);
 
@@ -1667,6 +1667,22 @@
 	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)
 {
--- 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/via/via_clock.c
+++ linux-3.2.0/drivers/video/via/via_clock.c
@@ -25,6 +25,7 @@
 
 #include <linux/kernel.h>
 #include <linux/via-core.h>
+#include <asm/olpc.h>
 #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/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;
 
--- 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/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/ti_hdmi_4xxx_ip.c
+++ linux-3.2.0/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -28,6 +28,7 @@
 #include <linux/delay.h>
 #include <linux/string.h>
 #include <linux/seq_file.h>
+#include <linux/gpio.h>
 
 #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/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/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/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/apple_bl.c
+++ linux-3.2.0/drivers/video/backlight/apple_bl.c
@@ -24,6 +24,7 @@
 #include <linux/io.h>
 #include <linux/pci.h>
 #include <linux/acpi.h>
+#include <linux/atomic.h>
 
 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/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/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/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(
--- 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_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_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;
 
@@ -400,26 +409,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 +423,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 +536,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 +571,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 +597,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_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_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_transport.c
+++ linux-3.2.0/drivers/target/target_core_transport.c
@@ -1820,6 +1820,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 +2508,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 +2667,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;
@@ -2948,7 +2950,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 +2973,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 +3039,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 +3060,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 +3437,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 +3449,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 +3514,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 +3731,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 +3807,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 +4396,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 +4406,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 +4415,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 +4424,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 +4434,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 +4445,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 +4474,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 +4485,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 +4496,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 +4524,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,6 +4535,7 @@
 	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 */
--- 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_alua.c
+++ linux-3.2.0/drivers/target/target_core_alua.c
@@ -30,6 +30,7 @@
 #include <linux/export.h>
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
+#include <asm/unaligned.h>
 
 #include <target/target_core_base.h>
 #include <target/target_core_device.h>
@@ -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(
--- 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);
 }
--- 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_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/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_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/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;
 
--- 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);
@@ -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_configfs.c
+++ linux-3.2.0/drivers/target/iscsi/iscsi_target_configfs.c
@@ -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_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_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.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
@@ -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_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_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/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_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_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;
@@ -85,6 +87,9 @@
 	int product_id;
 	u32 quirks;
 } edid_quirk_list[] = {
+	/* ASUS VW222S */
+	{ "ACI", 0x22a2, EDID_QUIRK_FORCE_REDUCED_BLANKING },
+
 	/* Acer AL1706 */
 	{ "ACR", 44358, EDID_QUIRK_PREFER_LARGE_60 },
 	/* Acer F51 */
@@ -120,6 +125,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 +157,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 +210,7 @@
 	}
 	return 0;
 }
+EXPORT_SYMBOL(drm_edid_block_valid);
 
 /**
  * drm_edid_is_valid - sanity check EDID data
@@ -266,6 +274,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 +598,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;
 	}
@@ -863,12 +876,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 +912,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 +921,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 +935,9 @@
 		mode->height_mm = edid->height_cm * 10;
 	}
 
+	mode->type = DRM_MODE_TYPE_DRIVER;
+	drm_mode_set_name(mode);
+
 	return mode;
 }
 
--- 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_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_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/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/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 <C.Emde@osadl.org>
+
+   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 <linux/module.h>
+#include <linux/firmware.h>
+#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_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)
--- 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_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/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_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);
@@ -1669,7 +1697,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 +1714,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 +1760,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 +2038,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_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/intel_bios.c
+++ linux-3.2.0/drivers/gpu/drm/i915/intel_bios.c
@@ -24,6 +24,7 @@
  *    Eric Anholt <eric@anholt.net>
  *
  */
+#include <linux/dmi.h>
 #include <drm/drm_dp_helper.h>
 #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 */
@@ -621,6 +658,26 @@
 	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 +698,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/i915/i915_drv.h
+++ linux-3.2.0/drivers/gpu/drm/i915/i915_drv.h
@@ -244,6 +244,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 +274,7 @@
 
 #define QUIRK_PIPEA_FORCE (1<<0)
 #define QUIRK_LVDS_SSC_DISABLE (1<<1)
+#define QUIRK_RC6_DISABLE (1<<3)
 
 struct intel_fbdev;
 struct intel_fbc_work;
@@ -286,7 +288,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 +345,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 +375,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 +748,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 +1005,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 +1173,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);
--- 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;
@@ -971,6 +972,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 +1010,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 +1048,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 +1062,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 +1083,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 +1200,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 +1359,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/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_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_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(&reg->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(&reg->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)
@@ -3084,10 +3118,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 +3346,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 +3368,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) {
--- 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));
@@ -364,7 +364,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/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/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_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,
@@ -263,17 +249,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 +288,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 +308,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 +320,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
@@ -414,6 +413,22 @@
 			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 +477,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 +575,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 +626,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 +644,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 +800,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 +821,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 +851,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 +1042,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 +1069,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 +1144,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;
@@ -1316,7 +1343,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,
@@ -1451,7 +1478,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 +1501,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/intel_display.c
+++ linux-3.2.0/drivers/gpu/drm/i915/intel_display.c
@@ -356,6 +356,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 +385,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 +413,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 +550,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 +1090,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 +1107,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 +1455,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 +1477,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 +1882,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 +2205,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 +2269,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);
@@ -2840,18 +2868,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)
@@ -4721,17 +4768,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) {
@@ -5030,7 +5066,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 +5231,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 +5533,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 +5681,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 +5914,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 +6003,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 */
@@ -6952,9 +6990,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);
@@ -7006,14 +7043,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.
@@ -7030,7 +7067,11 @@
 	OUT_RING(obj->gtt_offset + offset);
 	OUT_RING(MI_NOOP);
 	ADVANCE_LP_RING();
-out:
+	return 0;
+
+err_unpin:
+	i915_gem_object_unpin(obj);
+err:
 	return ret;
 }
 
@@ -7047,14 +7088,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;
@@ -7069,7 +7110,11 @@
 	OUT_RING(MI_NOOP);
 
 	ADVANCE_LP_RING();
-out:
+	return 0;
+
+err_unpin:
+	i915_gem_object_unpin(obj);
+err:
 	return ret;
 }
 
@@ -7085,11 +7130,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)
@@ -7108,7 +7153,11 @@
 	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
 	OUT_RING(pf | pipesrc);
 	ADVANCE_LP_RING();
-out:
+	return 0;
+
+err_unpin:
+	i915_gem_object_unpin(obj);
+err:
 	return ret;
 }
 
@@ -7124,11 +7173,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));
@@ -7139,7 +7188,11 @@
 	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
 	OUT_RING(pf | pipesrc);
 	ADVANCE_LP_RING();
-out:
+	return 0;
+
+err_unpin:
+	i915_gem_object_unpin(obj);
+err:
 	return ret;
 }
 
@@ -7157,22 +7210,43 @@
 	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_ring_advance(ring);
-out:
+	return 0;
+
+err_unpin:
+	i915_gem_object_unpin(obj);
+err:
 	return ret;
 }
 
@@ -7277,6 +7351,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 +7990,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;
 }
@@ -7969,8 +8048,8 @@
 	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 +8074,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 |
@@ -8234,6 +8313,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 +8344,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)
@@ -8694,6 +8812,13 @@
 	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");
+}
+
 struct intel_quirk {
 	int device;
 	int subsystem_vendor;
@@ -8702,8 +8827,6 @@
 };
 
 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 +8851,12 @@
 
 	/* Sony Vaio Y cannot use SSC on LVDS */
 	{ 0x0046, 0x104d, 0x9076, quirk_ssc_force_disable },
+
+	/* 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)
--- 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/i915_debugfs.c
+++ linux-3.2.0/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1314,9 +1314,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/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);
--- 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];
 }
@@ -2225,6 +2264,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 +2555,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 +2586,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 +2604,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 +2647,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/intel_lvds.c
+++ linux-3.2.0/drivers/gpu/drm/i915/intel_lvds.c
@@ -694,6 +694,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 +716,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 +739,62 @@
 			DMI_MATCH(DMI_BOARD_NAME, "AT5NM10T-I"),
 		},
 	},
+	{
+		.callback = intel_no_lvds_dmi_callback,
+		.ident = "Hewlett-Packard HP t5740e Thin Client",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP t5740e Thin Client"),
+		},
+	},
+	{
+		.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 = "ZOTAC ZBOXSD-ID12/ID13",
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "ZOTAC"),
+			DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"),
+		},
+	},
 
 	{ }	/* terminating entry */
 };
--- linux-3.2.0.orig/drivers/gpu/drm/i915/i915_reg.h
+++ linux-3.2.0/drivers/gpu/drm/i915/i915_reg.h
@@ -164,6 +164,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)
@@ -393,6 +401,9 @@
 # define VS_TIMER_DISPATCH				(1 << 6)
 # define MI_FLUSH_ENABLE				(1 << 11)
 
+#define GEN6_GT_MODE	0x20d0
+#define   GEN6_GT_MODE_HI	(1 << 9)
+
 #define GFX_MODE	0x02520
 #define GFX_MODE_GEN7	0x0229c
 #define   GFX_RUN_LIST_ENABLE		(1<<15)
@@ -442,6 +453,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 +534,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 +581,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 +1422,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 +1560,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 +2350,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)
@@ -2886,9 +2925,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 +2977,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 +3558,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 +3583,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 +3669,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/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;
@@ -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/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_legacy_encoders.c
+++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -650,6 +650,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 +974,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/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/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/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 */
@@ -977,6 +1008,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 +1096,92 @@
 
 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);
-	}
-
-	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);
+	/* 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;
+		}
+	}
+
+	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);
 	}
 }
 
 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);
 }
 
@@ -2074,9 +2027,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 +2072,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 +2104,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)));
--- linux-3.2.0.orig/drivers/gpu/drm/radeon/radeon_mode.h
+++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_mode.h
@@ -362,6 +362,7 @@
 	struct backlight_device *bl_dev;
 	int dpms_mode;
 	uint8_t backlight_level;
+	int panel_mode;
 };
 
 struct radeon_encoder_atom_dac {
@@ -482,6 +483,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,
--- 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);
 }
 
 
--- 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_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/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/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/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);
 }
 
--- 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)
--- 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 <linux/vga_switcheroo.h>
 #include <linux/slab.h>
+#include <linux/acpi.h>
 /*
  * 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/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/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/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/radeon_i2c.c
+++ linux-3.2.0/drivers/gpu/drm/radeon/radeon_i2c.c
@@ -890,6 +890,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/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/atombios_crtc.c
+++ linux-3.2.0/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -917,8 +917,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 +1189,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 +1358,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 +1468,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 +1580,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 +1609,7 @@
 	default:
 		break;
 	}
+done:
 	radeon_crtc->pll_id = -1;
 }
 
--- 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)
--- 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);
--- 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;
+		}
 	}
 }
 
@@ -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;
--- 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;
 		}
 	}
--- 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);
 }
 
--- 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 |=
--- 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_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;
 }
 
--- 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));
--- 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/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/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/atombios_encoders.c
+++ linux-3.2.0/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -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/nouveau/nouveau_acpi.c
+++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_acpi.c
@@ -18,12 +18,6 @@
 
 #include <linux/vga_switcheroo.h>
 
-#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/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/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/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_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/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/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/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/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_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/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/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_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_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_bo.c
+++ linux-3.2.0/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -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/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/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/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/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_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_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_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/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/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/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/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/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/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/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/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/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/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/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/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/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/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-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/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/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/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/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/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/rc/imon.c
+++ linux-3.2.0/drivers/media/rc/imon.c
@@ -47,7 +47,7 @@
 #define MOD_AUTHOR	"Jarod Wilson <jarod@wilsonet.com>"
 #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/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/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/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.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/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/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/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/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/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/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/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/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/isdn/isdnloop/isdnloop.c
+++ linux-3.2.0/drivers/isdn/isdnloop/isdnloop.c
@@ -16,7 +16,6 @@
 #include <linux/sched.h>
 #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/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 <linux/proc_fs.h>
 #include <linux/seq_file.h>
+#include <linux/ratelimit.h>
 #include <linux/isdn/capilli.h>
 #include <linux/isdn/capicmd.h>
 #include <linux/isdn/capiutil.h>
@@ -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) {
@@ -1882,6 +1887,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 +1914,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 +2068,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 +2076,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 +2087,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/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/md/dm-linear.c
+++ linux-3.2.0/drivers/md/dm-linear.c
@@ -116,7 +116,17 @@
 			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,
--- 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-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)
--- 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;
 	}
--- 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);
--- 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/raid1.c
+++ linux-3.2.0/drivers/md/raid1.c
@@ -525,8 +525,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 +731,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 +1713,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 +2321,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 +2387,10 @@
 	 */
 	if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {
 		atomic_set(&r1_bio->remaining, read_targets);
-		for (i=0; i<conf->raid_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/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/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);
+}
 
-	b = bio_list_pop(&bios);
-	BUG_ON(b != bio);
-	BUG_ON(!bio_list_empty(&bios));
+/*
+ * 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);
+}
+
+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);
 }
--- 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);
@@ -368,8 +368,17 @@
 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,
--- 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;
@@ -1520,6 +1520,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);
 }
 
--- 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/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-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/raid10.c
+++ linux-3.2.0/drivers/md/raid10.c
@@ -790,9 +790,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 +1226,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 +1921,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 +1958,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 +2121,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 +2438,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 +2641,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-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-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/dm-ioctl.c
+++ linux-3.2.0/drivers/md/dm-ioctl.c
@@ -1437,7 +1437,7 @@
 
 	if (!argc) {
 		DMWARN("Empty message received.");
-		goto out;
+		goto out_argv;
 	}
 
 	table = dm_get_live_table(md);
--- linux-3.2.0.orig/drivers/md/md.c
+++ linux-3.2.0/drivers/md/md.c
@@ -392,6 +392,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 +453,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 +1144,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 +1430,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);
@@ -1796,18 +1801,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 +2367,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);
 				}
@@ -3697,8 +3703,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 +3720,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 +3735,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 +3745,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 +5081,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 +5113,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 +5206,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 +6197,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 +7650,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 +7667,8 @@
 
 retry:
 	seq = read_seqbegin(&bb->lock);
-
+	lo = 0;
+	rv = 0;
 	hi = bb->count;
 
 	/* Binary search between lo and hi for 'target'
@@ -8097,30 +8114,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/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/md/persistent-data/dm-btree-remove.c
+++ linux-3.2.0/drivers/md/persistent-data/dm-btree-remove.c
@@ -128,18 +128,9 @@
 	n->header.nr_entries = cpu_to_le32(nr_entries - 1);
 }
 
-static unsigned del_threshold(struct 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;
+	return le32_to_cpu(n->header.max_entries) / 3;
 }
 
 struct child {
@@ -188,6 +179,15 @@
 
 static void shift(struct node *left, struct 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,13 +199,8 @@
 		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,
@@ -215,8 +210,9 @@
 	struct 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,9 +230,6 @@
 		 * 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];
 	}
@@ -272,6 +265,84 @@
 	return exit_child(info, &right);
 }
 
+/*
+ * 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 node *parent,
+			       struct child *l, struct child *c, struct child *r,
+			       struct node *left, struct node *center, struct node *right,
+			       uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
+{
+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
+	unsigned shift = min(max_entries - nr_left, nr_center);
+
+	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];
+
+	delete_at(parent, c->index);
+	r->index--;
+
+	dm_tm_dec(info->tm, dm_block_location(c->block));
+	__rebalance2(info, parent, l, r);
+}
+
+/*
+ * Redistributes entries among 3 sibling nodes.
+ */
+static void redistribute3(struct dm_btree_info *info, struct node *parent,
+			  struct child *l, struct child *c, struct child *r,
+			  struct node *left, struct node *center, struct 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);
+
+	if (nr_left < nr_right) {
+		s = nr_left - target;
+
+		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);
+
+		shift(center, right, target - nr_right);
+
+	} 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);
+
+		shift(left, center, nr_left - target);
+	}
+
+	*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 node *parent,
 			 struct child *l, struct child *c, struct child *r)
 {
@@ -282,62 +353,18 @@
 	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 target;
+	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) / 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);
-
-		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];
-
-		delete_at(parent, c->index);
-		r->index--;
-
-		dm_tm_dec(info->tm, dm_block_location(c->block));
-		__rebalance2(info, parent, l, r);
-
-		return;
-	}
-
-	/*
-	 * Rebalance
-	 */
-	target = (nr_left + nr_center + nr_right) / 3;
-	BUG_ON(target > max_entries);
-
-	/*
-	 * Adjust the left node
-	 */
-	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];
+	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,
@@ -441,9 +468,6 @@
 	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);
 
--- 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 <linux/device-mapper.h>
 #include <linux/export.h>
+#include <linux/vmalloc.h>
 
 #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-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/platform/x86/toshiba_acpi.c
+++ linux-3.2.0/drivers/platform/x86/toshiba_acpi.c
@@ -52,6 +52,8 @@
 #include <linux/input/sparse-keymap.h>
 #include <linux/leds.h>
 #include <linux/slab.h>
+#include <linux/workqueue.h>
+#include <linux/i8042.h>
 
 #include <asm/uaccess.h>
 
@@ -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/intel_ips.c
+++ linux-3.2.0/drivers/platform/x86/intel_ips.c
@@ -72,6 +72,7 @@
 #include <linux/string.h>
 #include <linux/tick.h>
 #include <linux/timer.h>
+#include <linux/dmi.h>
 #include <drm/i915_drm.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
@@ -1505,6 +1506,24 @@
 
 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"),
+		},
+	},
+	{ }	/* terminating entry */
+};
+
 static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
 {
 	u64 platform_info;
@@ -1514,6 +1533,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-laptop.c
+++ linux-3.2.0/drivers/platform/x86/asus-laptop.c
@@ -823,9 +823,9 @@
 	 * The significance of others is yet to be found.
 	 * If we don't find the method, we assume the device are present.
 	 */
-	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
@@ -1660,9 +1660,9 @@
 	 * The significance of others is yet to be found.
 	 */
 	status =
-	    acpi_evaluate_integer(asus->handle, "HRWS", NULL, &hwrs_result);
+	    acpi_evaluate_integer(asus->handle, "HWRS", NULL, &hwrs_result);
 	if (!ACPI_FAILURE(status))
-		pr_notice("  HRWS returned %x", (int)hwrs_result);
+		pr_notice("  HWRS 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/eeepc-wmi.c
+++ linux-3.2.0/drivers/platform/x86/eeepc-wmi.c
@@ -32,6 +32,7 @@
 #include <linux/input.h>
 #include <linux/input/sparse-keymap.h>
 #include <linux/dmi.h>
+#include <linux/fb.h>
 #include <acpi/acpi_bus.h>
 
 #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/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,7 +8661,7 @@
 	}
 
 	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;
--- 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/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/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/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/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/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/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. <seth.forshee@canonical.com>
+ *
+ *  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 <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/backlight.h>
+#include <linux/acpi.h>
+#include <linux/pnp.h>
+#include <linux/apple_bl.h>
+#include <acpi/video.h>
+
+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 <seth.forshee@canonical.com>");
+MODULE_DESCRIPTION("Apple Gmux Driver");
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(pnp, gmux_device_ids);
--- 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-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/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/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/samsung-laptop.c
+++ linux-3.2.0/drivers/platform/x86/samsung-laptop.c
@@ -21,6 +21,8 @@
 #include <linux/dmi.h>
 #include <linux/platform_device.h>
 #include <linux/rfkill.h>
+#include <linux/acpi.h>
+#include <linux/efi.h>
 
 /*
  * 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)
+		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/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 <http://www.gnu.org/licenses/>.
+ */
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+#include <linux/input.h>
+
+#include <mach/pl320-ipc.h>
+
+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/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/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/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/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"),
@@ -320,6 +334,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"),
--- 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/tablet/wacom_wac.h
+++ linux-3.2.0/drivers/input/tablet/wacom_wac.h
@@ -12,7 +12,7 @@
 #include <linux/types.h>
 
 /* 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/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_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_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.h
+++ linux-3.2.0/drivers/input/tablet/wacom.h
@@ -88,6 +88,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/init.h>
 #include <linux/usb/input.h>
+#include <linux/power_supply.h>
 #include <asm/unaligned.h>
 
 /*
@@ -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/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/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/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/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/cypress_ps2.c
+++ linux-3.2.0/drivers/input/mouse/cypress_ps2.c
@@ -0,0 +1,956 @@
+/*
+ * Cypress Trackpad PS/2 mouse driver
+ *
+ * Copyright (c) 2012 Cypress Semiconductor Corporation.
+ *
+ * Additional contributors include:
+ *   Kamal Mostafa <kamal@canonical.com>
+ *   Kyle Fazzari <git@status.e4ward.com>
+ *
+ * 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 <linux/init.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <linux/libps2.h>
+#include <linux/input.h>
+#include <linux/input/mt.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+
+#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;
+
+	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;
+
+	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)
+{
+	struct cytp_data *cytp = psmouse->private;
+
+	if (cypress_read_fw_version(psmouse))
+		return -1;
+
+	if (cytp->vital_statics_supported) {
+		if (cypress_read_vital_statistics(psmouse))
+			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 <linux/init.h>
 #include <linux/libps2.h>
 #include <linux/mutex.h>
+#include <linux/sched.h>
 
 #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/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/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 <linux/module.h>
 #include <linux/input.h>
+#include <linux/input/mt.h>
 #include <linux/ctype.h>
 #include <linux/libps2.h>
 #include <linux/serio.h>
@@ -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/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/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/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/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/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/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);
 }
@@ -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);
 		/*
@@ -1233,9 +1290,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 +1350,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/alps.c
+++ linux-3.2.0/drivers/input/mouse/alps.c
@@ -17,13 +17,63 @@
 
 #include <linux/slab.h>
 #include <linux/input.h>
+#include <linux/input/mt.h>
 #include <linux/serio.h>
 #include <linux/libps2.h>
 
 #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, &param[0], PSMOUSE_CMD_SETRATE) ||
+	    ps2_command(ps2dev, &param[1], PSMOUSE_CMD_SETRATE) ||
+	    ps2_command(ps2dev, &param[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/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/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/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/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/sdhci-esdhc-imx.c
+++ linux-3.2.0/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -269,8 +269,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 +467,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/sh_mmcif.c
+++ linux-3.2.0/drivers/mmc/host/sh_mmcif.c
@@ -1003,6 +1003,10 @@
 		host->sd_error = true;
 		dev_dbg(&host->pd->dev, "int err state = %08x\n", state);
 	}
+	if (host->state == STATE_IDLE) {
+		dev_info(&host->pd->dev, "Spurious IRQ status 0x%x", state);
+		return IRQ_HANDLED;
+	}
 	if (state & ~(INT_CMD12RBE | INT_CMD12CRE))
 		complete(&host->intr_wait);
 	else
--- 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/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/dw_mmc.c
+++ linux-3.2.0/drivers/mmc/host/dw_mmc.c
@@ -22,7 +22,6 @@
 #include <linux/ioport.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
-#include <linux/scatterlist.h>
 #include <linux/seq_file.h>
 #include <linux/slab.h>
 #include <linux/stat.h>
@@ -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/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/atmel-mci.c
+++ linux-3.2.0/drivers/mmc/host/atmel-mci.c
@@ -480,7 +480,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,
@@ -965,11 +972,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);
@@ -1941,12 +1951,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 +1973,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 +2091,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 +2101,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 */
--- 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 <linux/io.h>
+#include <linux/module.h>
 #include <linux/mmc/host.h>
 
 #include "sdhci-pltfm.h"
--- 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/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/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/mmc.c
+++ linux-3.2.0/drivers/mmc/core/mmc.c
@@ -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/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/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/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/ata/ahci_platform.c
+++ linux-3.2.0/drivers/ata/ahci_platform.c
@@ -18,6 +18,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/device.h>
+#include <linux/of_device.h>
 #include <linux/platform_device.h>
 #include <linux/libata.h>
 #include <linux/ahci_platform.h>
@@ -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/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/ata_piix.c
+++ linux-3.2.0/drivers/ata/ata_piix.c
@@ -321,6 +321,14 @@
 	{ 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 },
+	/* SATA Controller IDE (Lynx Point) */
+	{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
 	{ }	/* terminate list */
 };
 
@@ -1117,6 +1125,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 +1552,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 +1700,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 +1717,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 +1743,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/libata-eh.c
+++ linux-3.2.0/drivers/ata/libata-eh.c
@@ -3500,7 +3500,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/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)
--- linux-3.2.0.orig/drivers/ata/libata-core.c
+++ linux-3.2.0/drivers/ata/libata-core.c
@@ -1972,6 +1972,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;
@@ -4118,6 +4124,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/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/ahci.c
+++ linux-3.2.0/drivers/ata/ahci.c
@@ -260,6 +260,14 @@
 	{ 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 */
 
 	/* 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,
@@ -384,6 +392,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 },
 
--- 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/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/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/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/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/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.h
+++ linux-3.2.0/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -44,6 +44,7 @@
 #include <linux/mutex.h>
 
 #include <net/neighbour.h>
+#include <net/sch_generic.h>
 
 #include <linux/atomic.h>
 
@@ -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/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/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_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/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/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/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/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/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/regulator/max8997.c
+++ linux-3.2.0/drivers/regulator/max8997.c
@@ -689,7 +689,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;
--- 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/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/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/pch_dma.c
+++ linux-3.2.0/drivers/dma/pch_dma.c
@@ -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 <yong.y.wang@intel.com>");
 MODULE_LICENSE("GPL v2");
--- linux-3.2.0.orig/drivers/dma/pl330.c
+++ linux-3.2.0/drivers/dma/pl330.c
@@ -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/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/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.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/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);
--- 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/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/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/wm831x-otp.c
+++ linux-3.2.0/drivers/mfd/wm831x-otp.c
@@ -18,6 +18,7 @@
 #include <linux/bcd.h>
 #include <linux/delay.h>
 #include <linux/mfd/core.h>
+#include <linux/random.h>
 
 #include <linux/mfd/wm831x/core.h>
 #include <linux/mfd/wm831x/otp.h>
@@ -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/mfd-core.c
+++ linux-3.2.0/drivers/mfd/mfd-core.c
@@ -123,7 +123,7 @@
 		}
 
 		if (!cell->ignore_resource_conflicts) {
-			ret = acpi_check_resource_conflict(res);
+			ret = acpi_check_resource_conflict(&res[r]);
 			if (ret)
 				goto fail_res;
 		}
--- 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/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/bluetooth/ath3k.c
+++ linux-3.2.0/drivers/bluetooth/ath3k.c
@@ -62,18 +62,32 @@
 
 	/* 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, 0x3004) },
+	{ USB_DEVICE(0x0CF3, 0x311D) },
+	{ USB_DEVICE(0x13d3, 0x3375) },
+	{ USB_DEVICE(0x04CA, 0x3005) },
+	{ USB_DEVICE(0x13d3, 0x3362) },
+	{ USB_DEVICE(0x0CF3, 0xE004) },
+	{ USB_DEVICE(0x0930, 0x0219) },
+	{ USB_DEVICE(0x0489, 0xe057) },
 
 	/* Atheros AR5BBU12 with sflash firmware */
 	{ USB_DEVICE(0x0489, 0xE02C) },
 
+	/* Atheros AR5BBU22 with sflash firmware */
+	{ USB_DEVICE(0x0489, 0xE03C) },
+	{ USB_DEVICE(0x0489, 0xE036) },
+
 	{ }	/* Terminating entry */
 };
 
@@ -86,6 +100,17 @@
 
 	/* Atheros AR3012 with sflash firmware*/
 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x04ca, 0x3005), .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 },
+
+	/* 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 <linux/skbuff.h>
 
 #include <linux/usb.h>
+#include <linux/delay.h>
+#include <linux/firmware.h>
 
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
@@ -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,16 @@
 	{ USB_DEVICE(0x0c10, 0x0000) },
 
 	/* Broadcom BCM20702A0 */
-	{ USB_DEVICE(0x413c, 0x8197) },
+	{ 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 +132,32 @@
 
 	/* 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, 0x3004), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
+	{ USB_DEVICE(0x04ca, 0x3005), .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 },
 
 	/* 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 +218,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 +537,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 +925,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 +1076,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 +1097,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/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/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/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/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/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/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/virtio_blk.c
+++ linux-3.2.0/drivers/block/virtio_blk.c
@@ -4,6 +4,7 @@
 #include <linux/blkdev.h>
 #include <linux/hdreg.h>
 #include <linux/module.h>
+#include <linux/mutex.h>
 #include <linux/virtio.h>
 #include <linux/virtio_blk.h>
 #include <linux/scatterlist.h>
@@ -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,8 @@
 		  cap_str_10, cap_str_2);
 
 	set_capacity(vblk->disk, capacity);
+done:
+	mutex_unlock(&vblk->config_lock);
 }
 
 static void virtblk_config_changed(struct virtio_device *vdev)
@@ -383,12 +388,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 +415,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;
@@ -542,16 +547,19 @@
 	struct virtio_blk *vblk = vdev->priv;
 	int index = vblk->index;
 
-	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);
+
 	put_disk(vblk->disk);
 	mempool_destroy(vblk->pool);
 	vdev->config->del_vqs(vdev);
--- 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/cciss.c
+++ linux-3.2.0/drivers/block/cciss.c
@@ -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/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/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/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);
+	}
 }
 
 
@@ -594,6 +602,7 @@
 		lo->file = NULL;
 		nbd_clear_que(lo);
 		BUG_ON(!list_empty(&lo->queue_head));
+		BUG_ON(!list_empty(&lo->waiting_queue));
 		if (file)
 			fput(file);
 		return 0;
--- 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/aoe/aoecmd.c
+++ linux-3.2.0/drivers/block/aoe/aoecmd.c
@@ -35,6 +35,7 @@
 		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/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 <linux/pci.h>
+#include <linux/interrupt.h>
+#include <linux/ata.h>
+#include <linux/delay.h>
+#include <linux/hdreg.h>
+#include <linux/uaccess.h>
+#include <linux/random.h>
+#include <linux/smp.h>
+#include <linux/compat.h>
+#include <linux/fs.h>
+#include <linux/module.h>
+#include <linux/genhd.h>
+#include <linux/blkdev.h>
+#include <linux/bio.h>
+#include <linux/dma-mapping.h>
+#include <linux/idr.h>
+#include <linux/kthread.h>
+#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<<bit)))
+				continue;
+			tag = (group << 5) + bit;
+
+			/* Skip the internal command slot */
+			if (tag == MTIP_TAG_INTERNAL)
+				continue;
+
+			command = &port->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 <timeout> 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, &sectors))
+		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 <linux/spinlock.h>
+#include <linux/rwsem.h>
+#include <linux/ata.h>
+#include <linux/interrupt.h>
+#include <linux/genhd.h>
+#include <linux/version.h>
+
+/* 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/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/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/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/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/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/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/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/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 <linux/percpu.h>
 #include <linux/cryptohash.h>
 #include <linux/fips.h>
+#include <linux/ptrace.h>
+#include <linux/kmemcheck.h>
 
 #ifdef CONFIG_GENERIC_HARDIRQS
 # include <linux/irq.h>
@@ -256,6 +263,7 @@
 #include <asm/processor.h>
 #include <asm/uaccess.h>
 #include <asm/irq.h>
+#include <asm/irq_regs.h>
 #include <asm/io.h>
 
 /*
@@ -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);
 	}
 }
@@ -816,13 +915,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 +938,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 +954,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 +986,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 +1046,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 +1082,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 +1099,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 +1258,7 @@
 		count -= bytes;
 		p += bytes;
 
-		mix_pool_bytes(r, buf, bytes);
+		mix_pool_bytes(r, buf, bytes, NULL);
 		cond_resched();
 	}
 
@@ -1250,10 +1401,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 */
--- 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/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/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-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/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/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/atm/solos-pci.c
+++ linux-3.2.0/drivers/atm/solos-pci.c
@@ -984,6 +984,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 +1153,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/cpufreq/powernow-k8.c
+++ linux-3.2.0/drivers/cpufreq/powernow-k8.c
@@ -32,7 +32,6 @@
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/cpumask.h>
-#include <linux/sched.h>	/* for current / set_cpus_allowed() */
 #include <linux/io.h>
 #include <linux/delay.h>
 
@@ -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/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/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/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/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/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_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/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/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/battery.c
+++ linux-3.2.0/drivers/acpi/battery.c
@@ -643,11 +643,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 +976,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 +1007,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 +1046,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 +1087,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/pci_root.c
+++ linux-3.2.0/drivers/acpi/pci_root.c
@@ -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/sleep.c
+++ linux-3.2.0/drivers/acpi/sleep.c
@@ -438,6 +438,14 @@
 	},
 	{
 	.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"),
@@ -476,6 +484,22 @@
 		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"),
+		},
+	},
 	{},
 };
 #endif /* CONFIG_SUSPEND */
@@ -678,8 +702,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';
--- 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);
@@ -319,7 +325,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 +451,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 +930,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 +972,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/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
  */
@@ -1421,7 +1429,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/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/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/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/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/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/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/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);
--- 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/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/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 <konrad.wilk@oracle.com>
+ *
+ * This code borrows ideas from https://lkml.org/lkml/2011/11/30/249
+ * so many thanks go to Kevin Tian <kevin.tian@intel.com>
+ * and Yu Ke <ke.yu@intel.com>.
+ *
+ * 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 <linux/cpumask.h>
+#include <linux/cpufreq.h>
+#include <linux/freezer.h>
+#include <linux/kernel.h>
+#include <linux/kthread.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <acpi/acpi_bus.h>
+#include <acpi/acpi_drivers.h>
+#include <acpi/processor.h>
+
+#include <xen/interface/platform.h>
+#include <asm/xen/hypercall.h>
+
+#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 <konrad.wilk@oracle.com>");
+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/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/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/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/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/s390/block/dasd_ioctl.c
+++ linux-3.2.0/drivers/s390/block/dasd_ioctl.c
@@ -13,6 +13,7 @@
 #define KMSG_COMPONENT "dasd"
 
 #include <linux/interrupt.h>
+#include <linux/compat.h>
 #include <linux/major.h>
 #include <linux/fs.h>
 #include <linux/blkpg.h>
--- 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 <linux/hdreg.h>	/* HDIO_GETGEO			    */
 #include <linux/bio.h>
 #include <linux/module.h>
+#include <linux/compat.h>
 #include <linux/init.h>
 
 #include <asm/debug.h>
 #include <asm/idals.h>
 #include <asm/ebcdic.h>
-#include <asm/compat.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <asm/cio.h>
--- linux-3.2.0.orig/drivers/s390/char/fs3270.c
+++ linux-3.2.0/drivers/s390/char/fs3270.c
@@ -11,6 +11,7 @@
 #include <linux/console.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/compat.h>
 #include <linux/module.h>
 #include <linux/list.h>
 #include <linux/slab.h>
--- linux-3.2.0.orig/drivers/s390/char/vmcp.c
+++ linux-3.2.0/drivers/s390/char/vmcp.c
@@ -13,6 +13,7 @@
 
 #include <linux/fs.h>
 #include <linux/init.h>
+#include <linux/compat.h>
 #include <linux/kernel.h>
 #include <linux/miscdevice.h>
 #include <linux/slab.h>
--- 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 <linux/slab.h>
+#include <linux/compat.h>
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/uaccess.h>
--- linux-3.2.0.orig/drivers/s390/scsi/zfcp_aux.c
+++ linux-3.2.0/drivers/s390/scsi/zfcp_aux.c
@@ -519,6 +519,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_fsf.c
+++ linux-3.2.0/drivers/s390/scsi/zfcp_fsf.c
@@ -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:
@@ -771,12 +771,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 +887,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 +1741,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 +1860,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 +1956,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 +1971,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 +2009,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_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 <linux/compat.h>
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/miscdevice.h>
@@ -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_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_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_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_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/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_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_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_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/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/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)},
 	{}
 };
--- 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);
--- linux-3.2.0.orig/drivers/staging/vt6656/rxtx.c
+++ linux-3.2.0/drivers/staging/vt6656/rxtx.c
@@ -1701,7 +1701,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);
@@ -2840,10 +2840,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 +2989,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 +3017,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)) {
--- 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, &reg);
+		/* 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/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/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/media/lirc/lirc_sir.c
+++ linux-3.2.0/drivers/staging/media/lirc/lirc_sir.c
@@ -53,6 +53,7 @@
 #include <linux/io.h>
 #include <asm/irq.h>
 #include <linux/fcntl.h>
+#include <linux/platform_device.h>
 #ifdef LIRC_ON_SA1100
 #include <asm/hardware.h>
 #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/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/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/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/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/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/speakup/speakup_soft.c
+++ linux-3.2.0/drivers/staging/speakup/speakup_soft.c
@@ -40,7 +40,7 @@
 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[] = {
@@ -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/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/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/os_intfs.c
+++ linux-3.2.0/drivers/staging/rtl8712/os_intfs.c
@@ -31,6 +31,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/kthread.h>
+#include <linux/firmware.h>
 #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/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/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 <linux/mutex.h>
+#include <linux/completion.h>
 
 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/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/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/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 <linux/usb.h>
 #include <linux/module.h>
+#include <linux/firmware.h>
 
 #include "osdep_service.h"
 #include "drv_types.h"
@@ -89,6 +90,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 +102,8 @@
 	/* - */
 	{USB_DEVICE(0x20F4, 0x646B)},
 	{USB_DEVICE(0x083A, 0xC512)},
+	{USB_DEVICE(0x25D4, 0x4CA1)},
+	{USB_DEVICE(0x25D4, 0x4CAB)},
 
 /* RTL8191SU */
 	/* Realtek */
@@ -389,6 +393,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 +600,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 +624,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 +639,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/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
@@ -280,7 +301,7 @@
 	if (ret == 0) {
 		if (!try_module_get(dev->driver->module)) {
 			comedi_device_detach(dev);
-			return -ENOSYS;
+			ret = -ENOSYS;
 		}
 	}
 
@@ -843,7 +864,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;
@@ -1088,7 +1109,6 @@
 		goto cleanup;
 	}
 
-	kfree(async->cmd.chanlist);
 	async->cmd = user_cmd;
 	async->cmd.data = NULL;
 	/* load channel/gain list */
@@ -1833,6 +1853,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");
--- 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
--- 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);
@@ -10,3 +10,6 @@
 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/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;
 			}
--- 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/s626.c
+++ linux-3.2.0/drivers/staging/comedi/drivers/s626.c
@@ -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/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/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/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/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-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-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-designware-core.c
+++ linux-3.2.0/drivers/i2c/busses/i2c-designware-core.c
@@ -25,6 +25,7 @@
  * ----------------------------------------------------------------------------
  *
  */
+#include <linux/export.h>
 #include <linux/clk.h>
 #include <linux/errno.h>
 #include <linux/err.h>
@@ -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
@@ -557,12 +559,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 +671,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 +695,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/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.
@@ -349,9 +351,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 +368,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-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/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-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-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/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-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-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-tegra.c
+++ linux-3.2.0/drivers/i2c/busses/i2c-tegra.c
@@ -401,8 +401,6 @@
 			disable_irq_nosync(i2c_dev->irq);
 			i2c_dev->irq_disabled = 1;
 		}
-
-		complete(&i2c_dev->msg_complete);
 		goto err;
 	}
 
@@ -411,7 +409,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 +426,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 +443,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;
 }
 
--- 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-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/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/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/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;
 	}
--- 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/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/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/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/fam15h_power.c
+++ linux-3.2.0/drivers/hwmon/fam15h_power.c
@@ -60,15 +60,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 +78,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 +122,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 +200,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;
@@ -213,6 +265,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/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/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/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/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/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/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/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
@@ -660,7 +659,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 +704,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/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/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/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/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);
 }
 
 /**
@@ -2154,7 +2162,7 @@
 				  const struct pci_device_id *id)
 {
 	struct tsi721_device *priv;
-	int i, cap;
+	int cap;
 	int err;
 	u32 regval;
 
@@ -2174,12 +2182,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/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-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/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-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-wacom.c
+++ linux-3.2.0/drivers/hid/hid-wacom.c
@@ -9,6 +9,7 @@
  *  Copyright (c) 2008 Jiri Slaby <jirislaby@gmail.com>
  *  Copyright (c) 2006 Andrew Zabolotny <zap@homelink.ru>
  *  Copyright (c) 2009 Bastien Nocera <hadess@hadess.net>
+ *  Copyright (c) 2011 Przemysław Firszt <przemo@firszt.eu>
  */
 
 /*
@@ -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/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,6 +125,9 @@
 #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
@@ -145,6 +152,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 +195,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 +226,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 +243,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 +284,9 @@
 #define USB_VENDOR_ID_EZKEY		0x0518
 #define USB_DEVICE_ID_BTC_8193		0x0002
 
+#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 +382,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 +392,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 +507,9 @@
 #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_MCC		0x09db
 #define USB_DEVICE_ID_MCC_PMD1024LS	0x0076
 #define USB_DEVICE_ID_MCC_PMD1208LS	0x007a
@@ -571,6 +604,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,7 +619,9 @@
 #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_ROCCAT		0x1e7d
@@ -679,6 +719,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 +748,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/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-logitech-dj.c
+++ linux-3.2.0/drivers/hid/hid-logitech-dj.c
@@ -26,6 +26,7 @@
 #include <linux/hid.h>
 #include <linux/module.h>
 #include <linux/usb.h>
+#include <asm/unaligned.h>
 #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/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-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 &&
+			!memcmp((char []){ 0x19, 0x00, 0x29, 0xff },
+				&rdesc[94], 4)) {
+		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 <linux/init.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/completion.h>
+#include <linux/input.h>
+#include <linux/hid.h>
+#include <linux/hiddev.h>
+#include <linux/hyperv.h>
+
+
+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-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-apple.c
+++ linux-3.2.0/drivers/hid/hid-apple.c
@@ -514,6 +514,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-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,6 +1380,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_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) },
@@ -1394,21 +1403,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 +1439,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 +1515,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) },
@@ -1544,11 +1564,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 +1901,7 @@
 	{ 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_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 +1986,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/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-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-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/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,14 @@
 	{ 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_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
+	{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
+	{ 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_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/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/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/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/quirks.c
+++ linux-3.2.0/drivers/pci/quirks.c
@@ -2906,6 +2906,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/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/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/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/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/firmware/dmi_scan.c
+++ linux-3.2.0/drivers/firmware/dmi_scan.c
@@ -6,6 +6,7 @@
 #include <linux/dmi.h>
 #include <linux/efi.h>
 #include <linux/bootmem.h>
+#include <linux/random.h>
 #include <asm/dmi.h>
 
 /*
@@ -111,6 +112,8 @@
 
 	dmi_table(buf, dmi_len, dmi_num, decode, NULL);
 
+	add_device_randomness(buf, dmi_len);
+
 	dmi_iounmap(buf, dmi_len);
 	return 0;
 }
--- linux-3.2.0.orig/drivers/firmware/efivars.c
+++ linux-3.2.0/drivers/firmware/efivars.c
@@ -191,6 +191,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)
 {
@@ -251,12 +435,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,6 +519,12 @@
 		return -EINVAL;
 	}
 
+	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(&efivars->lock);
 	status = efivars->ops->set_variable(new_var->VariableName,
 					    &new_var->VendorGuid,
@@ -624,6 +825,12 @@
 	if (!capable(CAP_SYS_ADMIN))
 		return -EACCES;
 
+	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(&efivars->lock);
 
 	/*
--- 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/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/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/hv/hv_kvp.c
+++ linux-3.2.0/drivers/hv/hv_kvp.c
@@ -28,8 +28,6 @@
 #include <linux/workqueue.h>
 #include <linux/hyperv.h>
 
-#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/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/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/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/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 <linux/reboot.h>
 #include <linux/hyperv.h>
 
-#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/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/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)
@@ -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/rtc/rtc-pl031.c
+++ linux-3.2.0/drivers/rtc/rtc-pl031.c
@@ -312,6 +312,7 @@
 	int ret;
 	struct pl031_local *ldata;
 	struct rtc_class_ops *ops = id->data;
+	unsigned long time;
 
 	ret = amba_request_regions(adev, NULL);
 	if (ret)
@@ -339,11 +340,27 @@
 	dev_dbg(&adev->dev, "revision = 0x%01x\n", ldata->hw_revision);
 
 	/* Enable the clockwatch on ST Variants */
-	if ((ldata->hw_designer == AMBA_VENDOR_ST) &&
-	    (ldata->hw_revision > 1))
+	if (ldata->hw_designer == AMBA_VENDOR_ST)
 		writel(readl(ldata->base + RTC_CR) | RTC_CR_CWEN,
 		       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);
 	if (IS_ERR(ldata->rtc)) {
@@ -420,6 +437,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/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-wm831x.c
+++ linux-3.2.0/drivers/rtc/rtc-wm831x.c
@@ -24,7 +24,7 @@
 #include <linux/mfd/wm831x/core.h>
 #include <linux/delay.h>
 #include <linux/platform_device.h>
-
+#include <linux/random.h>
 
 /*
  * 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(&reg, 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-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-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)
--- 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/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();
 
--- linux-3.2.0.orig/drivers/vhost/net.c
+++ linux-3.2.0/drivers/vhost/net.c
@@ -371,7 +371,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/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/dummy.c
+++ linux-3.2.0/drivers/net/dummy.c
@@ -37,6 +37,7 @@
 #include <linux/rtnetlink.h>
 #include <net/rtnetlink.h>
 #include <linux/u64_stats_sync.h>
+#include <linux/sched.h>
 
 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;
@@ -186,8 +187,10 @@
 	rtnl_lock();
 	err = __rtnl_link_register(&dummy_link_ops);
 
-	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);
 	rtnl_unlock();
--- linux-3.2.0.orig/drivers/net/tun.c
+++ linux-3.2.0/drivers/net/tun.c
@@ -1243,10 +1243,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/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/netconsole.c
+++ linux-3.2.0/drivers/net/netconsole.c
@@ -652,7 +652,6 @@
 							  flags);
 					dev_put(nt->np.dev);
 					nt->np.dev = NULL;
-					netconsole_target_put(nt);
 				}
 				nt->enabled = 0;
 				stopped = true;
--- linux-3.2.0.orig/drivers/net/xen-netfront.c
+++ linux-3.2.0/drivers/net/xen-netfront.c
@@ -1922,14 +1922,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/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,29 @@
 		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) {
+			for (i = 0; i < num_pages; i++)
+				put_page(page[i]);
 			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 +551,7 @@
 			len -= size;
 			i++;
 		}
-		offset1 = 0;
+		offset = 0;
 		++from;
 	}
 	return 0;
@@ -645,7 +651,7 @@
 	int err;
 	struct virtio_net_hdr vnet_hdr = { 0 };
 	int vnet_hdr_len = 0;
-	int copylen;
+	int copylen = 0;
 	bool zerocopy = false;
 
 	if (q->flags & IFF_VNET_HDR) {
@@ -674,15 +680,31 @@
 	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
@@ -693,10 +715,9 @@
 	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 +736,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/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 */
@@ -257,7 +258,7 @@
 
 xmit_world:
 	skb->ip_summed = ip_summed;
-	skb_set_dev(skb, vlan->lowerdev);
+	skb->dev = vlan->lowerdev;
 	return dev_queue_xmit(skb);
 }
 
--- 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/bonding/bond_main.c
+++ linux-3.2.0/drivers/net/bonding/bond_main.c
@@ -77,6 +77,7 @@
 #include <net/route.h>
 #include <net/net_namespace.h>
 #include <net/netns/generic.h>
+#include <net/pkt_sched.h>
 #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);
 
@@ -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,6 +1860,11 @@
 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:
 	dev_close(slave_dev);
 
@@ -2977,7 +2990,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 +3191,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;
 	}
@@ -4142,7 +4165,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 {
@@ -4381,8 +4404,6 @@
 
 	bond_work_cancel_all(bond);
 
-	bond_remove_proc_entry(bond);
-
 	bond_debug_unregister(bond);
 
 	__hw_addr_flush(&bond->mc_list);
@@ -4784,7 +4805,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);
--- 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/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 <linux/debugfs.h>
 #include <linux/seq_file.h>
--- 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 <haiyangz@microsoft.com>
+ *   Hank Janssen  <hjanssen@microsoft.com>
+ *   K. Y. Srinivasan <kys@microsoft.com>
+ *
+ */
+
+#ifndef _HYPERV_NET_H
+#define _HYPERV_NET_H
+
+#include <linux/list.h>
+#include <linux/hyperv.h>
+
+/* 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/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/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 <haiyangz@microsoft.com>
+ *   Hank Janssen  <hjanssen@microsoft.com>
+ */
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/highmem.h>
+#include <linux/slab.h>
+#include <linux/io.h>
+#include <linux/if_ether.h>
+#include <linux/netdevice.h>
+#include <linux/if_vlan.h>
+
+#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/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 <haiyangz@microsoft.com>
+ *   Hank Janssen  <hjanssen@microsoft.com>
+ */
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/slab.h>
+#include <linux/netdevice.h>
+#include <linux/if_ether.h>
+
+#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/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_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 <haiyangz@microsoft.com>
+ *   Hank Janssen  <hjanssen@microsoft.com>
+ */
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/atomic.h>
+#include <linux/module.h>
+#include <linux/highmem.h>
+#include <linux/device.h>
+#include <linux/io.h>
+#include <linux/delay.h>
+#include <linux/netdevice.h>
+#include <linux/inetdevice.h>
+#include <linux/etherdevice.h>
+#include <linux/skbuff.h>
+#include <linux/in.h>
+#include <linux/slab.h>
+#include <net/arp.h>
+#include <net/route.h>
+#include <net/sock.h>
+#include <net/pkt_sched.h>
+
+#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, &ethtool_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/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/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/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/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/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/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(&params_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(&params_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/p54/p54usb.c
+++ linux-3.2.0/drivers/net/wireless/p54/p54usb.c
@@ -42,7 +42,7 @@
  * 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 */
--- 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/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/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/ipw2x00/ipw2200.c
+++ linux-3.2.0/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -34,6 +34,7 @@
 #include <linux/slab.h>
 #include <net/cfg80211-wext.h>
 #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/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 <stas.yakovlev@gmail.com>
+ *
+ * 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 <linux/ieee80211.h>
+
+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 <net/lib80211.h>
 
 #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/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/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/b43/main.c
+++ linux-3.2.0/drivers/net/wireless/b43/main.c
@@ -4820,8 +4820,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/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/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/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/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/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.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, &reg);
+	rt2x00_set_field32(&reg, MAC_CSR13_BIT15, 0);
+	rt2x00usb_register_write(rt2x00dev, MAC_CSR13, reg);
+
+	/*
 	 * Initialize hw specifications.
 	 */
 	retval = rt73usb_probe_hw_mode(rt2x00dev);
--- 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/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/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, &reg);
+	rt2x00_set_field32(&reg, 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/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/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, &reg);
+	rt2x00_set_field32(&reg, 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/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, &reg);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_RXDELAYINT, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_TXDELAYINT, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_RX_DONE, mask);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_AC0_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_AC1_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_AC2_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_AC3_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_HCCA_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_MGMT_DMA_DONE, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_MCU_COMMAND, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_RXTX_COHERENT, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_TBTT, mask);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_PRE_TBTT, mask);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_TX_FIFO_STATUS, mask);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_AUTO_WAKEUP, mask);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_GPTIMER, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_RX_COHERENT, 0);
-	rt2x00_set_field32(&reg, INT_MASK_CSR_TX_COHERENT, 0);
+	reg = 0;
+	if (state == STATE_RADIO_IRQ_ON) {
+		rt2x00_set_field32(&reg, INT_MASK_CSR_RX_DONE, 1);
+		rt2x00_set_field32(&reg, INT_MASK_CSR_TBTT, 1);
+		rt2x00_set_field32(&reg, INT_MASK_CSR_PRE_TBTT, 1);
+		rt2x00_set_field32(&reg, INT_MASK_CSR_TX_FIFO_STATUS, 1);
+		rt2x00_set_field32(&reg, 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, &reg);
+	rt2x00_set_field32(&reg, 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/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/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, &reg);
+	rt2x00_set_field32(&reg, 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/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/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/rt2500usb.c
+++ linux-3.2.0/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -283,7 +283,7 @@
 	u16 reg;
 
 	rt2500usb_register_read(rt2x00dev, MAC_CSR19, &reg);
-	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, &reg);
+	rt2x00_set_field16(&reg, MAC_CSR19_BIT8, 0);
+	rt2500usb_register_write(rt2x00dev, MAC_CSR19, reg);
+
+	/*
 	 * Initialize hw specifications.
 	 */
 	retval = rt2500usb_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;
--- 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, &reg);
+	rt2x00_set_field32(&reg, 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,20 @@
 	{ 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) },
 	/* 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 +1002,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 +1027,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 +1087,9 @@
 	/* Sparklan */
 	{ USB_DEVICE(0x15a9, 0x0006) },
 	/* Sweex */
+	{ USB_DEVICE(0x177f, 0x0153) },
 	{ USB_DEVICE(0x177f, 0x0302) },
+	{ USB_DEVICE(0x177f, 0x0313) },
 	/* U-Media */
 	{ USB_DEVICE(0x157e, 0x300e) },
 	{ USB_DEVICE(0x157e, 0x3013) },
@@ -1074,6 +1109,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 +1126,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 +1144,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 +1156,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 +1182,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 +1212,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 +1236,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/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;
 
 	/*
--- 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/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
@@ -113,46 +113,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 +477,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);
 		}
@@ -911,6 +909,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);
@@ -988,6 +995,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/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/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/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/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/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,38 @@
 	{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)},
 	/* 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,14 +335,37 @@
 	{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(0x7392, 0x7822, rtl92cu_hal_cfg)}, /*Edimax -Edimax*/
 	{}
 };
--- 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/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/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/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/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/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 <ilw@linux.intel.com>
+ * 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 <linux/interrupt.h>
+#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-trans-pcie-rx.c
+++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
@@ -678,7 +678,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 +957,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 +1136,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 +1148,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 +1168,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 +1205,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;
--- 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-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-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-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-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-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-agn-sta.c
+++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
@@ -1211,6 +1211,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 +1237,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-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/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-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-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-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-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-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/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-trans-pcie-int.h
+++ linux-3.2.0/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
@@ -219,9 +219,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 +303,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-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/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-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/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/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/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);
--- 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/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/init.c
+++ linux-3.2.0/drivers/net/wireless/ath/ath9k/init.c
@@ -775,6 +775,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 +798,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/recv.c
+++ linux-3.2.0/drivers/net/wireless/ath/ath9k/recv.c
@@ -824,6 +824,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 +1782,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 +1803,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;
--- 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/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, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+	{0x0000a2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+	{0x0000a2e4, 0x03fc0000, 0x03fc0000, 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},
+	{0x0000a510, 0x16000220, 0x16000220, 0x0f000202, 0x0f000202},
+	{0x0000a514, 0x1c000223, 0x1c000223, 0x12000400, 0x12000400},
+	{0x0000a518, 0x21002220, 0x21002220, 0x16000402, 0x16000402},
+	{0x0000a51c, 0x27002223, 0x27002223, 0x19000404, 0x19000404},
+	{0x0000a520, 0x2b022220, 0x2b022220, 0x1c000603, 0x1c000603},
+	{0x0000a524, 0x2f022222, 0x2f022222, 0x21000a02, 0x21000a02},
+	{0x0000a528, 0x34022225, 0x34022225, 0x25000a04, 0x25000a04},
+	{0x0000a52c, 0x3a02222a, 0x3a02222a, 0x28000a20, 0x28000a20},
+	{0x0000a530, 0x3e02222c, 0x3e02222c, 0x2c000e20, 0x2c000e20},
+	{0x0000a534, 0x4202242a, 0x4202242a, 0x30000e22, 0x30000e22},
+	{0x0000a538, 0x4702244a, 0x4702244a, 0x34000e24, 0x34000e24},
+	{0x0000a53c, 0x4b02244c, 0x4b02244c, 0x38001640, 0x38001640},
+	{0x0000a540, 0x4e02246c, 0x4e02246c, 0x3c001660, 0x3c001660},
+	{0x0000a544, 0x52022470, 0x52022470, 0x3f001861, 0x3f001861},
+	{0x0000a548, 0x55022490, 0x55022490, 0x43001a81, 0x43001a81},
+	{0x0000a54c, 0x59022492, 0x59022492, 0x47001a83, 0x47001a83},
+	{0x0000a550, 0x5d022692, 0x5d022692, 0x4a001c84, 0x4a001c84},
+	{0x0000a554, 0x61022892, 0x61022892, 0x4e001ce3, 0x4e001ce3},
+	{0x0000a558, 0x65024890, 0x65024890, 0x52001ce5, 0x52001ce5},
+	{0x0000a55c, 0x69024892, 0x69024892, 0x56001ce9, 0x56001ce9},
+	{0x0000a560, 0x6e024c92, 0x6e024c92, 0x5a001ceb, 0x5a001ceb},
+	{0x0000a564, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a568, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a56c, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a570, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a574, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a578, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+	{0x0000a57c, 0x74026e92, 0x74026e92, 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},
+	{0x0000a590, 0x16800220, 0x16800220, 0x0f800202, 0x0f800202},
+	{0x0000a594, 0x1c800223, 0x1c800223, 0x12800400, 0x12800400},
+	{0x0000a598, 0x21802220, 0x21802220, 0x16800402, 0x16800402},
+	{0x0000a59c, 0x27802223, 0x27802223, 0x19800404, 0x19800404},
+	{0x0000a5a0, 0x2b822220, 0x2b822220, 0x1c800603, 0x1c800603},
+	{0x0000a5a4, 0x2f822222, 0x2f822222, 0x21800a02, 0x21800a02},
+	{0x0000a5a8, 0x34822225, 0x34822225, 0x25800a04, 0x25800a04},
+	{0x0000a5ac, 0x3a82222a, 0x3a82222a, 0x28800a20, 0x28800a20},
+	{0x0000a5b0, 0x3e82222c, 0x3e82222c, 0x2c800e20, 0x2c800e20},
+	{0x0000a5b4, 0x4282242a, 0x4282242a, 0x30800e22, 0x30800e22},
+	{0x0000a5b8, 0x4782244a, 0x4782244a, 0x34800e24, 0x34800e24},
+	{0x0000a5bc, 0x4b82244c, 0x4b82244c, 0x38801640, 0x38801640},
+	{0x0000a5c0, 0x4e82246c, 0x4e82246c, 0x3c801660, 0x3c801660},
+	{0x0000a5c4, 0x52822470, 0x52822470, 0x3f801861, 0x3f801861},
+	{0x0000a5c8, 0x55822490, 0x55822490, 0x43801a81, 0x43801a81},
+	{0x0000a5cc, 0x59822492, 0x59822492, 0x47801a83, 0x47801a83},
+	{0x0000a5d0, 0x5d822692, 0x5d822692, 0x4a801c84, 0x4a801c84},
+	{0x0000a5d4, 0x61822892, 0x61822892, 0x4e801ce3, 0x4e801ce3},
+	{0x0000a5d8, 0x65824890, 0x65824890, 0x52801ce5, 0x52801ce5},
+	{0x0000a5dc, 0x69824892, 0x69824892, 0x56801ce9, 0x56801ce9},
+	{0x0000a5e0, 0x6e824c92, 0x6e824c92, 0x5a801ceb, 0x5a801ceb},
+	{0x0000a5e4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5e8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5ec, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5f0, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5f4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5f8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+	{0x0000a5fc, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
 	{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, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+	{0x0000a614, 0x02004000, 0x02004000, 0x01404000, 0x01404000},
+	{0x0000a618, 0x02004801, 0x02004801, 0x01404501, 0x01404501},
+	{0x0000a61c, 0x02808a02, 0x02808a02, 0x02008501, 0x02008501},
+	{0x0000a620, 0x0380ce03, 0x0380ce03, 0x0280ca03, 0x0280ca03},
+	{0x0000a624, 0x04411104, 0x04411104, 0x03010c04, 0x03010c04},
+	{0x0000a628, 0x04411104, 0x04411104, 0x04014c04, 0x04014c04},
+	{0x0000a62c, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+	{0x0000a630, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+	{0x0000a634, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+	{0x0000a638, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+	{0x0000a63c, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+	{0x0000b2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+	{0x0000b2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+	{0x0000b2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800},
 	{0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000},
-	{0x0000c2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352},
-	{0x0000c2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584},
-	{0x0000c2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800},
+	{0x0000c2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+	{0x0000c2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+	{0x0000c2e4, 0x03fc0000, 0x03fc0000, 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/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;
@@ -1693,11 +1692,8 @@
 		 * 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;
-		}
+		if (ah->curchan && (old_pos == pos))
+			ath9k_hw_getnf(ah, ah->curchan);
 
 		ath9k_cmn_update_ichannel(&sc->sc_ah->channels[pos],
 					  curchan, conf->channel_type);
--- 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/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)
 {
@@ -348,10 +347,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,
@@ -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)
--- 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_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/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
 
@@ -772,7 +773,6 @@
 	u32 *analogBank6Data;
 	u32 *analogBank6TPCData;
 	u32 *analogBank7Data;
-	u32 *addac5416_21;
 	u32 *bank6Temp;
 
 	u8 txpower_limit;
--- 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/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";
--- 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);
--- 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/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/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/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/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/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);
 
--- 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 <linux/module.h>
 #include <linux/bitops.h>
 #include <linux/cdev.h>
 #include <linux/dma-mapping.h>
--- 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/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/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/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/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/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/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/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/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/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/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_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/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_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.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/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/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 <http://www.gnu.org/licenses/>.
+ */
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/circ_buf.h>
+#include <linux/interrupt.h>
+#include <linux/etherdevice.h>
+#include <linux/platform_device.h>
+#include <linux/skbuff.h>
+#include <linux/ethtool.h>
+#include <linux/if.h>
+#include <linux/crc32.h>
+#include <linux/dma-mapping.h>
+#include <linux/slab.h>
+
+/* 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/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/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/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/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/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/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/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/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/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/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/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/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);
--- 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);
--- linux-3.2.0.orig/drivers/net/ethernet/sfc/rx.c
+++ linux-3.2.0/drivers/net/ethernet/sfc/rx.c
@@ -156,11 +156,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,
@@ -499,6 +498,7 @@
 
 		EFX_BUG_ON_PARANOID(!checksummed);
 		rx_buf->u.skb = NULL;
+		skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 		gro_result = napi_gro_receive(napi, skb);
 	}
--- 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/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
--- linux-3.2.0.orig/drivers/net/ethernet/sfc/efx.c
+++ linux-3.2.0/drivers/net/ethernet/sfc/efx.c
@@ -1383,6 +1383,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)
@@ -1973,6 +1978,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);
--- 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/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/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_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/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);
 }
 
--- 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(&regs->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_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/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/3com/3c59x.c
+++ linux-3.2.0/drivers/net/ethernet/3com/3c59x.c
@@ -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);
 	}
 }
 
--- 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/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/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/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/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;
--- 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/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/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;
--- 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/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/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
@@ -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/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/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/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/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/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_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/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_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_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/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_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_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, <linux.nics@intel.com>");
 MODULE_DESCRIPTION("Intel(R) 10 Gigabit PCI Express Network Driver");
 MODULE_LICENSE("GPL");
@@ -7479,6 +7486,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 +7621,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;
--- 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
@@ -4965,7 +4965,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/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 */
@@ -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/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/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/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;
 
@@ -2794,7 +2799,9 @@
 	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)))
+	     (tp->phy_flags & TG3_PHYFLG_MII_SERDES)) ||
+	    (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 &&
+	     !tp->pci_fn))
 		return;
 
 	if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX ||
@@ -5893,6 +5900,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()
@@ -7446,6 +7456,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:
@@ -10428,10 +10444,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)
@@ -13997,9 +14013,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 +14050,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)
@@ -14273,6 +14294,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.
--- 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_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.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_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/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/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)
@@ -3500,6 +3521,8 @@
 	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:
@@ -3766,6 +3789,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 +3805,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 +4205,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 +4231,8 @@
 
 	cancel_delayed_work_sync(&tp->task);
 
+	netif_napi_del(&tp->napi);
+
 	unregister_netdev(dev);
 
 	rtl_release_firmware(tp);
@@ -5504,7 +5539,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;
 	}
@@ -5552,10 +5587,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);
 	}
 
@@ -5655,9 +5701,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 +5719,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);
 	}
@@ -6014,6 +6066,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 +6241,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 +6265,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/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/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/marvell/sky2.h
+++ linux-3.2.0/drivers/net/ethernet/marvell/sky2.h
@@ -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);
@@ -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/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/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/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 <peppe.cavallaro@st.com>
 *******************************************************************************/
-
+#include <stdarg.h>
 #include <linux/io.h>
+#include <linux/printk.h>
 #include "mmc.h"
 
 /* MAC Management Counters register offset */
--- 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/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 <linux/list.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/phy.h>
+#include <net/dsa.h>
+#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/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 <linux/list.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/phy.h>
+#include <net/dsa.h>
+#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 <buytenh@wantstofly.org>");
+MODULE_DESCRIPTION("Driver for Marvell 88E6XXX ethernet switch chips");
+MODULE_LICENSE("GPL");
--- 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/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 <linux/list.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/phy.h>
+#include <net/dsa.h>
+#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/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 <linux/list.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/phy.h>
+#include <net/dsa.h>
+
+#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 <buytenh@wantstofly.org>");
+MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:mv88e6060");
--- 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/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/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/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/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/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/ti_hecc.c
+++ linux-3.2.0/drivers/net/can/ti_hecc.c
@@ -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/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/can/c_can/c_can.c
+++ linux-3.2.0/drivers/net/can/c_can/c_can.c
@@ -590,8 +590,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 +686,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 +698,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 +706,8 @@
 					& IF_MCONT_DLC_MASK;
 			stats->tx_packets++;
 			c_can_inval_msg_object(dev, 0, msg_obj_no);
+		} else {
+			break;
 		}
 	}
 
@@ -950,7 +952,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 +1030,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 +1064,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/sja1000.c
+++ linux-3.2.0/drivers/net/can/sja1000/sja1000.c
@@ -95,11 +95,16 @@
 	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;
@@ -493,6 +498,9 @@
 	while ((isrc = priv->read_reg(priv, REG_IR)) && (n < SJA1000_MAX_IRQ)) {
 		n++;
 		status = priv->read_reg(priv, 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");
@@ -509,6 +517,9 @@
 			while (status & SR_RBS) {
 				sja1000_rx(dev);
 				status = priv->read_reg(priv, 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/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/usb/ipheth.c
+++ linux-3.2.0/drivers/net/usb/ipheth.c
@@ -59,7 +59,9 @@
 #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 IPHETH_USBINTF_CLASS    255
 #define IPHETH_USBINTF_SUBCLASS 253
@@ -100,9 +102,17 @@
 		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) },
 	{ }
 };
 MODULE_DEVICE_TABLE(usb, ipheth_table);
--- 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_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/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/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/asix.c
+++ linux-3.2.0/drivers/net/usb/asix.c
@@ -35,6 +35,7 @@
 #include <linux/crc32.h>
 #include <linux/usb/usbnet.h>
 #include <linux/slab.h>
+#include <linux/if_vlan.h>
 
 #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/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/smsc75xx.c
+++ linux-3.2.0/drivers/net/usb/smsc75xx.c
@@ -1050,6 +1050,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;
 }
 
--- 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/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/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-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/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-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-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-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-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/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/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/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/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_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/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/storvsc_drv.c
+++ linux-3.2.0/drivers/scsi/storvsc_drv.c
@@ -0,0 +1,1565 @@
+/*
+ * 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 <haiyangz@microsoft.com>
+ *   Hank Janssen  <hjanssen@microsoft.com>
+ *   K. Y. Srinivasan <kys@microsoft.com>
+ */
+
+#include <linux/kernel.h>
+#include <linux/wait.h>
+#include <linux/sched.h>
+#include <linux/completion.h>
+#include <linux/string.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/device.h>
+#include <linux/hyperv.h>
+#include <linux/mempool.h>
+#include <scsi/scsi.h>
+#include <scsi/scsi_cmnd.h>
+#include <scsi/scsi_host.h>
+#include <scsi/scsi_device.h>
+#include <scsi/scsi_tcq.h>
+#include <scsi/scsi_eh.h>
+#include <scsi/scsi_devinfo.h>
+#include <scsi/scsi_dbg.h>
+
+/*
+ * 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;
+
+	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/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/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_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/scsi_error.c
+++ linux-3.2.0/drivers/scsi/scsi_error.c
@@ -41,6 +41,8 @@
 
 #include <trace/events/scsi.h>
 
+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_wait_scan.c
+++ linux-3.2.0/drivers/scsi/scsi_wait_scan.c
@@ -12,7 +12,7 @@
 
 #include <linux/module.h>
 #include <linux/device.h>
-#include <scsi/scsi_scan.h>
+#include "scsi_priv.h"
 
 static int __init wait_scan_init(void)
 {
--- linux-3.2.0.orig/drivers/scsi/scsi_sysfs.c
+++ linux-3.2.0/drivers/scsi/scsi_sysfs.c
@@ -971,11 +971,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 +997,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 +1010,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 +1022,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/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/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_pm.c
+++ linux-3.2.0/drivers/scsi/scsi_pm.c
@@ -7,6 +7,7 @@
 
 #include <linux/pm_runtime.h>
 #include <linux/export.h>
+#include <linux/async.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_device.h>
@@ -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/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/hpsa.c
+++ linux-3.2.0/drivers/scsi/hpsa.c
@@ -532,12 +532,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 +1243,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 +1705,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 +2956,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 +3062,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 +4100,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 +4203,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 +4213,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 +4222,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 +4264,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/sd.c
+++ linux-3.2.0/drivers/scsi/sd.c
@@ -1074,6 +1074,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 +1100,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 +1270,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 +1286,6 @@
 		return -ENODEV;
 	       
 	if (sdev->host->hostt->compat_ioctl) {
-		int ret;
-
 		ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg);
 
 		return ret;
--- linux-3.2.0.orig/drivers/scsi/isci/init.c
+++ linux-3.2.0/drivers/scsi/isci/init.c
@@ -465,11 +465,10 @@
 	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/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/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/mpt2sas/mpt2sas_scsih.c
+++ linux-3.2.0/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -1007,8 +1007,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,
@@ -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);
 }
 
@@ -8000,7 +8001,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 +8014,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/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 ");
@@ -1154,6 +1156,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 +1746,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()];
 }
 
 /**
@@ -2311,8 +2320,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 +2337,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 +2360,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 +2409,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--;
+	/* reply free queue sizing - taking into account for 64 FW events */
+	ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64;
 
-	/* 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);
-
-		/* 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 +2441,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 +2513,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 +3284,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 +3326,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 +4043,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 +4092,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 +4203,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;
--- 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/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/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 <bharrosh@panasas.com>");
 MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko");
--- 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/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/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/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/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);
@@ -5520,6 +5519,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/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/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/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/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/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");
@@ -1405,7 +1405,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 +1413,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/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;
@@ -79,6 +82,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 */
@@ -89,9 +93,11 @@
 	{ USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */
 	{ 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 */
@@ -118,6 +124,8 @@
 	{ USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
 	{ 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 +135,39 @@
 	{ 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(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
+	{ USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
+	{ USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
+	{ 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 +193,7 @@
 	.tiocmget 		= cp210x_tiocmget,
 	.tiocmset		= cp210x_tiocmset,
 	.attach			= cp210x_startup,
+	.release		= cp210x_release,
 	.dtr_rts		= cp210x_dtr_rts
 };
 
@@ -200,6 +226,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 +281,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 +297,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 +326,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 +348,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 +386,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 +415,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 +432,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 +491,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 +605,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 +673,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 +855,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/mct_u232.c
+++ linux-3.2.0/drivers/usb/serial/mct_u232.c
@@ -359,13 +359,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,
@@ -574,12 +577,14 @@
 {
 	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 */
 
 
--- linux-3.2.0.orig/drivers/usb/serial/ftdi_sio.c
+++ linux-3.2.0/drivers/usb/serial/ftdi_sio.c
@@ -75,7 +75,8 @@
 	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 */
+	bool dev_gone;        /* Used to abort 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 +189,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) },
@@ -536,6 +538,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,6 +584,8 @@
 	{ 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:
 	 */
@@ -698,6 +706,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 +740,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 +807,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 +870,16 @@
 	{ 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),
 		.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) },
 	{ },					/* Optional parameter entry */
 	{ }					/* Terminating entry */
 };
@@ -863,7 +902,8 @@
 	[FT232RL] = "FT232RL",
 	[FT2232H] = "FT2232H",
 	[FT4232H] = "FT4232H",
-	[FT232H]  = "FT232H"
+	[FT232H]  = "FT232H",
+	[FTX]     = "FT-X"
 };
 
 
@@ -1164,7 +1204,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 +1374,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 +1494,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 +1629,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 +1652,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);
 		}
 	}
@@ -1659,6 +1705,7 @@
 	init_waitqueue_head(&priv->delta_msr_wait);
 
 	priv->flags = ASYNC_LOW_LATENCY;
+	priv->dev_gone = false;
 
 	if (quirk && quirk->port_probe)
 		quirk->port_probe(priv);
@@ -1759,7 +1806,8 @@
 
 	dbg("%s", __func__);
 
-	if (strcmp(udev->manufacturer, "CALAO Systems") == 0)
+	if ((udev->manufacturer && !strcmp(udev->manufacturer, "CALAO Systems")) ||
+	    (udev->product && !strcmp(udev->product, "BeagleBone/XDS100")))
 		return ftdi_jtag_probe(serial);
 
 	return 0;
@@ -1815,6 +1863,9 @@
 
 	dbg("%s", __func__);
 
+	priv->dev_gone = true;
+	wake_up_interruptible_all(&priv->delta_msr_wait);
+
 	remove_sysfs_attrs(port);
 
 	kref_put(&priv->kref, ftdi_sio_priv_release);
@@ -1824,6 +1875,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 +1894,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);
@@ -1955,17 +2009,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_all(&priv->delta_msr_wait);
 		priv->prev_status = status;
 	}
 
@@ -2277,6 +2333,7 @@
 	case FT2232H:
 	case FT4232H:
 	case FT232H:
+	case FTX:
 		len = 2;
 		break;
 	default:
@@ -2363,15 +2420,12 @@
 	 */
 	case TIOCMIWAIT:
 		cprev = priv->icount;
-		while (1) {
+		while (!priv->dev_gone) {
 			interruptible_sleep_on(&priv->delta_msr_wait);
 			/* see if a signal did it */
 			if (signal_pending(current))
 				return -ERESTARTSYS;
 			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,7 +2434,7 @@
 			}
 			cprev = cnow;
 		}
-		/* not reached */
+		return -EIO;
 		break;
 	case TIOCSERGETLSR:
 		return get_lsr_info(port, (struct serial_struct __user *)arg);
--- 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,9 @@
 	{ 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 */
 	{ },
 };
 MODULE_DEVICE_TABLE(usb, id_table);
--- linux-3.2.0.orig/drivers/usb/serial/pl2303.c
+++ linux-3.2.0/drivers/usb/serial/pl2303.c
@@ -421,7 +421,7 @@
 	control = priv->line_control;
 	if ((cflag & CBAUD) == B0)
 		priv->line_control &= ~(CONTROL_DTR | CONTROL_RTS);
-	else
+	else if ((old_termios->c_cflag & CBAUD) == B0)
 		priv->line_control |= (CONTROL_DTR | CONTROL_RTS);
 	if (control != priv->line_control) {
 		control = priv->line_control;
--- 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:
--- 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,10 @@
 #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_PRODUCT_ID		0x3410
+
 /* Commands */
 #define TI_GET_VERSION			0x01
 #define TI_GET_PORT_STATUS		0x02
--- 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/ti_usb_3410_5052.c
+++ linux-3.2.0/drivers/usb/serial/ti_usb_3410_5052.c
@@ -165,7 +165,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 +179,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) },
 };
 
 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) },
 	{ }
 };
 
--- 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/) */
@@ -65,6 +75,9 @@
 #define FTDI_OPENDCC_GATEWAY_PID	0xBFDB
 #define FTDI_OPENDCC_GBM_PID	0xBFDC
 
+/* 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 +103,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 */
@@ -502,6 +517,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 +545,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
@@ -667,6 +700,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
@@ -758,6 +795,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.
@@ -1168,3 +1240,16 @@
  */
 /* 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
--- 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/io_ti.c
+++ linux-3.2.0/drivers/usb/serial/io_ti.c
@@ -2677,15 +2677,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 +2756,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,6 +2788,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,
--- 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
 	},
@@ -908,6 +909,7 @@
 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 +917,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 +940,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 +977,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 +1004,7 @@
 			continue;
 		kfree(portdata);
 	}
+	kfree(serial->private);
 }
 
 #ifdef CONFIG_PM
--- linux-3.2.0.orig/drivers/usb/serial/usb-serial.c
+++ linux-3.2.0/drivers/usb/serial/usb-serial.c
@@ -669,12 +669,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;
 	}
@@ -762,7 +764,7 @@
 
 		if (retval) {
 			dbg("sub driver rejected device");
-			kfree(serial);
+			usb_serial_put(serial);
 			module_put(type->driver.owner);
 			return retval;
 		}
@@ -834,7 +836,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 +850,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;
 		}
@@ -1059,6 +1061,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 +1091,8 @@
 		}
 	}
 
+	serial->disconnected = 0;
+
 	usb_serial_console_init(debug, minor);
 
 exit:
--- 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/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,12 +235,10 @@
 	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;
@@ -504,7 +503,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 +521,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 +534,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 +641,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);
 			}
 		}
 	}
@@ -1103,14 +1083,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);
@@ -1179,9 +1170,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 +1515,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 +1846,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,
@@ -2309,19 +2315,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 +2573,6 @@
 		kfree(mos7840_port->ctrl_buf);
 		usb_free_urb(mos7840_port->control_urb);
 		kfree(mos7840_port);
-		serial->port[i] = NULL;
 	}
 	return status;
 }
@@ -2573,7 +2585,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 +2602,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 +2635,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/qcserial.c
+++ linux-3.2.0/drivers/usb/serial/qcserial.c
@@ -24,34 +24,44 @@
 
 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 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 */
+
+	/* 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 +96,24 @@
 	{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 */
 	{ }				/* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, id_table);
@@ -108,8 +135,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 +186,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 +223,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/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,9 @@
 #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_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 +157,11 @@
 #define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED	0x8001
 #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED	0x9000
 #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED	0x9001
+#define NOVATELWIRELESS_PRODUCT_E362		0x9010
 #define NOVATELWIRELESS_PRODUCT_G1		0xA001
 #define NOVATELWIRELESS_PRODUCT_G1_M		0xA002
 #define NOVATELWIRELESS_PRODUCT_G2		0xA010
+#define NOVATELWIRELESS_PRODUCT_MC551		0xB001
 
 /* AMOI PRODUCTS */
 #define AMOI_VENDOR_ID				0x1614
@@ -265,6 +193,9 @@
 #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 KYOCERA_VENDOR_ID			0x0c88
 #define KYOCERA_PRODUCT_KPC650			0x17da
 #define KYOCERA_PRODUCT_KPC680			0x180a
@@ -307,6 +238,9 @@
 #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
 
 /* ZTE PRODUCTS */
 #define ZTE_VENDOR_ID				0x19d2
@@ -352,6 +286,7 @@
 /* ALCATEL PRODUCTS */
 #define ALCATEL_VENDOR_ID			0x1bbb
 #define ALCATEL_PRODUCT_X060S_X200		0x0000
+#define ALCATEL_PRODUCT_X220_X500D		0x0017
 
 #define PIRELLI_VENDOR_ID			0x1266
 #define PIRELLI_PRODUCT_C100_1			0x1002
@@ -422,7 +357,7 @@
 #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,55 @@
 #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_5COM		0x00a4
+#define MEDIATEK_PRODUCT_7208_1COM		0x7101
+#define MEDIATEK_PRODUCT_7208_2COM		0x7102
+#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
+
 /* some devices interfaces need special handling due to a number of reasons */
 enum option_blacklist_reason {
 		OPTION_BLACKLIST_NONE = 0,
@@ -528,6 +492,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 +508,19 @@
 	.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 usb_device_id option_ids[] = {
 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
 	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -576,99 +552,123 @@
 	{ 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_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, 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 +694,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) },
@@ -707,6 +708,9 @@
 	{ 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 +733,8 @@
 	{ 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(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) },
@@ -760,6 +766,9 @@
 	{ 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_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,7 +789,6 @@
 	{ 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),
@@ -795,7 +803,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 +827,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 +834,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 +843,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 +851,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 +869,56 @@
 	{ 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, 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, 0x0191, 0xff, 0xff, 0xff), /* ZTE EuFi890 */
+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+	{ 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, 0x0257, 0xff, 0xff, 0xff), /* ZTE MF821 */
+	  .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
+	{ 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, 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, 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 +1034,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 +1096,43 @@
 	{ 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, 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 +1143,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 +1164,7 @@
 	{ 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) },
 	{ 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),
@@ -1177,7 +1246,30 @@
 	{ 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(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
 	{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, option_ids);
@@ -1221,7 +1313,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 +1323,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 +1403,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 +1420,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 +1496,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/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/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/unusual_devs.h
+++ linux-3.2.0/drivers/usb/storage/unusual_devs.h
@@ -1004,6 +1004,12 @@
 		USB_SC_8070, USB_PR_CB, NULL,
 		US_FL_NEED_OVERRIDE | US_FL_FIX_INQUIRY ),
 
+/* Submitted by Oleksandr Chumachenko <ledest@gmail.com> */
+UNUSUAL_DEV( 0x07cf, 0x1167, 0x0100, 0x0100,
+		"Casio",
+		"EX-N1 DigitalCamera",
+		USB_SC_8070, USB_PR_DEVICE, NULL, 0),
+
 /* Submitted by Hartmut Wahl <hwahl@hwahl.de>*/
 UNUSUAL_DEV( 0x0839, 0x000a, 0x0001, 0x0001,
 		"Samsung",
@@ -1163,6 +1169,13 @@
 		USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init,
 		0),
 
+/* Reported by Timo Aaltonen <tjaalton@ubuntu.com> */
+UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999,
+		"Option",
+		"Mass Storage",
+		USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init,
+		0 ),
+
 /* Reported by F. Aben <f.aben@option.com>
  * This device (wrongly) has a vendor-specific device descriptor.
  * The entry is needed so usb-storage can bind to it's mass-storage
@@ -1885,6 +1898,13 @@
 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
 		US_FL_IGNORE_RESIDUE ),
 
+/* Reported by Jesse Feddema <jdfeddema@gmail.com> */
+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 <hdegoede@redhat.com>
  * 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/usb.h
+++ linux-3.2.0/drivers/usb/storage/usb.h
@@ -47,6 +47,7 @@
 #include <linux/blkdev.h>
 #include <linux/completion.h>
 #include <linux/mutex.h>
+#include <linux/workqueue.h>
 #include <scsi/scsi_host.h>
 
 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/usb.c
+++ linux-3.2.0/drivers/usb/storage/usb.c
@@ -788,15 +788,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 +827,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");
+	dev_dbg(dev, "starting scan\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);
+	/* 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");
 
-	/* 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");
-
-		/* Should we unbind if no devices were detected? */
-	}
+	/* 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 +895,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 +926,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 +966,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 +1046,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/uas.c
+++ linux-3.2.0/drivers/usb/storage/uas.c
@@ -13,7 +13,9 @@
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/usb.h>
+#include <linux/usb/hcd.h>
 #include <linux/usb/storage.h>
+#include <linux/usb/uas.h>
 
 #include <scsi/scsi.h>
 #include <scsi/scsi_dbg.h>
@@ -22,49 +24,6 @@
 #include <scsi/scsi_host.h>
 #include <scsi/scsi_tcq.h>
 
-/* 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/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,9 @@
 					   Maybe we should define a new
 					   quirk for this. */
 	},
+	{ USB_DEVICE(0x0572, 0x1340), /* Conexant CX93010-2x UCMxx */
+	.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! */
+	},
 	{ }
 };
 
@@ -57,6 +73,8 @@
 
 #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 +106,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 +124,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);
 }
 
@@ -281,7 +301,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 +329,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 +343,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 +393,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 +408,7 @@
 out:
 	usb_autopm_put_interface(desc->intf);
 outnp:
-	mutex_unlock(&desc->lock);
+	mutex_unlock(&desc->wlock);
 outnl:
 	return rv < 0 ? rv : count;
 }
@@ -394,16 +416,17 @@
 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)) {
@@ -450,20 +473,25 @@
 			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 +499,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 +514,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 +531,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 +573,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 +587,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 +599,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 +671,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 +706,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 +758,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 +788,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 +821,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 +844,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 +863,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 +904,8 @@
 {
 	struct wdm_device *desc = usb_get_intfdata(intf);
 
-	mutex_lock(&desc->lock);
+	mutex_lock(&desc->rlock);
+	mutex_lock(&desc->wlock);
 	kill_urbs(desc);
 
 	/*
@@ -876,7 +927,8 @@
 	int rv;
 
 	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/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/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/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/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_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/f_mass_storage.c
+++ linux-3.2.0/drivers/usb/gadget/f_mass_storage.c
@@ -2182,7 +2182,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/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/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/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/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/gadget/dummy_hcd.c
+++ linux-3.2.0/drivers/usb/gadget/dummy_hcd.c
@@ -925,7 +925,6 @@
 
 	dum->driver = NULL;
 
-	dummy_pullup(&dum->gadget, 0);
 	return 0;
 }
 
@@ -2293,10 +2292,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 +2312,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_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;
@@ -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/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_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/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/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/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);
+		usb_gadget_disconnect(udc->gadget);
 		udc->driver->unbind(udc->gadget);
 		usb_gadget_udc_stop(udc->gadget, udc->driver);
-		usb_gadget_disconnect(udc->gadget);
 	} 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/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/host/pci-quirks.c
+++ linux-3.2.0/drivers/usb/host/pci-quirks.c
@@ -9,6 +9,7 @@
  */
 
 #include <linux/types.h>
+#include <linux/kconfig.h>
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/init.h>
@@ -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,28 @@
 	return -ETIMEDOUT;
 }
 
-bool usb_is_intel_switchable_xhci(struct pci_dev *pdev)
+#define PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI	0x8C31
+
+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;
+}
+
+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 +768,31 @@
 {
 	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");
+		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 +802,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 +826,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 +848,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 +863,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 +896,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 +943,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 +967,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.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-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,
@@ -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;
@@ -1643,7 +1934,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
@@ -1734,8 +2024,12 @@
 	/* handle completion code */
 	switch (trb_comp_code) {
 	case COMP_SUCCESS:
-		frame->status = 0;
-		break;
+		if (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 +2045,7 @@
 		break;
 	case COMP_DEV_ERR:
 	case COMP_STALL:
+	case COMP_TX_ERR:
 		frame->status = -EPROTO;
 		skip_td = true;
 		break;
@@ -1831,13 +2126,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 ||
+				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;
 		}
@@ -1976,6 +2274,13 @@
 	 * transfer type
 	 */
 	case COMP_SUCCESS:
+		if (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 +2290,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 +2300,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:
@@ -2342,7 +2647,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 +2866,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");
@@ -2745,7 +3050,7 @@
 		return -EINVAL;
 
 	num_trbs = count_sg_trbs_needed(xhci, urb);
-	num_sgs = urb->num_sgs;
+	num_sgs = urb->num_mapped_sgs;
 	total_packet_count = roundup(urb->transfer_buffer_length,
 			usb_endpoint_maxp(&urb->ep->desc));
 
@@ -3331,7 +3636,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;
@@ -3372,7 +3679,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/xhci-mem.c
+++ linux-3.2.0/drivers/usb/host/xhci-mem.c
@@ -693,10 +693,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 +707,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 +1121,42 @@
 }
 
 /*
- * 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)
+{
+	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 +1175,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 */
@@ -1683,16 +1680,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 +1697,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 +1731,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 +1745,27 @@
 	}
 	spin_unlock_irqrestore(&xhci->lock, flags);
 
+	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);
+		}
+	}
+
 	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);
@@ -2236,6 +2252,7 @@
 	xhci->cmd_ring = xhci_ring_alloc(xhci, 1, true, false, flags);
 	if (!xhci->cmd_ring)
 		goto fail;
+	INIT_LIST_HEAD(&xhci->cancel_cmd_list);
 	xhci_dbg(xhci, "Allocated command ring at %p\n", xhci->cmd_ring);
 	xhci_dbg(xhci, "First segment DMA is 0x%llx\n",
 			(unsigned long long)xhci->cmd_ring->first_seg->dma);
@@ -2342,6 +2359,8 @@
 
 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/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.c
+++ linux-3.2.0/drivers/usb/host/xhci.c
@@ -26,6 +26,7 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/slab.h>
+#include <linux/dmi.h>
 
 #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:
@@ -352,6 +358,11 @@
 		/* 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;
+	}
+
 	/* fall back to legacy interrupt*/
 	ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED,
 			hcd->irq_descr, hcd);
@@ -381,6 +392,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"))
+		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 +507,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 +577,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 +722,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 +757,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 +777,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 +790,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)
@@ -763,7 +882,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 +896,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);
@@ -830,8 +959,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;
 		}
@@ -916,6 +1045,16 @@
 		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)
+		compliance_mode_recovery_timer_init(xhci);
+
 	return retval;
 }
 #endif	/* CONFIG_PM */
@@ -1620,6 +1759,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;
@@ -2374,6 +2514,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 +2560,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 +2582,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 +2941,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 +3541,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 +3556,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 +3622,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 +3661,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 +3674,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 +3682,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;
 	}
 
--- 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_IP		(1 << 1)
+#define IMAN_IE		(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) */
@@ -1033,7 +1041,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 +1255,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 +1412,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 +1485,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 +1505,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 +1682,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 +1774,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/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-pci.c
+++ linux-3.2.0/drivers/usb/host/ehci-pci.c
@@ -357,7 +357,9 @@
 {
 	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);
 }
 
 static void ehci_enable_xhci_companion(void)
--- 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/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/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/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/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/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/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;
--- linux-3.2.0.orig/drivers/usb/host/xhci-pci.c
+++ linux-3.2.0/drivers/usb/host/xhci-pci.c
@@ -72,6 +72,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)
@@ -89,12 +90,25 @@
 		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/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)
@@ -647,7 +655,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/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/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/core/driver.c
+++ linux-3.2.0/drivers/usb/core/driver.c
@@ -1198,8 +1198,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/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/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);
@@ -1802,7 +1803,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 +1815,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;
--- linux-3.2.0.orig/drivers/usb/core/usb.h
+++ linux-3.2.0/drivers/usb/core/usb.h
@@ -132,20 +132,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/hub.c
+++ linux-3.2.0/drivers/usb/core/hub.c
@@ -24,6 +24,8 @@
 #include <linux/kthread.h>
 #include <linux/mutex.h>
 #include <linux/freezer.h>
+#include <linux/rcupdate.h>
+#include <linux/random.h>
 
 #include <asm/uaccess.h>
 #include <asm/byteorder.h>
@@ -481,13 +483,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);
@@ -705,10 +710,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 +956,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 +1008,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 +1649,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 +1671,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);
@@ -1896,6 +1902,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 +1946,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 +1957,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 +1970,12 @@
 
 out_unauthorized:
 	usb_unlock_device(usb_dev);
+	if (product || manufacturer || serial) {
+		synchronize_rcu();
+		kfree(product);
+		kfree(manufacturer);
+		kfree(serial);
+	}
 	return 0;
 }
 
@@ -1958,6 +1983,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 +2004,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 +2037,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;
 }
 
@@ -2038,12 +2073,16 @@
 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,
@@ -2079,7 +2118,7 @@
 			 *
 			 * See https://bugzilla.kernel.org/show_bug.cgi?id=41752
 			 */
-			if (hub_port_inactive(hub, portstatus)) {
+			if (hub_port_warm_reset_required(hub, portstatus)) {
 				int ret;
 
 				if ((portchange & USB_PORT_STAT_C_CONNECTION))
@@ -2419,6 +2458,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;
@@ -3068,6 +3111,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,9 +3684,7 @@
 			/* 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)) {
 				dev_dbg(hub_dev, "warm reset port %d\n", i);
 				hub_port_reset(hub, i, NULL,
 						HUB_BH_RESET_TIME, true);
--- linux-3.2.0.orig/drivers/usb/core/quirks.c
+++ linux-3.2.0/drivers/usb/core/quirks.c
@@ -96,6 +96,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 },
@@ -117,9 +121,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 },
 
--- 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);
@@ -1349,12 +1355,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 +1555,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/hcd-pci.c
+++ linux-3.2.0/drivers/usb/core/hcd-pci.c
@@ -187,7 +187,10 @@
 		return -ENODEV;
 	dev->current_state = PCI_D0;
 
-	if (!dev->irq) {
+	/* The xHCI driver supports MSI and MSI-X,
+	 * so don't fail if the BIOS doesn't provide a legacy IRQ.
+	 */
+	if (!dev->irq && (driver->flags & HCD_MASK) != HCD_USB3) {
 		dev_err(&dev->dev,
 			"Found HC with no IRQ.  Check BIOS/PCI %s setup!\n",
 			pci_name(dev));
--- 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/davinci.c
+++ linux-3.2.0/drivers/usb/musb/davinci.c
@@ -33,9 +33,6 @@
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
 
-#include <mach/hardware.h>
-#include <mach/memory.h>
-#include <asm/gpio.h>
 #include <mach/cputype.h>
 
 #include <asm/mach-types.h>
--- 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;
--- 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/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/n_tty.c
+++ linux-3.2.0/drivers/tty/n_tty.c
@@ -1728,7 +1728,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/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/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/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_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/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/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;
@@ -962,7 +967,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 +982,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 +1020,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 +1114,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 +1134,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 +1171,7 @@
 		break;
 	case 16:
 		fifo_size = PCH_UART_HAL_FIFO16;
+		break;
 	case 1:
 	default:
 		fifo_size = PCH_UART_HAL_FIFO_DIS;
@@ -1200,7 +1209,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 +1268,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 +1287,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 +1301,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 +1368,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 +1452,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/8250_pci.c
+++ linux-3.2.0/drivers/tty/serial/8250_pci.c
@@ -1118,6 +1118,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
@@ -1590,54 +1592,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,
 	},
@@ -3150,8 +3170,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 },
--- 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/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/serial_core.c
+++ linux-3.2.0/drivers/tty/serial/serial_core.c
@@ -2305,6 +2305,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/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/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/atmel_serial.c
+++ linux-3.2.0/drivers/tty/serial/atmel_serial.c
@@ -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);
 
 }
 
--- 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/8250.c
+++ linux-3.2.0/drivers/tty/serial/8250.c
@@ -2327,10 +2327,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;
+		}
 	}
 
 	/*
--- 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/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 <linux/uaccess.h>
 #include <linux/kdb.h>
 #include <linux/ctype.h>
+#include <linux/screen_info.h>
 
 #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.
@@ -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, &param);
 	}
@@ -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);
--- 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/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);
@@ -394,7 +432,7 @@
 	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);
+		on_each_cpu(__setup_broadcast_timer, (void *)true, 1);
 		register_cpu_notifier(&setup_broadcast_notifier);
 	}
 
@@ -471,7 +509,7 @@
 	}
 
 	if (auto_demotion_disable_flags)
-		smp_call_function(auto_demotion_disable, NULL, 1);
+		on_each_cpu(auto_demotion_disable, NULL, 1);
 
 	return 0;
 }
@@ -568,7 +606,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/debian/control.stub
+++ linux-3.2.0/debian/control.stub
@@ -0,0 +1,625 @@
+Source: linux
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+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-37
+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-37/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-37
+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-37
+ 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-37 on
+ 64 bit x86.
+
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-image-extra-3.2.0-37-generic
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-3.2.0-37-generic
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic-pae
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-omap
+Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package provides kernel header files for version 3.2.0 on
+ TI OMAP3-based 64 bit x86 systems.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 systems
+ This package provides a kernel debug image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-virtual
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 Virtual Guests.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 Virtual Guests
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 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/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 <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-3.2.0.orig/debian/changelog
+++ linux-3.2.0/debian/changelog
@@ -0,0 +1,12696 @@
+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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <brad.figg@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <apw@canonical.com>  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 <luis.henriques@canonical.com>  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 <net/dsa.h>
+    - 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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <linux/export.h> for cpuidle34xx arm build
+  * SAUCE: include <linux/kernel.h> for linux/mtd/map.h arm build
+  * SAUCE: include <linux/printk.h> and <stdarg.h> 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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Wed, 10 Aug 2011 15:43:38 -0700
+
+linux (3.1.0-1.0) oneiric; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Open P-series
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Thu, 31 Mar 2011 12:50:10 -0700
+
+linux (2.6.39-0.0) oneiric; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Open Oneiric 
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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/<pid>/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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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_<version> 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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Fri, 04 Jun 2010 23:01:52 -0700
+
+linux (2.6.35-1.0) UNRELEASED; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Tue, 23 Mar 2010 03:55:46 -0700
+
+linux (2.6.33-0.0) UNRELEASED; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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/<pkg>
+  * 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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <stefan.bader@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  Thu, 12 Mar 2009 19:16:07 -0600
--- 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/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 <bcollins@ubuntu.com>
+#
+
+DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
+
+# dpkg-buildpackage passes options that are incomptatible
+# with the kernel build.
+unexport CFLAGS
+unexport LDFLAGS
+
+export LC_ALL=C
+export SHELL=/bin/bash -e
+
+# Where do we find the common configuration.
+export DROOT=debian
+
+# Common variables for all architectures
+include $(DROOT)/rules.d/0-common-vars.mk
+
+# Pull in some arch specific stuff
+-include $(DEBIAN)/rules.d/$(arch).mk
+
+# Maintainer targets
+include $(DROOT)/rules.d/1-maintainer.mk
+
+# Stages
+ifeq ($(DEB_STAGE),stage1)
+    do_tools=false
+    do_doc_package=false
+    do_source_package=false
+    do_flavour_image_package=false
+    do_flavour_header_package=false
+endif
+
+# Debian Build System targets
+binary: binary-indep binary-arch
+
+build: build-arch build-indep
+
+clean: debian/control
+	dh_testdir
+	dh_testroot
+	dh_clean
+
+	# d-i stuff
+	rm -rf $(DEBIAN)/d-i-$(arch)
+
+	# normal build junk
+	rm -rf $(DEBIAN)/abi/$(release)-$(revision)
+	rm -rf $(builddir)
+	rm -f $(stampdir)/stamp-*
+	rm -rf $(DEBIAN)/linux-*
+
+	# This gets rid of the d-i packages in control
+	cp -f $(DEBIAN)/control.stub $(DEBIAN)/control
+	cp $(DEBIAN)/changelog debian/changelog
+
+	# Install the copyright information.
+	cp $(DEBIAN)/copyright debian/copyright
+
+distclean: clean
+	rm -rf $(DEBIAN)/control $(DEBIAN)/control.stub \
+		$(DEBIAN)/d-i/kernel-versions debian/changelog \
+		debian/control debian/control.stub debian/copyright
+
+# Builds the image, arch headers and debug packages
+include $(DROOT)/rules.d/2-binary-arch.mk
+
+# Rules for building the udebs ($(DEBIAN)-installer)
+include $(DROOT)/rules.d/5-udebs.mk
+
+# Builds the source, doc and linux-headers indep packages
+include $(DROOT)/rules.d/3-binary-indep.mk
+
+# Various checks to be performed on builds
+include $(DROOT)/rules.d/4-checks.mk
+
+# Misc stuff
+.PHONY: $(DEBIAN)/control.stub
+$(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in	\
+		$(DROOT)/scripts/control-create		\
+		$(DEBIAN)/control.stub.in			\
+		$(DEBIAN)/changelog			\
+		$(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
+	for i in $(DEBIAN)/d-i/kernel-versions.in $(DEBIAN)/control.stub.in; do	\
+	  new=`echo $$i | sed 's/\.in$$//'`;					\
+	  cat $$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'                                    \
+	  > $$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/control
+++ linux-3.2.0/debian/control
@@ -0,0 +1,1231 @@
+Source: linux
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+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-37
+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-37/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-37
+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-37
+ 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-37 on
+ 64 bit x86.
+
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-image-extra-3.2.0-37-generic
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-3.2.0-37-generic
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic-pae
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-omap
+Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package provides kernel header files for version 3.2.0 on
+ TI OMAP3-based 64 bit x86 systems.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 systems
+ This package provides a kernel debug image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-virtual
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 Virtual Guests.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 Virtual Guests
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 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-37-generic-di
+XC-Package-Type: udeb
+Provides: kernel-image
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: nic-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di, virtio-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Network interface support
+
+Package: nic-shared-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: nic-shared-modules
+Depends: kernel-image-3.2.0-37-generic-di, crypto-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: serial-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: serial-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Serial port support
+
+Package: ppp-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: ppp-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di, serial-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: pata-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: pata-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PATA support modules
+
+Package: firewire-core-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: firewire-core-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: scsi-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: scsi-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: SCSI storage support
+
+Package: plip-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: plip-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di, parport-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: floppy-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: floppy-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Floppy driver support
+
+Package: fat-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: fat-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: nfs-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: nfs-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: md-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: md-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: multipath-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: multipath-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: usb-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Core USB support
+
+Package: pcmcia-storage-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: pcmcia-storage-modules
+Depends: kernel-image-3.2.0-37-generic-di, scsi-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PCMCIA storage support
+
+Package: fb-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: fb-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Framebuffer modules
+
+Package: input-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: input-modules
+Depends: kernel-image-3.2.0-37-generic-di, usb-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Support for various input methods
+
+Package: mouse-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: mouse-modules
+Depends: kernel-image-3.2.0-37-generic-di, input-modules-3.2.0-37-generic-di, usb-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: irda-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: irda-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Support for Infrared protocols
+
+Package: parport-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: parport-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Parallel port support
+
+Package: nic-pcmcia-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: nic-pcmcia-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di, nic-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: pcmcia-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: pcmcia-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: PCMCIA Modules
+
+Package: nic-usb-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: nic-usb-modules
+Depends: kernel-image-3.2.0-37-generic-di, nic-shared-modules-3.2.0-37-generic-di, usb-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: USB network interface support
+
+Package: sata-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: sata-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: SATA storage support
+
+Package: crypto-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: crypto-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: extra
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: squashfs-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: squashfs-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: extra
+Description: squashfs modules
+ This package contains squashfs modules.
+
+Package: speakup-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: speakup-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: extra
+Description: speakup modules
+ This package contains speakup modules.
+
+Package: virtio-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: virtio-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: fs-secondary-modules, ntfs-modules, hfs-modules
+Depends: kernel-image-3.2.0-37-generic-di, fat-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: storage-core-modules, loop-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: block-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di, parport-modules-3.2.0-37-generic-di, virtio-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: message-modules
+Depends: kernel-image-3.2.0-37-generic-di, storage-core-modules-3.2.0-37-generic-di, scsi-modules-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-generic-di
+XC-Package-Type: udeb
+Provides: vlan-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
+Package: ipmi-modules-3.2.0-37-generic-di
+XC-Package-Type: udeb
+Provides: ipmi-modules
+Depends: kernel-image-3.2.0-37-generic-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-generic
+Section: debian-installer
+Priority: standard
+Description: ipmi modules
+
+Package: kernel-image-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: kernel-image
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: nic-modules
+Depends: kernel-image-3.2.0-37-virtual-di, nic-shared-modules-3.2.0-37-virtual-di, virtio-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Network interface support
+
+Package: nic-shared-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: nic-shared-modules
+Depends: kernel-image-3.2.0-37-virtual-di, crypto-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: nic shared modules
+  This package contains modules which support nic modules
+
+Package: scsi-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: scsi-modules
+Depends: kernel-image-3.2.0-37-virtual-di, storage-core-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: SCSI storage support
+
+Package: floppy-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: floppy-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Floppy driver support
+
+Package: fat-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: fat-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: md-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: md-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: multipath-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: multipath-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: fb-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Framebuffer modules
+
+Package: mouse-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: mouse-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: irda-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: irda-modules
+Depends: kernel-image-3.2.0-37-virtual-di, nic-shared-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Support for Infrared protocols
+
+Package: parport-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: parport-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Parallel port support
+
+Package: crypto-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: crypto-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: extra
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: squashfs-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: squashfs-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: extra
+Description: squashfs modules
+ This package contains squashfs modules.
+
+Package: virtio-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: virtio-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: fs-core-modules, jfs-modules, reiserfs-modules, xfs-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: standard
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules-3.2.0-37-virtual-di
+XC-Package-Type: udeb
+Provides: fs-secondary-modules, ntfs-modules, hfs-modules
+Depends: kernel-image-3.2.0-37-virtual-di, fat-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: storage-core-modules, loop-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: block-modules
+Depends: kernel-image-3.2.0-37-virtual-di, storage-core-modules-3.2.0-37-virtual-di, parport-modules-3.2.0-37-virtual-di, virtio-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: message-modules
+Depends: kernel-image-3.2.0-37-virtual-di, storage-core-modules-3.2.0-37-virtual-di, scsi-modules-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-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-37-virtual-di
+XC-Package-Type: udeb
+Provides: vlan-modules
+Depends: kernel-image-3.2.0-37-virtual-di
+Architecture: amd64
+XB-Kernel-Version: 3.2.0-37-virtual
+Section: debian-installer
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
--- linux-3.2.0.orig/debian/compat
+++ linux-3.2.0/debian/compat
@@ -0,0 +1 @@
+5
--- 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/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/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/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/<enter bug# here>
+# 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: 
+
+<Why is this patch not going upstream?>
+
+# OriginalAuthor: 
+# OriginalLocation: 
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
--- linux-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/<enter bug# here>
+# 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/rules.d/2-binary-arch.mk
+++ linux-3.2.0/debian/rules.d/2-binary-arch.mk
@@ -0,0 +1,475 @@
+# 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; \
+	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
+	# 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 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/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=<n> in DEB_BUILD_OPTIONS (see #209008)
+#
+# These 2 environment variables set the -j value of the kernel build. For example,
+# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
+# or
+# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
+#
+# The default is to use the number of CPUs.
+#
+COMMA=,
+DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ifneq (,$(DEB_BUILD_OPTIONS_PARA))
+  CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
+endif
+
+ifeq ($(CONCURRENCY_LEVEL),)
+  # Check the environment
+  CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
+  # No? Then build with the number of CPUs on the host.
+  ifeq ($(CONCURRENCY_LEVEL),)
+      CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
+  endif
+  # Oh hell, give 'em one
+  ifeq ($(CONCURRENCY_LEVEL),)
+    CONCURRENCY_LEVEL := 1
+  endif
+endif
+
+conc_level		= -j$(CONCURRENCY_LEVEL)
+
+# target_flavour is filled in for each step
+kmake = make ARCH=$(build_arch) \
+	CROSS_COMPILE=$(CROSS_COMPILE) \
+	KERNELVERSION=$(abi_release)-$(target_flavour) \
+	CONFIG_DEBUG_SECTION_MISMATCH=y \
+	KBUILD_BUILD_VERSION="$(uploadnum)" \
+	LOCALVERSION= localver-extra=
+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/1-maintainer.mk
+++ linux-3.2.0/debian/rules.d/1-maintainer.mk
@@ -0,0 +1,120 @@
+# 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); \
+	now="$(shell date -R)"; \
+	echo "Creating new changelog set for $(abi_release).$$nextminor..."; \
+	echo -e "$(src_pkg_name) ($(abi_release).$$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/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/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/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 (<CONF>) {
+      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/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 <bcollins@ubuntu.com>
+
+#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 (<CONF>) {
+      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/<unknown>/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/<unknown>/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/<unknown>/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/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 (<CONF>) {
+      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 (<LILO>) {
+    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 (</lib/modules/$version/modules.*>) {
+    $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/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 (<CONF>) {
+      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/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/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 (<CONF>) {
+      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/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 (<ALIASES>) {
+	chomp;
+	my ($junk, $alias, $module) = split;
+
+	if (defined($map{$alias})) {
+		printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
+			? "INT" : "   ", $map{$alias}, $module, $alias);
+	} else {
+		$map{$alias} = $module;
+	}
+}
+
+exit(0);
--- linux-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/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.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
+config for virtual is very close to server and generic, but the inclusion list
+causes the virtual package to be constructed with _only_ the modules described 
+in the inclusion list.
+
+The inclusion list format is a simple bash regular expression list of files. For example,
+
+arch/*/{crypto,kernel,oprofile}
+drivers/acpi/*
+drivers/ata/ahci.ko
+
+These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
+See debian/scripts/module-inclusion for details.
+
+There are 2 log files created as a side effect of the application of the module
+inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
+
+$(flavour).inclusion-list.log : This log is created while the inclusion list
+modules are being copied. If any are missing, then those warnings go in this log.
+While its not considered a fatal error, you should endevour to correct your inclusion
+list such that there are no missing modules.
+
+$(flavour).depmod.log : The log is created as a result of running depmod on the
+resulting set of modules. If there are missing symbols then you'll find that information
+here. Again, you should modify your inclusion list such that there are no missing
+symbols.
+
+Tim Gardner <tim.gardner@canonical.com>
+June 2, 2010
--- linux-3.2.0.orig/debian/scripts/module-inclusion
+++ linux-3.2.0/debian/scripts/module-inclusion
@@ -0,0 +1,60 @@
+#!/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}
+
+# 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 ${ROOT}/$f ${NROOT}/$f
+	done
+fi
+
+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 ${ROOT}/$f ${NROOT}/$f
+		done
+	else
+		if [ -f "${ROOT}/$i" ]
+		then
+			mkdir -p ${NROOT}/`dirname $i`
+			mv ${ROOT}/$i ${NROOT}/$i
+		else
+			echo Warning: Could not find ${ROOT}/$i
+		fi
+	fi
+
+done
+
+exit 0
--- 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/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 <config> <arch> <flavour> <commonconfig> <warn-only>\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 <arch>\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 <flavour>\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 <name> <val>\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 <name>\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 (<CONFIG>) {
+	# Pull out values.
+	/^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next;
+	if ($2 eq 'is not set') {
+		$values{$1} = 'n';
+	} else {
+		$values{$1} = $2;
+	}
+}
+close(CONFIG);
+
+# 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 (<CHECKS>) {
+	/^#/ && 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 (<IGNORE>) {
+			chomp;
+			if ($_ =~ m/M: (.*)/) {
+				$modules_ignore{$1} = 1;
+			} else {
+				$symbols_ignore{$_} = 1;
+			}
+			$ignore++;
+		}
+		close(IGNORE);
+	}
+}
+print "read $ignore symbols/modules.\n";
+
+sub is_ignored($$) {
+	my ($mod, $sym) = @_;
+
+	die "Missing module name in is_ignored()" if not defined($mod);
+	die "Missing symbol name in is_ignored()" if not defined($sym);
+
+	if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
+		return 1;
+	}
+	return 0;
+}
+
+# Read new syms first
+print "    Reading new symbols ($abinum)...";
+$count = 0;
+open(NEW, "< $abidir/$flavour") or
+	die "Could not open $abidir/$flavour";
+while (<NEW>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'type'} = $1;
+	$symbols{$4}{'loc'} = $2;
+	$symbols{$4}{'hash'} = $3;
+	$module_syms{$2} = 0;
+	$count++;
+}
+close(NEW);
+print "read $count symbols.\n";
+
+# Now the old symbols, checking for missing ones
+print "    Reading old symbols ($prev_abinum)...";
+$count = 0;
+open(OLD, "< $prev_abidir/$flavour") or
+	die "Could not open $prev_abidir/$flavour";
+while (<OLD>) {
+	chomp;
+	m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+	$symbols{$4}{'old_type'} = $1;
+	$symbols{$4}{'old_loc'} = $2;
+	$symbols{$4}{'old_hash'} = $3;
+	$count++;
+}
+close(OLD);
+
+print "read $count symbols.\n";
+
+print "II: Checking for missing symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'type'})) {
+		print "\n" if not $count;
+		printf("    MISS : %s%s\n", $sym,
+			is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
+		$count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
+	}
+}
+print "    " if $count;
+print "found $count missing symbols\n";
+if ($count) {
+	print "$EE Symbols gone missing (what did you do!?!)\n";
+	$errors++;
+}
+
+
+print "II: Checking for new symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'})) {
+		print "\n" if not $count;
+		print "    NEW : $sym\n";
+		$count++;
+	}
+}
+print "    " if $count;
+print "found $count new symbols\n";
+if ($count and $prev_abinum == $abinum) {
+	print "WW: Found new symbols within same ABI. Not recommended\n";
+}
+
+print "II: Checking for changes to ABI...\n";
+$count = 0;
+my $moved = 0;
+my $changed_type = 0;
+my $changed_hash = 0;
+foreach $sym (keys(%symbols)) {
+	if (!defined($symbols{$sym}{'old_type'}) or
+	    !defined($symbols{$sym}{'type'})) {
+		next;
+	}
+
+	# Changes in location don't hurt us, but log it anyway
+	if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
+		printf("    MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
+			$symbols{$sym}{'loc'});
+		$moved++;
+	}
+
+	# Changes to export type are only bad if new type isn't
+	# EXPORT_SYMBOL. Changing things to GPL are bad.
+	if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
+		printf("    TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
+			$symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
+			and !is_ignored($symbols{$sym}{'loc'}, $sym);
+	}
+
+	# Changes to the hash are always bad
+	if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
+		printf("    HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
+			$symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+			? " (ignored)" : "");
+		$changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
+		$module_syms{$symbols{$sym}{'loc'}}++;
+	}
+}
+
+print "WW: $moved symbols changed location\n" if $moved;
+print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type;
+print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash;
+
+$errors++ if $changed_hash or $changed_type;
+if ($changed_hash) {
+	print "II: Module hash change summary...\n";
+	foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
+		next if ! $module_syms{$mod};
+		printf("    %-40s: %d\n", $mod, $module_syms{$mod});
+	}
+}
+
+print "II: Done\n";
+
+if ($errors) {
+	exit($fail_exit);
+} else {
+	exit(0);
+}
--- linux-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 (<IGNORE>) {
+		chomp;
+		next if /\s*#/;
+		$modules_ignore{$_} = 1;
+		$ignore++;
+	}
+	close(IGNORE);
+	print "read $ignore modules.\n";
+}
+
+# Read new modules first
+print "   reading new modules...";
+$new_count = 0;
+open(NEW, "< $abidir/$flavour.modules") or
+	die "Could not open $abidir/$flavour.modules";
+while (<NEW>) {
+	chomp;
+	$modules{$_} = 1;
+	$new_count++;
+}
+close(NEW);
+print "read $new_count modules.\n";
+
+# Now the old modules, checking for missing ones
+print "   reading old modules...";
+$old_count = 0;
+open(OLD, "< $prev_abidir/$flavour.modules") or
+	die "Could not open $prev_abidir/$flavour.modules";
+while (<OLD>) {
+	chomp;
+	if (not defined($modules{$_})) {
+		print "\n" if not $missing;
+		$missing++;
+		if (not defined($modules_ignore{$_})) {
+			print "      MISS: $_\n";
+			$errors++;
+		} else {
+			print "      MISS: $_ (ignored)\n";
+		}
+	} else {
+		$modules{$_}++;
+	}
+	$old_count++;
+}
+close(OLD);
+# Check for new modules
+foreach $mod (keys(%modules)) {
+	if ($modules{$mod} < 2) {
+		print "\n" if not $missing and not $new;
+		print "      NEW : $mod\n";
+		$new++;
+	}
+}
+if ($new or $missing) {
+	print "      read $old_count modules : new($new)  missing($missing)\n";
+} else {
+	print "read $old_count modules.\n";
+}
+
+
+# Let's see where we stand...
+if ($errors) {
+	if (defined($skipmodule)) {
+		print "WW: Explicitly asked to ignore failures (probably not good)\n";
+	} else {
+		print "EE: Missing modules (start begging for mercy)\n";
+		exit 1
+	}
+}
+
+if ($new) {
+	print "II: New modules (you've been busy, wipe the poop off your nose)\n";
+} else {
+	print "II: No new modules (hope you're happy, slacker)\n";
+}
+
+print "II: Done\n";
+
+exit(0);
--- linux-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/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/misc/getabis
+++ linux-3.2.0/debian/scripts/misc/getabis
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+if [ "$#" != "2" ]; then
+	echo "Usage: $0 <release> <revision>" 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 <changelog> <stop at> <start at>\n";
+}
+my ($changelog, $end, $start) = @ARGV;
+
+$end =~ s/.*\.//;
+$start =~ s/.*\.//;
+
+my @changes = ();
+my $output = 0;
+open(CHG, "<debian.master/changelog") ||
+	open(CHG, "<debian/changelog") ||
+	die "$0: debian/changelog: open failed - $!\n";
+while (<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 (<CHANGELOG>) {
+	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/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 (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		next if $printed;
+
+		while (<CHANGES>) {
+			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/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 <changelog> <to> <range>\n";
+	die  "       $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n";
+}
+my ($changelog, $to, $range) = @ARGV;
+
+my @changes = ();
+
+push(@changes, "\n");
+push(@changes, "  [ Upstream Kernel Changes ]\n\n");
+push(@changes, "  * rebase to $to\n");
+
+open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n";
+while (<LOG>) {
+	if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) {
+		push(@changes, "    - LP: #$1\n");
+	}
+}
+close(LOG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+	if (/^  CHANGELOG: /) {
+		$printed--;
+		print NEW;
+		if ($printed == 0) {
+			print NEW @changes;
+		}
+		next;
+	}
+	print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
--- linux-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.<arch> +
+	# config.flavour.<flavour>
+
+	for config in $flavourconfigs; do
+		fullconf="$tmpdir/$arch-$config-full"
+		case $config in
+		*)
+			: >"$fullconf"
+			if [ -f $common_conf ]; then
+				cat $common_conf >> "$fullconf"
+			fi
+			if [ -f $archconfdir/config.common.$arch ]; then
+				cat $archconfdir/config.common.$arch >> "$fullconf"
+			fi
+			cat "$archconfdir/$config" >>"$fullconf"
+			if [ -f $confdir/OVERRIDES ]; then
+				cat $confdir/OVERRIDES >> "$fullconf"
+			fi
+			;;
+		esac
+	done
+
+	for config in $flavourconfigs; do
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/$arch-$config-full"
+			cat "$fullconf" > build/.config
+			# Call oldconfig or menuconfig
+			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.<arch> copied to
+# $tmpdir
+(cd $tmpdir; $bindir/splitconfig.pl)
+(
+	cd $confdir;
+	rm -f *-full
+	grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
+	for arch in $archs; do
+		grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
+			>$arch/config.common.$arch
+	done
+)
+
+echo ""
+echo "Running config-check for all configurations ..."
+echo ""
+fail=0
+for arch in $archs; do
+	archconfdir=$confdir/$arch
+	flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+	for config in $flavourconfigs; do
+		flavour="${config##*.}"
+		if [ -f $archconfdir/$config ]; then
+			fullconf="$tmpdir/CONFIGS/$arch-$config"
+			"$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/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 (<CONFIG>) {
+		# 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/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 (<STDIN>) {
+		# 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 (<STDIN>) {
+				$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/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 = <TAGS>;
+close(TAGS);
+
+open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
+my $commit = "";
+
+while (<LOGS>) {
+	my $origtag;
+
+	if (m|^commit (.*)$|) {
+		$commit = $1;
+		next;
+	}
+
+	m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
+
+	$tag = $1;
+
+	($origtag) = grep(/^$tag.orig$/, @tags);
+
+	if (!defined($origtag)) {
+		print "I: Adding original tag for $tag\n";
+		system("git tag -m $tag $tag.orig $tag");
+	}
+
+	print "I: Tagging $tag => $commit\n";
+
+	system("git tag -f -m $tag $tag $commit");
+}
+
+close(LOGS);
--- linux-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/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/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/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/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-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 <chromium-os-dev@chromium.org>
+ * Author: Will Drewry <wad@chromium.org>
+ *
+ * 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 <asm/bitsperlong.h>	/* for __BITS_PER_LONG */
+#include <endian.h>
+#include <linux/filter.h>
+#include <linux/seccomp.h>	/* for seccomp_data */
+#include <linux/types.h>
+#include <linux/unistd.h>
+#include <stddef.h>
+
+#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/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 <chromium-os-dev@chromium.org>
+ * Author: Will Drewry <wad@chromium.org>
+ *
+ * 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 <errno.h>
+#include <linux/audit.h>
+#include <linux/filter.h>
+#include <linux/seccomp.h>
+#include <linux/unistd.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <sys/prctl.h>
+#include <unistd.h>
+
+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 <syscall_nr> <arch> <errno> <prog> [<args>]\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 <chromium-os-dev@chromium.org>
+ * Author: Will Drewry <wad@chromium.org>
+ *
+ * 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 <stdio.h>
+#include <string.h>
+
+#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 <chromium-os-dev@chromium.org>
+ * Author: Will Drewry <wad@chromium.org>
+ *
+ * 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 <linux/types.h>
+#include <linux/filter.h>
+#include <linux/seccomp.h>
+#include <linux/unistd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/prctl.h>
+#include <unistd.h>
+
+#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/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 <chromium-os-dev@chromium.org>
+ * Author: Will Drewry <wad@chromium.org>
+ *
+ * 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 <linux/filter.h>
+#include <linux/seccomp.h>
+#include <linux/unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/prctl.h>
+#include <unistd.h>
+
+#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/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/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 <len.brown@intel.com>
-
----------------------------
-
 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/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 <stable@kernel.org>, and are
-released as needs dictate.  The normal release period is approximately 
+3.x.y are maintained by the "stable" team <stable@vger.kernel.org>, 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/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: <stable@vger.kernel.org> # .32.x: a1f84a3: sched: Check for idle
-     Cc: <stable@vger.kernel.org> # .32.x: 1b9508f: sched: Rate-limit newidle
-     Cc: <stable@vger.kernel.org> # .32.x: fd21073: sched: Fix affinity logic
-     Cc: <stable@vger.kernel.org> # .32.x
+     Cc: <stable@vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle
+     Cc: <stable@vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle
+     Cc: <stable@vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic
+     Cc: <stable@vger.kernel.org> # 3.3.x
     Signed-off-by: Ingo Molnar <mingo@elte.hu>
 
    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
@@ -567,6 +570,10 @@
 			/proc/<pid>/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 +696,21 @@
 			The filter can be disabled or changed to another
 			driver later using sysfs.
 
+	drm_kms_helper.edid_firmware=[<connector>:]<file>
+			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.
@@ -2169,6 +2191,12 @@
 
 			default: off.
 
+	printk.always_kmsg_dump=
+			Trigger kmsg_dump for cases other than kernel oops or
+			panics
+			Format: <bool>  (1/Y/y=enable, 0/N/n=disable)
+			default: disabled
+
 	printk.time=	Show timing data prefixed to each printk message line
 			Format: <bool>  (1/Y/y=enable, 0/N/n=disable)
 
--- 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/<busnum>-<devnum>:<cfg>.<intf>/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/<busnum>-<devnum>:<cfg>.<intf>/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/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/buttons_luminance
 Date:		August 2011
--- 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
 ==============
--- 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/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/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/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/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/overlayfs.txt
+++ linux-3.2.0/Documentation/filesystems/overlayfs.txt
@@ -0,0 +1,199 @@
+Written by: Neil Brown <neilb@suse.de>
+
+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/proc.txt
+++ linux-3.2.0/Documentation/filesystems/proc.txt
@@ -41,6 +41,8 @@
   3.5	/proc/<pid>/mountinfo - Information about mounts
   3.6	/proc/<pid>/comm  & /proc/<pid>/task/<tid>/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/<pid>/ access mode.
+	gid=		Set the group authorized to learn processes information.
+
+hidepid=0 means classic mode - everybody may access all /proc/<pid>/ directories
+(default).
+
+hidepid=1 means users may not access any /proc/<pid>/ 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/<pid>/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/<pid>/ 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/<pid>/ 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/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/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/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/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).
--- 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/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 <C.Emde@osadl.org>
+
+   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/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/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 <C.Emde@osadl.org>
+
+   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/edid.S
+++ linux-3.2.0/Documentation/EDID/edid.S
@@ -0,0 +1,261 @@
+/*
+   edid.S: EDID data template
+
+   Copyright (C) 2012 Carsten Emde <C.Emde@osadl.org>
+
+   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/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 <C.Emde@osadl.org>
+
+   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/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 <C.Emde@osadl.org>
+
+   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/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/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/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/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/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/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/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/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 <kernel-team@lists.ubuntu.com>
+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/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.stub
+++ linux-3.2.0/debian.master/control.stub
@@ -0,0 +1,625 @@
+Source: linux
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+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-37
+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-37/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-37
+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-37
+ 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-37 on
+ 64 bit x86.
+
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-image-extra-3.2.0-37-generic
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-3.2.0-37-generic
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic-pae
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-omap
+Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package provides kernel header files for version 3.2.0 on
+ TI OMAP3-based 64 bit x86 systems.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 systems
+ This package provides a kernel debug image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-virtual
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 Virtual Guests.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 Virtual Guests
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 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/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 <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including 
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
--- linux-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/changelog
+++ linux-3.2.0/debian.master/changelog
@@ -0,0 +1,12696 @@
+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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <brad.figg@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <apw@canonical.com>  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 <luis.henriques@canonical.com>  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 <net/dsa.h>
+    - 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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <luis.henriques@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <linux/export.h> for cpuidle34xx arm build
+  * SAUCE: include <linux/kernel.h> for linux/mtd/map.h arm build
+  * SAUCE: include <linux/printk.h> and <stdarg.h> 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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Wed, 10 Aug 2011 15:43:38 -0700
+
+linux (3.1.0-1.0) oneiric; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Open P-series
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Thu, 31 Mar 2011 12:50:10 -0700
+
+linux (2.6.39-0.0) oneiric; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Open Oneiric 
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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/<pid>/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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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_<version> 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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Fri, 04 Jun 2010 23:01:52 -0700
+
+linux (2.6.35-1.0) UNRELEASED; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  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 <leann.ogasawara@canonical.com>  Tue, 23 Mar 2010 03:55:46 -0700
+
+linux (2.6.33-0.0) UNRELEASED; urgency=low
+
+  [ Leann Ogasawara ]
+
+  * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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/<pkg>
+  * 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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <apw@canonical.com>  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 <tim.gardner@canonical.com>  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 <stefan.bader@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  Thu, 12 Mar 2009 19:16:07 -0600
--- 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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <amit.kucheria@ubuntu.com>  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 <linux/io.h>
+  * 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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  Sat, 07 Feb 2009 18:53:42 -0700
+
+linux (2.6.28-7.19) jaunty; urgency=low
+
+  * Fix missing modules FTBS
+
+ --  Tim Gardner <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <amit.kucheria@ubuntu.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <version.h>
+  * 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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <ben.collins@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <tim.gardner@canonical.com>  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 <amit.kucheria@canonical.com>  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 <tim.gardner@canonical.com>  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 <ben.collins@canonical.com>  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 <tim.gardner@canonical.com>  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 <stddef.h>' 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 <version.h>
+  * 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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <linux/sched.h>
+  * 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 <ben.collins@canonical.com>  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 <pterjan@mandriva.com> 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 <Mario_Limonciello@Dell.com> 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
+    <mjg59@srcf.ucam.org> Bug: #201591
+  * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM
+    OriginalAuthor: Klaus S. Madsen <ubuntu@hjernemadsen.org>
+    OriginalAuthor: Chuck Short <zulcss@ubuntu.com>
+  * 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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  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 <ben.collins@canonical.com>  Wed, 11 Jun 2008 05:28:35 -0400
--- 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 <kernel-team@lists.ubuntu.com>
+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-37
+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-37/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-37
+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-37
+ 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-37 on
+ 64 bit x86.
+
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-image-extra-3.2.0-37-generic
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward desktop and server systems.
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-generic meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-3.2.0-37-generic
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-generic-pae
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 SMP
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports Generic processors.
+ .
+ Geared toward 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-37-generic-pae
+Architecture: i386
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 SMP
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 SMP
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 bit x86 SMP.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
+
+Package: linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-highbank
+Architecture: armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-omap
+Description: Linux kernel image for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package contains the Linux kernel image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-omap
+Architecture: armel armhf
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on TI OMAP3-based 64 bit x86 systems
+ This package provides kernel header files for version 3.2.0 on
+ TI OMAP3-based 64 bit x86 systems.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 systems
+ This package provides a kernel debug image for version 3.2.0 on
+ TI OMAP3-based 64 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-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc64-smp
+Architecture: powerpc ppc64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-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-37-powerpc-smp
+Architecture: powerpc
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${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-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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-37-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 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: kernel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.2.0-37-virtual
+Description: Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package contains the Linux kernel image for version 3.2.0 on
+ 64 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-37-virtual
+Architecture: i386 amd64
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, linux-headers-3.2.0-37, ${shlibs:Depends}
+Provides: linux-headers, linux-headers-3.0
+Description: Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
+ This package provides kernel header files for version 3.2.0 on
+ 64 bit x86 Virtual Guests.
+ .
+ This is for sites that want the latest kernel headers.  Please read
+ /usr/share/doc/linux-headers-3.2.0-37/debian.README.gz for details.
+
+Package: linux-image-3.2.0-37-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 64 bit x86 Virtual Guests
+ This package provides a kernel debug image for version 3.2.0 on
+ 64 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/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.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/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.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-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.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-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/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/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/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/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-37	generic		3.2.0-37-generic		-	
+amd64	3.2.0-37	virtual		3.2.0-37-virtual		-	
+
+i386	3.2.0-37	generic		3.2.0-37-generic		-	
+i386	3.2.0-37	generic-pae	3.2.0-37-generic-pae	-	
+i386	3.2.0-37	virtual		3.2.0-37-virtual		-	
+
+armel	3.2.0-37	omap		3.2.0-37-omap		-
+
+armhf	3.2.0-37	omap		3.2.0-37-omap		-
+armhf	3.2.0-37	highbank	3.2.0-37-highbank		-
+
+# Ports
+# arch	version		flavour		installedname			suffix	bdep
+powerpc	3.2.0-37	powerpc-smp			3.2.0-37-powerpc-smp		-	
+powerpc	3.2.0-37	powerpc64-smp		3.2.0-37-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-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/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/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/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-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/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/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-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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/md-modules
+++ linux-3.2.0/debian.master/d-i/modules/md-modules
@@ -0,0 +1,15 @@
+dm-crypt ?
+dm-mirror ?
+dm-raid ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid45 ?
+dm-loop ?
--- 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/nic-modules
+++ linux-3.2.0/debian.master/d-i/modules/nic-modules
@@ -0,0 +1,167 @@
+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 ?
+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/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/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/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/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/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/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/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/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/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/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/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/config/config.common.ubuntu
+++ linux-3.2.0/debian.master/config/config.common.ubuntu
@@ -0,0 +1,6078 @@
+#
+# 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_PCI=y
+CONFIG_ATH9K_RATE_CONTROL=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_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=m
+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 is not set
+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_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=y
+# 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_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_UAS=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/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/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/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,397 @@
+#
+# 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_HVC_CONSOLE is not set
+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/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/ppc64/config.common.ppc64
+++ linux-3.2.0/debian.master/config/ppc64/config.common.ppc64
@@ -0,0 +1,432 @@
+#
+# 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_HVC_CONSOLE=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/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.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.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/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/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.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/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.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/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/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/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/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/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.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,140 @@
+arch/*/{crypto,kernel,oprofile}
+crypto/*
+drivers/acpi/*
+drivers/block/nbd.ko
+drivers/block/floppy.ko
+drivers/block/cryptoloop.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/hv/*
+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/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/binfmt_misc.ko
+fs/btrfs/*
+fs/cachefiles/cachefiles.ko
+fs/ceph/*
+fs/configfs/*
+fs/ext*/*
+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/*
+lib/*
+net/802/*
+net/8021q/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bridge/*
+net/can/*
+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.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.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/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/abi/3.2.0-36.57/fwinfo
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/abiname
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/abiname
@@ -0,0 +1 @@
+36
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/powerpc/powerpc64-smp.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/powerpc/powerpc64-smp.modules
@@ -0,0 +1,3044 @@
+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
+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
+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
+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
+uas
+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-36.57/powerpc/powerpc-smp.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/powerpc/powerpc64-smp
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/powerpc/powerpc64-smp
@@ -0,0 +1,12089 @@
+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 0xe5eb6a00	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 0x37838b44	rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8d7d5e5e	rdma_copy_addr
+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 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 0x40df7d2f	ibnl_put_msg
+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 0xb4d65f9b	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 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 0xe5d391b9	ibnl_add_client
+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 0x042aea84	rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x09c7b572	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a823f25	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0fff9ba5	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12850e6d	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1855d7fa	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19c83f40	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x200915b3	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x61079c6a	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x644b3b9d	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x81249ad3	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8668266b	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8b0eb01b	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8ea3721e	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x98ca666c	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xade4f0a4	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc659cc06	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8e2784f	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfe8bdc04	rdma_set_reuseaddr
+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 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1e4dd6bc	capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1fd3f527	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2882d21e	capi20_release
+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 0x5159a273	attach_capi_ctr
+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 0x6ebf2cd3	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba	capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x75cb3d27	capi20_register
+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 0x7e18aba5	capi_ctr_down
+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 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 0xbb101882	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac	capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe573bfb4	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29	cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf3ca77a0	capi20_put_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x30aca612	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36e949ae	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x450a753a	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5aa46560	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6718dbf8	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8309caf7	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x84ab2494	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x942a9e9a	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x99b8f8b3	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9b9e4117	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa4b765b4	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa91fec8a	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xae094bf2	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdb617166	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf763fcab	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x17d7e6ce	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2e1b58bf	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x641cef0d	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6547c2f9	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x70150e31	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8ee9e1c5	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xba64d136	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe92ae0d7	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf0f8e6ce	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 0x8a8088d2	proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x02e3b368	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x46ec8dfe	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc9ef4db5	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xf825c8a2	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x55098a6b	mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xe37bad9b	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 0xc5254a28	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 0x0c3202ae	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x28f68c8a	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x68ebd552	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9303be17	isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf28e6f28	isac_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x19eb7998	isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcfc97876	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f	isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfe00b651	register_isdn
+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 0x01d4d8e4	get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x022f49f5	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1b27ab32	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27af63a2	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2a901eed	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c6a6e22	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32fa4f19	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x408ca566	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x470201aa	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d8830aa	mISDN_freedchannel
+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 0x5dc7400a	mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30	mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6951411b	mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7e2aa395	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x82c12ca1	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8860d3cb	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8d8ccd58	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x91724d4a	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9eba0ce6	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd6a9315	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbe1fb5bd	mISDN_unregister_Bprotocol
+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 0xe87943cf	mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe997ba7e	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f	mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xff369f5a	mISDN_freebchannel
+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 0x099b3929	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x0dc97558	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x29887606	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0xd993d94a	dm_dirty_log_destroy
+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 0x7c5c0edf	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 0x0040bf19	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1046317d	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x117941a8	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x13548602	flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2b86abb4	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x33cc2f69	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x35eb5aaf	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x36543d99	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b223779	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4c81e3e9	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4f974124	flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x67a138ce	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x69e68bf3	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6c9545f7	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x928bd48c	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa6550091	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb97d246a	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd8a790cd	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe133fc4a	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe60ecdb1	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 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 0x4a51d6e7	dvb_net_release
+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 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 0xae4bb5bb	dvb_net_init
+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 0x3bacc44b	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4e1ae401	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x76263905	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x809562d5	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe71a59d4	dvb_usb_generic_rw
+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 0xd1b8508a	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 0x1d19d0ad	dibusb_pid_filter
+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 0x54cd5142	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x58f24f7b	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6d1aefd6	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8ea88366	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9e581131	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9f2c8989	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 0xd34aa784	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdd81f7ff	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfc2c83cd	dibusb_read_eeprom_byte
+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 0x01bb14e4	cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x20365ab3	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xa74a2028	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xefb2f098	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf9607b32	cx18_stop_v4l2_encode_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 0x30aebd45	videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x31e2d048	videobuf_dvb_get_frontend
+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 0xafa31d9d	videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe7f7168c	videobuf_dvb_find_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 0x135c3e2f	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x366d58cc	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3df6023c	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x453fd4a6	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7b11d786	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x82287b75	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8b1788d7	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa4e1e99e	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcbe807f5	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfe8ad4ac	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x50a22ff8	com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x92460ba7	com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9cea440b	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3a0795be	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3bdad3e0	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5229ccab	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x53601cba	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x640cc8cf	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x84656903	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc14a02a1	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd69720e5	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfa6864c6	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfe348f72	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0x6cf49e59	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x244cb766	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x4652762f	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2358434e	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x30564514	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x30f036ac	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3742c872	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x39bc1137	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x45e692c8	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4d99c870	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x74f96e9f	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x787528aa	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fde4aca	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb16c9067	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb488883f	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb93dd953	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc3e5b6af	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc64191de	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcf524359	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x01bcfeaf	cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0daf63cf	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1a26329e	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1b0c7d03	cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x22f52a66	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x37d87a8d	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5264a7be	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66f7a079	cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8308a024	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x86956310	cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa6979383	cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb55ac63c	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc22a5712	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc3a2a7f8	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 0xe82bdc5d	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb5e9522	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3a45311	cxgb4_iscsi_init
+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 0x699e0428	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6e3d1744	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x95cce8f0	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd211b148	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfb24a476	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0746126e	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0b6e9981	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x11dcbde6	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5ff07e6e	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x67e1971c	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7d759a05	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x845a8e17	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x94b0ed32	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9f93ed59	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbcef7bd3	sirdev_write_complete
+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 0x6c6c6d36	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x96f68ed6	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xa7894c17	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xbbc63b84	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xc61e7dab	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xa0a1ca74	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4e4dcd76	tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6836c556	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa5d328ee	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xca37442c	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794	tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xde697e76	tmsdev_term
+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 0x0830c27f	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x32f080f6	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3b77489b	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x438be710	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6429725a	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x69895fc9	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6f7d5718	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x700ab444	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x76387a3a	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x88418195	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xde486218	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xe41366a3	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x2a18f599	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8875ef29	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xff2fa32a	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f70e91c	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4627fd7d	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5	ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x725723a4	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x898de8bf	ath_hw_get_listen_time
+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 0xa65762fd	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xaa9c6001	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcfc6f4fc	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde0d5cc4	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf3bea1dd	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x20e6f49e	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4	ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6ed36d4c	ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7b5ce571	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc312bafe	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 0xf59eadf3	ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x027f50d4	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05cb26fa	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c70d0e1	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1182d8c3	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13df3ca4	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x151b1b29	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c1a29ab	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22932521	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2667c668	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26b86aad	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28543032	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ce086c2	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d4d4772	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x303b938b	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x314c6a48	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3826c922	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e4b9574	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f25da92	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fb9af39	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41832d99	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43d888f3	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47869ea7	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a2477a0	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b184b07	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b1bfa0f	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x574888cf	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58aa1407	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b603bbe	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e04b76e	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f0dc1df	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x633b5a86	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63772823	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65c8b197	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68916363	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69f8a8a3	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c7b351a	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ec78a6c	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fb00345	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fb86ef7	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd19ae6	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7066f143	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70f0ec05	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x749275cb	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74e5d492	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x779d6014	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7988cca1	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ab004a5	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b64b414	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d44abb2	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82392b24	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x840ad42a	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98c64580	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99b13c69	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d89d642	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2950644	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8124726	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa84d3593	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8b4e8ab	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa69582a	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabb16bda	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1157df0	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4ae1d1f	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9390c72	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9e58a2d	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba417ac3	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc2af7be	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbff2fed7	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2377c29	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc381bc40	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc68346b9	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce519aeb	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0aa147e	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd664989f	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd2316e9	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde05ebc6	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3666b6f	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe84dbf9b	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea4e7aff	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb73b3eb	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb9e2f1c	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec6b94e5	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef5d9cdb	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2d1b96b	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf785fd40	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8345ff2	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaeba842	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaf5778a	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfde22852	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x2788f12d	init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xaf809cdf	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xb5b0e7bc	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 0x0d8685d6	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3a698811	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3cf8dbce	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x406d964a	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x462fa43a	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4f406ac8	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x55dab28a	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x61b13f4d	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6fbaf0e3	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x728b5978	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x82a947b6	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9ad074e5	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9dd63e26	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa1036cdf	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x04086946	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x060790df	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c3105b3	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1061421d	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x14c5198d	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16393269	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26c4aa36	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x343ddb5b	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x446ac9f7	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x549bb009	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59e1323c	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a15b014	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b2301f9	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7270158f	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74c63585	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8554c877	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x98c93cac	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7669a2d	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaad906d4	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 0xb4e0ebc0	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb591189e	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf8d42e7	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8bb4ceb	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8619ba2	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8a8d6c6	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x01ad0adc	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1962223b	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x19d6c0df	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x19e592c1	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1caed7aa	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2353eaa8	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c88f751	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3154c743	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56cf3762	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6100a0d3	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x76b928cc	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x79eb81cc	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7b3b7632	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x880e92e2	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x92d39b7f	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb3ed6907	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb5e76886	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc343dc89	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcab68fdb	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe76d6b5c	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfeb0b956	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x01483b98	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x041e9a05	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0b4caaa6	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0bae58cf	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1036c231	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x16bfb766	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1744d56d	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x17c5785c	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1ab84a13	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1b1b6011	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x263b5b13	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x29131a60	iwl_legacy_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2f2661af	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x305a70c3	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x31117f0a	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3566f5f9	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x35b99335	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x37670eee	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x39ea2cc2	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3a389c66	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3b044973	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3b361364	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3c040a62	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3cb8e95c	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48febc4c	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4979c65d	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x49cabe96	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4afff13e	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4ed036a6	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x57ecd501	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x60d7e1a0	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x613808c6	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x61e0e86d	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x657b4bb5	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6a733639	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6aa949fa	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e418077	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e7d8058	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x74792d84	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7aa21f49	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7aa7505e	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7aba1006	iwl_legacy_set_rxon_ht
+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 0x82984183	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x844639d5	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8966bf89	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a852b36	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a8fc2c4	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9247008e	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x969cb1d0	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9764b350	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa2b458d7	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3cd8080	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa5440cf3	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa61c8d96	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa96d0b2f	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa9f88c23	iwl_legacy_fill_probe_req
+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 0xb2613023	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb41dfe4c	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb514f1dd	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb64b02f1	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb7ca217d	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb9cb6f76	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc00cd2f1	iwl_legacy_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc474b909	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc8e95fd3	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcefa4d04	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd24505c8	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd6a64742	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdf113c62	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe12e46f7	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe20a41a1	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe40db28e	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe63f67e1	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe6ffe080	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe77a74e6	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xea2fcc08	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeb2922eb	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef433355	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef9bae5d	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf2d099e0	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf2f6764f	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf6500f33	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf8627746	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfa02d0b7	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfd068ba5	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfe030dc5	iwl_legacy_mac_add_interface
+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 0x094b257d	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0ad14b58	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x277b24ac	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x36b36ee6	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a2b2944	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ad08d41	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6378fc39	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x691a03c8	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x99be6072	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaf1c50c6	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb7241ed4	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc98373e6	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcb904223	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe9ae0d82	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xee78cfa3	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf94df99b	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x044f19dd	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x058c13f1	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x062cb8c9	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10c5613e	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17e5fdb4	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1bef8134	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2852b259	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2fc8ff6e	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32985d0b	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32a69de4	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x344e0d21	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3afde534	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3cd9d7f9	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x40537756	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x45fdec7e	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4bc24b0e	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x532e4c02	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x58bfa8ca	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x591fd996	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x634bd95b	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x728ff26c	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x75da5af6	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x84aa399e	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ab5362d	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c72d9bb	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8df1f3b3	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac862bf6	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 0xb5814f39	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbf4fcfee	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc7242c02	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc59f013	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd12dbd6b	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd5334dba	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd962ce2d	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde6ba8e3	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe026518d	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe2939e31	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf0defc32	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6621258	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf942d603	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfbda83c4	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfe4193e1	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x03f82591	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x32ba4a16	rtl_pci_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5657d6be	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6027993d	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6790c4cb	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6fbbbcbb	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bda60f7	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7f9b3940	rtl_ps_disable_nic
+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 0xa3a3ca35	rtl_usb_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa3a5b353	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xab53e7bb	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xacf6f80b	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xae111b0c	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xafb94e45	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbc602ea6	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc2f25b92	rtl_usb_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc5e4a8e5	rtl_usb_suspend
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb3e801f	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf69c9817	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa590f24	rtl_usb_probe
+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 0xa266550c	pcmcia_get_mac_from_cis
+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_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 0x1556437a	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0x49e47277	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x7966e0c4	pps_unregister_source
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1031a624	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x318cfcf5	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x42e351b4	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x46b4031a	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7f751d04	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x999cb6b7	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xccd8337f	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdea07e39	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf5251e81	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00db7a4a	fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06ac91fa	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x087dfc12	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0bcd2af5	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0dfecb1c	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ed19d21	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16dc45d7	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e387c22	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ed77612	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2054c4b1	fc_lport_bsg_request
+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 0x2ba69980	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33d1ef77	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d403414	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e71bb56	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40a5886b	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4419da9f	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a38ed76	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b8d13fb	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4daf0a6b	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52940ed7	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b13460c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64bc649d	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x73ab6672	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75cb68b5	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78e3f5fe	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d0833a6	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8272d479	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88c5ca68	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a7aabf4	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8af9a2e9	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b822070	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8cd924bc	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x90a257b8	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x988e2a78	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9af54227	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1296b43	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa25cbaac	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaea70f89	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb103eab2	fc_exch_mgr_free
+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 0xb621662e	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc50a191e	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcdf23747	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcecfd240	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf709869	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebf026f9	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xececff30	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf663eb99	fc_vport_id_lookup
+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 0x00dd11c1	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x083f6633	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c1a335e	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x236fe0d9	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x253eef3a	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2682bb99	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x282a57dc	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a85afbf	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35c08392	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b892ba9	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4cbbdb84	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d762cd4	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4df6879a	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50af7270	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x511e5848	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52c821ee	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x53ec5759	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b47f4ef	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x628fd792	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6daf5785	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e130326	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f352f23	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x703a6ef1	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71646343	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x725e47b8	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74856664	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x786fb681	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d16b748	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80c44873	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x834d3d0e	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x882f4f49	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89207939	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c5cd03e	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0e4c2c7	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa146d061	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa52929e5	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7d60a1b	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaaae8d9e	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb276956a	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9cdf3bd	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc086ece3	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4e0b69e	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc80f10ce	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdfcc231	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7caef9b	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3081844	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe90f95b9	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecaf39e8	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed776501	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee723696	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf280ce6b	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf62f9be9	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf823c316	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf97403dd	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x001f61a6	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x00cae832	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x046db302	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x09e09756	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0d31edf9	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x10ad0c65	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1488cae6	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1493d8ee	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1c61b52e	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1e364f74	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1fc66197	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1fc9725d	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2e916b02	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x345cf704	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3694b402	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x36febd74	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x38f26dd0	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3bd0d6b2	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x480f353c	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4a3b5a77	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4a50c684	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4e42ee76	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4f62765c	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0x54978bd2	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x54b35c31	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x59067ae6	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x591ef6c1	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5bf8c140	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6042fd4f	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6175782d	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6d6759ed	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6dfc9070	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x70f9d0b5	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7844121f	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d	transport_set_vpd_ident_type
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7e8a2676	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 0x8905944a	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8b3537f3	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8bc6af0b	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ede3ef6	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8fd716a6	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x927a1c9c	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x98a6519a	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9bcffc23	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa1de8a23	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0xba93ff70	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc298b821	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc35182f5	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc913de1c	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcaf522ab	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcdc4a18b	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xce02e7f1	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xda57cc5d	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe165fc57	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe832147d	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe839fc62	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0xea1979c8	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0xeaafccc6	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xeccc1db3	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0xeff9b8f6	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xff85a2f2	target_get_task_cdb
+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 0x23da7ad0	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2d2bffb5	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3b0a971f	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x40280dda	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x40b10206	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5df8e030	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6e6eeaa5	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6ec0c127	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8fa66554	usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9dad2937	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xad46c2bc	usb_wwan_ioctl
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbe69ed1b	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbfbe7b03	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc3f4eb9d	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf938d7b4	usb_wwan_set_termios
+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 0x1a0a29dc	w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0x2a660fc7	w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x59aed663	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 0x082c50db	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x0a727473	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0x1dcaafc6	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x6452afe7	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x73da381b	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xa6d10552	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0xab135c7a	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0xc09eb256	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0xdda5e99b	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0xe79c3d9e	extract_attr_from_ios
+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 0x21d427c6	destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x9e781c3e	make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x126e2504	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0x19b9a00f	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x1b4ed288	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0x23f73ee7	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x271bcb46	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x3124e7ad	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0x34035879	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x37c95093	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x3e7e573d	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x42f73cbe	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0x433b2a7b	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x447d334e	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x47396b5d	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x4886fb06	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x4b1a6faa	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x53d5eda9	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x5e07a811	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x5f571cc7	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x6c3abacd	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x766e6d43	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x7cf138cd	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x7e115fda	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x849f3ac8	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x9112f458	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x9b7bc307	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa6c43ffb	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0xa8cb6128	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xbc3122da	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xbca07dce	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xbeb4f979	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xbf8c8f6e	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc54c4256	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc7940ceb	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xc81baad8	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xdadc9522	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xdcf93dbd	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xde6a7e87	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xe06edf65	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0xe19b281b	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf68057af	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xf9289a5d	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0xfc461198	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xfcd31027	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0x07c83c21	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x892665ad	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xf6f02899	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xff0dfdcc	alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x469c46fe	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x6982ad57	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0x73f6888f	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x792bd89d	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x93e5c760	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x940ebcdf	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x97fde41d	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x9e81f2ee	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xc538e871	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xc9e7a5de	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xca87b453	vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xde15cc68	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf005386e	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xfe27a372	atm_dev_release_vccs
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x0f372d67	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x1a4e8a1e	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x34c84a2b	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314	ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x4d2fda4e	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x7ac29fcb	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x9b737d79	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xb20d4559	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xf6cb4cce	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0xfc63db42	ax25_linkfail_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c5f84c8	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x12fa94fb	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x16aeb416	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1da204c2	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x242fbc5f	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x24c05f36	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2b7cd977	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2bce0077	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2caf712b	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c4c8e63	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x430e6040	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x46086de9	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f223283	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5157f915	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x52ff120c	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x59891225	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x626dd939	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x69a0780f	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x77677156	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c29ba63	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7e885819	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x82476f21	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x85774529	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8649761d	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x89b881d9	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c20e61f	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ccf10d3	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x99d43c5f	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa42d0403	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4d4148f	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa97ddd4a	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xac2bde82	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb156134f	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb27d58ba	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc295ca9e	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd11fc87f	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe23b48a4	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe840391b	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb484afe	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb55095d	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bridge/bridge 0xc28edfc1	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1842acee	ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x23cb9e87	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa1e15d27	ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x09835907	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x20651b7d	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 0xbcc3d8cc	caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0xdf236210	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/can/can 0x50074263	can_proto_register
+EXPORT_SYMBOL net/can/can 0x601d82b4	can_ioctl
+EXPORT_SYMBOL net/can/can 0x703c2d32	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xc1ad62cf	can_rx_register
+EXPORT_SYMBOL net/can/can 0xd2b9d55e	can_send
+EXPORT_SYMBOL net/can/can 0xe8289081	can_proto_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 0x1a72a420	ceph_messenger_destroy
+EXPORT_SYMBOL net/ceph/libceph 0x1c9c1e00	ceph_con_keepalive
+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 0x41d6df2a	ceph_osdc_init
+EXPORT_SYMBOL net/ceph/libceph 0x43e458f6	ceph_file_part
+EXPORT_SYMBOL net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+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 0x6975d779	ceph_con_init
+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 0x7aeed22a	ceph_con_close
+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 0x80b7bd84	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x814bf18b	ceph_osdc_wait_request
+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 0xa0afc2ad	ceph_msg_new
+EXPORT_SYMBOL net/ceph/libceph 0xa1daee21	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0xa363b1cb	ceph_osdc_writepages
+EXPORT_SYMBOL net/ceph/libceph 0xa53b4c02	ceph_messenger_create
+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 0xd2c107bb	ceph_flags_to_mode
+EXPORT_SYMBOL net/ceph/libceph 0xd418aff5	ceph_con_open
+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 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/ieee802154/ieee802154 0x02a27e9e	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x09e7c0a2	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x518689f4	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x609e5a0a	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x65628fa6	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x85a8aad2	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9cbebd38	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa484977f	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb2bd780c	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb79aa79a	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xba67ff2b	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc90ffb80	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xfadc9966	wpan_phy_alloc
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7037c75a	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7ad240ab	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xda9881d4	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3cb85d31	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe3bb14dd	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xfaee3c38	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x05e430d1	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x10db1ec5	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x48cc330b	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x97af6dd2	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa83b376f	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa8d9c715	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb179ce40	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x0bab3ced	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xb044638c	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x362b897b	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4eeeb7b6	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x59944d6c	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa83e88d0	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x18893eac	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xeeab728f	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xcab3e155	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd8b7cbac	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1f53befb	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x41de5489	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x75d97175	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb22850e2	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd2fd7c03	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd3dfd8fe	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd4022e4f	ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd84fac23	ircomm_open
+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 0x135271bb	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x1e6cade0	irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x2a0e1340	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x31e5bb5b	iriap_open
+EXPORT_SYMBOL net/irda/irda 0x345b20bf	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3a12359f	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x3e56064f	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x402c7925	irttp_open_tsap
+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 0x4da71b92	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x52f024c9	irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x53d9f74c	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x544ad89a	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x5789305e	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x601bda46	hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x68982d33	irlmp_open_lsap
+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 0x7957f728	irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7a79305a	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x7c3b16c9	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x7c3c5dd4	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x8340f4ac	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x85d88217	irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x91da41ab	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x93c84433	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xa1d41e58	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xaa557515	irias_new_object
+EXPORT_SYMBOL net/irda/irda 0xb02a641b	iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb536bc7c	proc_irda
+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 0xc68e43be	irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0xc8ba12e2	irlmp_close_lsap
+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 0xd9f9fa2f	irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xdcff0e83	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe3463529	hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xe3bde43e	irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0xed2a97fb	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf00e174b	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xf0a694a1	irias_find_object
+EXPORT_SYMBOL net/irda/irda 0xf357d2b7	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xf5876b95	hashbin_remove_this
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xe7cc2e69	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x075a4286	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x3b671e8c	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x3e43c0bd	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x45e1ed22	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x8b564e2d	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xc00ab3dd	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xf482f19d	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xfea4b673	lapb_disconnect_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x03fe25be	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x05247095	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x091b2518	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c15f96e	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x1d7ae456	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eea41f5	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x205e0be4	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0x288f404f	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x294d2fdd	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x300ab26f	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x3652d76a	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x373c3517	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x399a30be	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x3e736eb8	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x41828ac6	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x4893fb0c	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x4dc071d7	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x4f2c6d05	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x53db7ac3	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0x57b1d7bb	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x58a3b396	ieee80211_queue_stopped
+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 0x6f6f4d51	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e	ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x81acb14a	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x863b5694	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x8c7364fb	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x9640266e	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x970664dd	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa963d398	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL net/mac80211/mac80211 0xab2130ab	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xb385ab86	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0xb831ae04	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xbcd3a4ce	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xc293d110	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xc6e67b88	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xcb0d0dfc	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xcb643f64	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xce8e0567	ieee80211_restart_hw
+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 0xe1f56a36	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xe4991a75	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02	ieee80211_report_low_ack
+EXPORT_SYMBOL net/mac80211/mac80211 0xec90eca9	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xedcb7e98	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xf7947490	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0xfcb50c38	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xfde93285	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xff3c3662	ieee80211_wake_queues
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x12a609b1	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2fa0de3d	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3b3a74a9	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x414a4e7b	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x69858fe0	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8f97edf2	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x95aef6a2	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb365bb92	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0dea006	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd37c1f1f	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd3acbd20	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe67cab97	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe9b57ac8	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfd3e0039	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x104dd056	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3e41ecc7	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4c098611	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf42f220c	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x012e557a	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x1ce9e67e	xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44	xt_compat_init_offsets
+EXPORT_SYMBOL net/netfilter/x_tables 0x4052ba03	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x581a6978	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x70dcbd26	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xc53633ea	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xc8dd159d	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe2bae5e0	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xebaae2a3	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf68ae88f	xt_register_matches
+EXPORT_SYMBOL net/nfc/nci/nci 0x49acea9f	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x6bb5c3bf	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0x6ffb2dc8	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x88f8efe0	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x9f671d7f	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nfc 0x007848fd	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x4acdec18	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x9e009904	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0xad63e3b7	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xb040cd36	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0xd2eef52e	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0xdd8a238b	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0xeb3dd12b	nfc_class
+EXPORT_SYMBOL net/phonet/phonet 0x34e4db1e	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x3bae41af	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x7a8fd30c	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x9335597f	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x94f003b5	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xa4f634ed	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xdd2184a8	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xeef20e12	pn_sock_get_port
+EXPORT_SYMBOL net/rds/rds 0x1c9be661	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1d15ce93	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x33772c93	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x50cd960b	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x57eaaae9	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5bfcc860	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ee6a08f	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x68c2a07c	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7558ee3a	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7d265c37	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x85f40dc5	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb4d8d002	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc7e71c83	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe44d6d6e	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e69a51	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfa652b8d	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5a91495	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xc3e40056	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0xa07154a4	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xc7d2fd31	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x05a6de7d	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x05e38f6a	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0dfb9f7b	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x107181f8	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x20e4460a	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x2471a965	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x25d0da97	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x264c7160	cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x28103839	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x28e865e0	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0x29a20120	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x3495b153	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x392718a3	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x4275e63d	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x44d944c6	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0x454eb53f	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4fdc9425	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x545f47eb	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0x5959e7b5	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x5a66c45f	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ab9b8cb	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ff24788	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x63f2aa3c	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x65958a3b	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ad4c009	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x7993226a	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fc670b3	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8552a3b8	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x95b7cf7b	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x95f80240	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x9651a211	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9d12fa14	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x9de1ae05	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x9ececd9e	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f24d74c	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa47b2240	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xa9387533	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xa97daa83	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xaa1e3cbe	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0xbb40234a	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc81b4636	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xca814d20	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xd3f77ac0	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xdcf60430	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0a75265	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xe2340adb	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xe5b83d8a	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xf08ed941	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xf09df2b4	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xf1a4fb37	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf7aa723e	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf80ab8e7	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xf8fbc29c	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe51ced	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xff46c9c2	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/lib80211 0x0d17d839	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2c408c94	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x71b1daf4	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x7b9e076f	lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xd839ce6f	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xe1d28242	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 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00b03267	pci_request_regions
+EXPORT_SYMBOL vmlinux 0x00b6797e	sock_alloc_send_skb
+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 0x0122f95e	_lv1_get_spe_irq_outlet
+EXPORT_SYMBOL vmlinux 0x0149df1f	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x0150e31e	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x017fc977	mddev_congested
+EXPORT_SYMBOL vmlinux 0x01889bd9	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x0188fb28	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x018d9919	_lv1_set_lpm_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x018f16e9	sock_no_poll
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019e7765	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x01bdc57a	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x01c01c0a	skb_make_writable
+EXPORT_SYMBOL vmlinux 0x01cfc054	macio_release_resource
+EXPORT_SYMBOL vmlinux 0x01d276cf	of_find_property
+EXPORT_SYMBOL vmlinux 0x01d43e38	register_netdevice
+EXPORT_SYMBOL vmlinux 0x020d18d7	_lv1_set_lpm_debug_bus_control
+EXPORT_SYMBOL vmlinux 0x0242fb71	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x024b3994	scsi_host_put
+EXPORT_SYMBOL vmlinux 0x0256a8a1	sync_mapping_buffers
+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 0x029cf028	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02d81845	audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e455ff	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x0319ab4f	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0x031dc65e	pasemi_dma_free_chan
+EXPORT_SYMBOL vmlinux 0x032a5241	ppp_input_error
+EXPORT_SYMBOL vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033970fe	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x034f9e73	param_ops_byte
+EXPORT_SYMBOL vmlinux 0x03592ea0	security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x03975d68	idr_find
+EXPORT_SYMBOL vmlinux 0x03a8ef7c	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x03c06156	bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03d0db8a	mach_pseries
+EXPORT_SYMBOL vmlinux 0x03d835f1	unregister_snap_client
+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 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0440a533	_lv1_net_remove_multicast_address
+EXPORT_SYMBOL vmlinux 0x045478c5	init_buffer
+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 0x04abf8e8	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x04dd7fd3	devm_iounmap
+EXPORT_SYMBOL vmlinux 0x04e65412	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x0530dede	_raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x053882f5	vfs_symlink
+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 0x056de214	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x0599d25b	sg_miter_next
+EXPORT_SYMBOL vmlinux 0x059a4d7a	proto_unregister
+EXPORT_SYMBOL vmlinux 0x05a514a1	_insl_ns
+EXPORT_SYMBOL vmlinux 0x05a657fe	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x05bbe154	mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x062ea919	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x06333d99	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x066ed244	tr_type_trans
+EXPORT_SYMBOL vmlinux 0x0676095a	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06a485f2	__krealloc
+EXPORT_SYMBOL vmlinux 0x06bbb24a	mempool_resize
+EXPORT_SYMBOL vmlinux 0x06cf140c	aio_put_req
+EXPORT_SYMBOL vmlinux 0x06d7d6ab	inode_change_ok
+EXPORT_SYMBOL vmlinux 0x06e0a22c	dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x070b9992	file_update_time
+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 0x07bfd6cb	dqget
+EXPORT_SYMBOL vmlinux 0x07c77883	tcf_register_action
+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 0x07f79d92	input_allocate_device
+EXPORT_SYMBOL vmlinux 0x07f8ee15	_lv1_unmap_device_dma_region
+EXPORT_SYMBOL vmlinux 0x08012e32	scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL vmlinux 0x08315cee	of_node_get
+EXPORT_SYMBOL vmlinux 0x0835aace	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x087107f2	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x08754022	misc_deregister
+EXPORT_SYMBOL vmlinux 0x089b1f10	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x08b455a3	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x08bd6ede	tcp_sendmsg
+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 0x09192d99	__pci_register_driver
+EXPORT_SYMBOL vmlinux 0x092cf8d0	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x093ef4dd	nla_append
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x095b78ee	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x096341c2	_lv1_connect_irq_plug_ext
+EXPORT_SYMBOL vmlinux 0x096711aa	compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x0975f68d	compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x0976cae9	netlink_set_err
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x09800e40	get_pci_dma_ops
+EXPORT_SYMBOL vmlinux 0x09845284	generic_write_sync
+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 0x09ef788e	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x09ef857a	ppc_md
+EXPORT_SYMBOL vmlinux 0x0a0c4050	alloc_trdev
+EXPORT_SYMBOL vmlinux 0x0a17f009	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3d0644	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x0a3d878a	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x0a475f49	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x0a7805a5	__mutex_init
+EXPORT_SYMBOL vmlinux 0x0a89fa02	module_layout
+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 0x0aa2c90e	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x0aacd352	__kfifo_len_r
+EXPORT_SYMBOL vmlinux 0x0ab324dd	security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x0abd3711	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x0ac089a5	new_inode
+EXPORT_SYMBOL vmlinux 0x0acb1a3c	__bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0af07cfa	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x0afbabcc	vfs_write
+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 0x0b3fe3cb	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x0b7086d9	param_get_short
+EXPORT_SYMBOL vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7e1713	genphy_read_status
+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 0x0bbb8fae	sock_update_classid
+EXPORT_SYMBOL vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL vmlinux 0x0bc9cdad	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x0bdc62a2	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x0bf706e5	tty_vhangup
+EXPORT_SYMBOL vmlinux 0x0c10bd0b	pci_disable_link_state_locked
+EXPORT_SYMBOL vmlinux 0x0c141bd2	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x0c19d66c	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x0c1ad162	_lv1_net_start_rx_dma
+EXPORT_SYMBOL vmlinux 0x0c1c4c8f	pid_task
+EXPORT_SYMBOL vmlinux 0x0c2e186d	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x0c48b4dc	uart_register_driver
+EXPORT_SYMBOL vmlinux 0x0c4b5354	follow_pfn
+EXPORT_SYMBOL vmlinux 0x0c4f2c61	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x0c5392c2	d_rehash
+EXPORT_SYMBOL vmlinux 0x0c65e73c	scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c6d96f2	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x0c84e409	bmap
+EXPORT_SYMBOL vmlinux 0x0c8c9e99	scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c8f8acd	vfs_open
+EXPORT_SYMBOL vmlinux 0x0c952e98	bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x0ca01cf9	get_phy_id
+EXPORT_SYMBOL vmlinux 0x0ca0c882	twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cbd9d2f	pmac_suspend_agp_for_card
+EXPORT_SYMBOL vmlinux 0x0cf13867	agp_generic_enable
+EXPORT_SYMBOL vmlinux 0x0d1a6b4f	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x0d2d0d6a	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x0d2ffd60	bdi_register
+EXPORT_SYMBOL vmlinux 0x0d38750b	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x0d3f3c5b	cdev_init
+EXPORT_SYMBOL vmlinux 0x0d4a6c4f	arp_find
+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 0x0da56db4	submit_bio
+EXPORT_SYMBOL vmlinux 0x0daac698	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x0df2c2e0	posix_acl_create
+EXPORT_SYMBOL vmlinux 0x0e1206cf	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x0e33820e	misc_register
+EXPORT_SYMBOL vmlinux 0x0e3a63c5	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x0e3f58df	elevator_change
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e8f30f6	_raw_write_lock_irq
+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 0x0f19790b	vfs_read
+EXPORT_SYMBOL vmlinux 0x0f529bb0	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f63b2f1	journal_abort
+EXPORT_SYMBOL vmlinux 0x0f6c5c16	blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x0f7713df	fsl_lbc_ctrl_dev
+EXPORT_SYMBOL vmlinux 0x0f84dff9	i2c_use_client
+EXPORT_SYMBOL vmlinux 0x0f8da317	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x0f8ea081	d_delete
+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 0x100673a0	input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x101ef069	tty_port_init
+EXPORT_SYMBOL vmlinux 0x104393e4	__get_user_pages
+EXPORT_SYMBOL vmlinux 0x104812b5	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x10798660	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x1085985f	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x10952554	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x10bb2e58	of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x10ccce99	kobject_set_name
+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 0x111b12a8	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x11267875	scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x112a9a36	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x113d188f	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x11488bbe	__scsi_put_command
+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 0x116da787	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x1171b635	_lv1_delete_lpm_event_bookmark
+EXPORT_SYMBOL vmlinux 0x11799f40	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x117e1bac	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x1197accd	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x11a09d67	swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x11c78ed6	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x11cbbb2c	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x11ce38dd	freeze_super
+EXPORT_SYMBOL vmlinux 0x11d62f34	macio_dev_get
+EXPORT_SYMBOL vmlinux 0x11d97451	journal_load
+EXPORT_SYMBOL vmlinux 0x11de243c	max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x11f2fdce	journal_set_features
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x121f1286	tty_shutdown
+EXPORT_SYMBOL vmlinux 0x1236901e	thaw_bdev
+EXPORT_SYMBOL vmlinux 0x1246cb15	force_sig
+EXPORT_SYMBOL vmlinux 0x124fe762	agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0x1259e94d	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x12695d0b	elv_register_queue
+EXPORT_SYMBOL vmlinux 0x127e18dd	pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x1289358c	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL vmlinux 0x12b14c8c	qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x12c1b552	uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x12cb6622	_lv1_map_device_dma_region
+EXPORT_SYMBOL vmlinux 0x12df31c6	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x12e47213	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x12e5ef0c	rtas_set_power_level
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x131aff1c	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x138272eb	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x13a28e39	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x13affbda	percpu_counter_compare
+EXPORT_SYMBOL vmlinux 0x13b053ae	fget_raw
+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 0x140742cf	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x141650a3	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x1419e653	macio_request_resource
+EXPORT_SYMBOL vmlinux 0x141fe5fd	pasemi_read_iob_reg
+EXPORT_SYMBOL vmlinux 0x14880715	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x149b7cc4	bio_alloc
+EXPORT_SYMBOL vmlinux 0x14e11da3	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0x14e7ca7c	alloc_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x14f40f53	dev_emerg
+EXPORT_SYMBOL vmlinux 0x14feac40	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x15078e67	sk_filter
+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 0x155ac648	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x1578739b	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x157ce620	compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x15864b03	flex_array_get
+EXPORT_SYMBOL vmlinux 0x15a3052c	serio_interrupt
+EXPORT_SYMBOL vmlinux 0x15a61857	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x15cc20af	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x15ce75a2	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x15d7d6ec	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x160bd45c	rtas_token
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x164401c3	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x164f754c	__cleancache_put_page
+EXPORT_SYMBOL vmlinux 0x1650f7c8	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x16a6e5b9	lookup_hash
+EXPORT_SYMBOL vmlinux 0x16b1678b	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x16b3dd82	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x16b9d114	dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x16bb4430	pskb_copy
+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 0x17042df8	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x17133c88	swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x173e30a9	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x1743414f	__debugger_fault_handler
+EXPORT_SYMBOL vmlinux 0x17648396	dev_base_lock
+EXPORT_SYMBOL vmlinux 0x177293bd	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x17897897	of_phy_find_device
+EXPORT_SYMBOL vmlinux 0x178f7af6	km_report
+EXPORT_SYMBOL vmlinux 0x179aff0d	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x17a49292	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x17c204c2	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x17cb8c79	_lv1_read_htab_entries
+EXPORT_SYMBOL vmlinux 0x17ddce86	dentry_open
+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 0x17f668d7	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x182d9a22	dev_close
+EXPORT_SYMBOL vmlinux 0x182f50af	_lv1_open_device
+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 0x1853460f	skb_add_rx_frag
+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 0x187ae6fb	dev_set_group
+EXPORT_SYMBOL vmlinux 0x1881d782	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x18877ef9	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x189b6bac	memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18a007a0	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x18c71b79	__f_setown
+EXPORT_SYMBOL vmlinux 0x18c98205	_lv1_destruct_virtual_address_space
+EXPORT_SYMBOL vmlinux 0x18efc46b	bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x192813f6	I_BDEV
+EXPORT_SYMBOL vmlinux 0x19391763	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x194e6d12	km_policy_notify
+EXPORT_SYMBOL vmlinux 0x19502554	mach_pasemi
+EXPORT_SYMBOL vmlinux 0x19933fc6	revert_creds
+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 0x1a03dbd7	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x1a042d1f	ida_simple_get
+EXPORT_SYMBOL vmlinux 0x1a05b5b8	netdev_crit
+EXPORT_SYMBOL vmlinux 0x1a0f272d	serio_open
+EXPORT_SYMBOL vmlinux 0x1a111a41	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x1a21ccec	__find_get_block
+EXPORT_SYMBOL vmlinux 0x1a2f6945	__next_cpu
+EXPORT_SYMBOL vmlinux 0x1a44d838	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0x1a578511	blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x1a5c1ab5	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x1a656af8	__sk_mem_reclaim
+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 0x1aa8c8ba	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x1abeb19c	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x1ac153fb	pci_get_class
+EXPORT_SYMBOL vmlinux 0x1acb5d40	dscr_default
+EXPORT_SYMBOL vmlinux 0x1ace138d	bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ae9db0d	log_start_commit
+EXPORT_SYMBOL vmlinux 0x1af22144	of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b05942a	kernel_listen
+EXPORT_SYMBOL vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1	scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb45f59	ethtool_op_set_tso
+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 0x1bfec830	__iounmap_at
+EXPORT_SYMBOL vmlinux 0x1c02194c	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x1c08fc47	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x1c0ee817	mfd_cell_disable
+EXPORT_SYMBOL vmlinux 0x1c172780	arp_send
+EXPORT_SYMBOL vmlinux 0x1c1a4ec7	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x1c1af916	set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c1d9cbe	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x1c200a7d	pasemi_dma_stop_chan
+EXPORT_SYMBOL vmlinux 0x1c3134e3	kill_pid
+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 0x1c875161	unlock_page
+EXPORT_SYMBOL vmlinux 0x1c8949b1	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+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 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 0x1d49c7a5	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x1daee28a	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x1dbf5446	otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd23425	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1ddb9881	bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x1df7c598	mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x1e01f5a0	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e3a86a6	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x1e3cfac1	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x1e4abd91	jbd2_journal_start
+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 0x1e8e3c86	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ead616d	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x1eb3a6e1	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x1ec5650a	__cleancache_flush_fs
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1f7db3e9	fb_get_mode
+EXPORT_SYMBOL vmlinux 0x1f88e729	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x1fa769f2	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x1fa9fd1c	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x1fbecff5	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x1fd07fff	kdb_grepping_flag
+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 0x2001123e	mdiobus_free
+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 0x208d3e47	__napi_schedule
+EXPORT_SYMBOL vmlinux 0x2099f83e	__blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL vmlinux 0x20b08eec	softnet_data
+EXPORT_SYMBOL vmlinux 0x20c2ed19	invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x20c81fae	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x20cddc7e	kset_register
+EXPORT_SYMBOL vmlinux 0x20d79e65	__napi_complete
+EXPORT_SYMBOL vmlinux 0x20e155f1	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x20e1d9cd	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x20f40467	thaw_super
+EXPORT_SYMBOL vmlinux 0x20f43859	set_page_dirty
+EXPORT_SYMBOL vmlinux 0x2118f4b1	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x2119ffcd	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x211deed2	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x213603bf	pasemi_dma_free_ring
+EXPORT_SYMBOL vmlinux 0x2136944e	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x213aa059	inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x2144a574	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x215ebd78	bitrev16
+EXPORT_SYMBOL vmlinux 0x2166f5aa	make_EII_client
+EXPORT_SYMBOL vmlinux 0x21837473	block_write_begin
+EXPORT_SYMBOL vmlinux 0x2186bb41	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x21d09414	journal_destroy
+EXPORT_SYMBOL vmlinux 0x21f678b9	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x21fd1c95	llc_sap_open
+EXPORT_SYMBOL vmlinux 0x220736c1	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x2210f695	follow_down
+EXPORT_SYMBOL vmlinux 0x22184e5f	ethtool_op_set_tx_hw_csum
+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 0x2296c27e	alloc_disk
+EXPORT_SYMBOL vmlinux 0x229e3ff7	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b602d5	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x22bb432d	i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x22c25e04	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x22c78c09	blk_insert_request
+EXPORT_SYMBOL vmlinux 0x22c91f98	fasync_helper
+EXPORT_SYMBOL vmlinux 0x22d704d2	pci_iounmap
+EXPORT_SYMBOL vmlinux 0x22d8782b	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x22e8ade3	tcp_check_req
+EXPORT_SYMBOL vmlinux 0x22eaefbb	agp_copy_info
+EXPORT_SYMBOL vmlinux 0x2300e70b	seq_write
+EXPORT_SYMBOL vmlinux 0x230c3722	idr_for_each
+EXPORT_SYMBOL vmlinux 0x2313a6da	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x231d4001	fb_edid_add_monspecs
+EXPORT_SYMBOL vmlinux 0x23238974	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x23260d10	inet_getname
+EXPORT_SYMBOL vmlinux 0x234509f3	strncat
+EXPORT_SYMBOL vmlinux 0x235e90f3	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x23887388	macio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x238e9408	security_old_inode_init_security
+EXPORT_SYMBOL vmlinux 0x239441c9	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23ca36c5	console_start
+EXPORT_SYMBOL vmlinux 0x23cfcfc5	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x23e60334	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x23eccbdb	kthread_stop
+EXPORT_SYMBOL vmlinux 0x23f2243d	mempool_free
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2427531b	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x2431f008	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0x244a2411	__first_cpu
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245a5a94	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x246b5605	udp_poll
+EXPORT_SYMBOL vmlinux 0x2473b5f3	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x2482e688	vsprintf
+EXPORT_SYMBOL vmlinux 0x24ae3eea	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x24cfd438	_lv1_copy_lpm_trace_buffer
+EXPORT_SYMBOL vmlinux 0x24f23083	dquot_enable
+EXPORT_SYMBOL vmlinux 0x24fdac79	wake_bit_function
+EXPORT_SYMBOL vmlinux 0x251b0417	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x2520a916	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL vmlinux 0x2552e5dd	kernel_read
+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 0x25876fb2	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x2587ed99	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x25a96d2a	compat_mc_setsockopt
+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 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x26454da3	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x26477c07	__vmalloc
+EXPORT_SYMBOL vmlinux 0x265406df	__page_symlink
+EXPORT_SYMBOL vmlinux 0x266554da	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x2670a4e2	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x2685c3d7	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x268c3d5b	ppp_channel_index
+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 0x27031577	generic_read_dir
+EXPORT_SYMBOL vmlinux 0x271425a6	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x27274609	jbd2_trans_will_send_data_barrier
+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 0x276d8d8c	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x27708e38	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x27821182	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x2814f50b	inet_frag_evictor
+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 0x2850c93b	pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x285cde8a	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x2876a6d3	memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x287a0ae2	mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x2883667d	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x2888c0d2	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0x289a1989	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28ae3d12	__put_cred
+EXPORT_SYMBOL vmlinux 0x28f041c9	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0x28f4e54f	pci_get_device
+EXPORT_SYMBOL vmlinux 0x28f52688	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x28fcfb0c	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0x2918a88a	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x2925a54a	mmc_erase
+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 0x299b06ea	user_path_create
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29d73d03	ida_init
+EXPORT_SYMBOL vmlinux 0x29e2f22b	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x29e96487	seq_putc
+EXPORT_SYMBOL vmlinux 0x29f39381	padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x29fea303	blk_queue_start_tag
+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 0x2a5ae171	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x2a623a14	netif_napi_add
+EXPORT_SYMBOL vmlinux 0x2b018241	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x2b01b957	tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b26b11b	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b352540	empty_aops
+EXPORT_SYMBOL vmlinux 0x2b4da566	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x2b50825b	skb_push
+EXPORT_SYMBOL vmlinux 0x2b52df4e	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x2b571459	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x2b572bd1	take_over_console
+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 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8	sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bdc06cb	bio_split
+EXPORT_SYMBOL vmlinux 0x2c1cd4a4	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2c20ae42	soft_cursor
+EXPORT_SYMBOL vmlinux 0x2c231c04	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL vmlinux 0x2c4c7997	_lv1_construct_lpm
+EXPORT_SYMBOL vmlinux 0x2c78ec65	pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x2c7b1fca	down_timeout
+EXPORT_SYMBOL vmlinux 0x2c7b9f0b	dm_unregister_target
+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 0x2cd2bf84	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x2d01be39	of_scan_pci_bridge
+EXPORT_SYMBOL vmlinux 0x2d06e62c	input_mt_report_slot_state
+EXPORT_SYMBOL vmlinux 0x2d07b8e9	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d24c21a	inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x2d3ef00f	padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x2d4ae68a	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x2d5528c9	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d5972ef	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x2d799623	mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x2d7d2767	_lv1_set_lpm_group_control
+EXPORT_SYMBOL vmlinux 0x2d83b689	nf_reinject
+EXPORT_SYMBOL vmlinux 0x2d89342a	scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8ca33e	kmem_cache_alloc_trace
+EXPORT_SYMBOL vmlinux 0x2d8fc698	pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0x2db4c99b	flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x2db943b6	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x2dd33926	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x2de205e6	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x2df60c95	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x2e09477d	journal_create
+EXPORT_SYMBOL vmlinux 0x2e141a3c	agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x2e1467d9	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x2e1bef92	eeh_subsystem_enabled
+EXPORT_SYMBOL vmlinux 0x2e255693	get_unmapped_area_prot
+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 0x2eb58fbb	pci_write_vpd
+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 0x2f0aaef8	agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x2f0d5061	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x2f287f0d	copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f2ffb34	ip_options_compile
+EXPORT_SYMBOL vmlinux 0x2f45bfba	scsi_adjust_queue_depth
+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 0x2f8333a1	brioctl_set
+EXPORT_SYMBOL vmlinux 0x2f929512	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x2f98b82c	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x2fa07273	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x2fae96de	rtas_data_buf_lock
+EXPORT_SYMBOL vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL vmlinux 0x2fc546c7	pci_domain_nr
+EXPORT_SYMBOL vmlinux 0x2fcf740d	idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x2fd29036	journal_restart
+EXPORT_SYMBOL vmlinux 0x2fe87d76	twl6040_get_sysclk
+EXPORT_SYMBOL vmlinux 0x2ffe7040	dev_mc_del_global
+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 0x3035e8c8	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x30706aa9	security_file_permission
+EXPORT_SYMBOL vmlinux 0x30789d19	icmp_send
+EXPORT_SYMBOL vmlinux 0x307c2fd0	generic_check_addressable
+EXPORT_SYMBOL vmlinux 0x30810281	tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x309108b2	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x30a110cc	starget_for_each_device
+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 0x30cc0245	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x30d70fa9	of_get_pci_address
+EXPORT_SYMBOL vmlinux 0x30f8b00b	skb_split
+EXPORT_SYMBOL vmlinux 0x3121dc38	iterate_mounts
+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 0x315c65fd	zlib_deflateInit2
+EXPORT_SYMBOL vmlinux 0x315ce752	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x317f86a9	phy_connect
+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 0x3211b9d3	rt6_lookup
+EXPORT_SYMBOL vmlinux 0x3231c9be	compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x32485fbe	vfs_create
+EXPORT_SYMBOL vmlinux 0x324aa1df	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x324d0c40	cdrom_release
+EXPORT_SYMBOL vmlinux 0x327b9c1b	pmu_poll_adb
+EXPORT_SYMBOL vmlinux 0x328df565	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x32a5268d	secpath_dup
+EXPORT_SYMBOL vmlinux 0x32b910e0	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x32e2df5b	i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x334f0c42	d_validate
+EXPORT_SYMBOL vmlinux 0x3365d0cc	bdi_init
+EXPORT_SYMBOL vmlinux 0x3386631b	sk_common_release
+EXPORT_SYMBOL vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL vmlinux 0x340ea46e	inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x34186124	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x34295a8c	thermal_zone_unbind_cooling_device
+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 0x347b0fa2	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x348574a9	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x34942172	set_security_override
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34b66255	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x34c027e8	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x34e4d386	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x35025c69	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x350b7184	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x353183d0	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x35420a3b	abort_creds
+EXPORT_SYMBOL vmlinux 0x355b4163	pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x358e67f5	key_unlink
+EXPORT_SYMBOL vmlinux 0x35914fb6	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x35992c83	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x35a3db5a	bdev_read_only
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35db518b	page_symlink
+EXPORT_SYMBOL vmlinux 0x35e09649	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x35e80ee7	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x35f2835c	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x36139a51	memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361743b2	fput
+EXPORT_SYMBOL vmlinux 0x364e9597	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x36793af7	gen_pool_add_virt
+EXPORT_SYMBOL vmlinux 0x3686e01c	mmc_start_req
+EXPORT_SYMBOL vmlinux 0x36b0e732	try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x36c989d0	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x36ced646	mntget
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f07450	sock_create_lite
+EXPORT_SYMBOL vmlinux 0x3706fba3	unload_nls
+EXPORT_SYMBOL vmlinux 0x370bd347	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x371902e9	_lv1_get_lpm_interrupt_status
+EXPORT_SYMBOL vmlinux 0x371d2130	check_legacy_ioport
+EXPORT_SYMBOL vmlinux 0x371e6a32	__lock_buffer
+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 0x376a6952	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x377d642e	inet_shutdown
+EXPORT_SYMBOL vmlinux 0x379f2c7d	textsearch_register
+EXPORT_SYMBOL vmlinux 0x379f5837	param_set_invbool
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e86d6c	locks_init_lock
+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 0x3822a027	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x382777ab	_lv1_gpu_context_allocate
+EXPORT_SYMBOL vmlinux 0x383bb868	mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0x384d0059	serio_close
+EXPORT_SYMBOL vmlinux 0x3854a4b3	vfs_rename
+EXPORT_SYMBOL vmlinux 0x38571e07	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0x387419a3	skb_kill_datagram
+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 0x38aedee3	thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38c5ab32	of_match_node
+EXPORT_SYMBOL vmlinux 0x38ccca28	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x38d0732e	skb_recycle
+EXPORT_SYMBOL vmlinux 0x38f67d16	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x38fb9933	tty_std_termios
+EXPORT_SYMBOL vmlinux 0x390a3ca4	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x393aaa08	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0x393c6d0e	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x39734451	redraw_screen
+EXPORT_SYMBOL vmlinux 0x3976558f	skb_clone
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x399ab9ea	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x39a713ff	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x39cdf63c	wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x39ebabe3	dquot_operations
+EXPORT_SYMBOL vmlinux 0x39faa81f	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x39ffb018	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x3a124ead	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x3a16494b	of_dev_get
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a296aaa	of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x3a33983e	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x3a499ef9	lock_may_read
+EXPORT_SYMBOL vmlinux 0x3a5fb136	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x3a8e8cd8	sk_alloc
+EXPORT_SYMBOL vmlinux 0x3a8edc85	console_stop
+EXPORT_SYMBOL vmlinux 0x3a954d74	no_llseek
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aec4ec5	set_disk_ro
+EXPORT_SYMBOL vmlinux 0x3b123b24	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x3b2c29e6	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b31dfe0	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x3b381ef2	kernel_accept
+EXPORT_SYMBOL vmlinux 0x3b5cecb1	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x3b615a21	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x3b73b0e2	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x3b7f6a2f	gen_pool_create
+EXPORT_SYMBOL vmlinux 0x3b9d601d	vio_find_node
+EXPORT_SYMBOL vmlinux 0x3baa988b	tc_classify
+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 0x3c0b4eee	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x3c1f8ad9	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x3c2896f1	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3c3a4d5c	current_fs_time
+EXPORT_SYMBOL vmlinux 0x3c441caf	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c88bb97	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb9489b	__cleancache_init_shared_fs
+EXPORT_SYMBOL vmlinux 0x3ce35961	names_cachep
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf75658	follow_down_one
+EXPORT_SYMBOL vmlinux 0x3cf8994e	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x3d085080	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x3d2a595c	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x3d418629	dev_activate
+EXPORT_SYMBOL vmlinux 0x3d440ebc	dm_register_target
+EXPORT_SYMBOL vmlinux 0x3d54ac01	_lv1_net_stop_rx_dma
+EXPORT_SYMBOL vmlinux 0x3d652dde	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x3d8728bb	memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d93ee61	posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0x3db56825	vfs_link
+EXPORT_SYMBOL vmlinux 0x3dcb1a4a	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e06cb22	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x3e0e9023	param_set_long
+EXPORT_SYMBOL vmlinux 0x3e286dca	_lv1_get_rtc
+EXPORT_SYMBOL vmlinux 0x3e330797	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e638825	pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x3e882943	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e8b0d10	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eaf38cc	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x3eb32cb3	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x3eb44ce6	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed411f6	scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ef9f145	page_put_link
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f06a656	_lv1_construct_event_receive_port
+EXPORT_SYMBOL vmlinux 0x3f1a6729	tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3f38a525	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x3f406a3b	enable_kernel_altivec
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f6ba898	clear_user_page
+EXPORT_SYMBOL vmlinux 0x3f6c613b	__skb_warn_lro_forwarding
+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 0x3fa03a97	memset
+EXPORT_SYMBOL vmlinux 0x3fa913da	strspn
+EXPORT_SYMBOL vmlinux 0x3fbfd6ed	_lv1_gpu_open
+EXPORT_SYMBOL vmlinux 0x3fd4bf75	ns_capable
+EXPORT_SYMBOL vmlinux 0x3fd8e609	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0x3fe0d1c0	slhc_free
+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 0x405283bc	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x405c1144	get_seconds
+EXPORT_SYMBOL vmlinux 0x4077e6d4	agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x4083c7c9	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x408483fc	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x4087bd71	mutex_unlock
+EXPORT_SYMBOL vmlinux 0x40973662	sysctl_udp_mem
+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 0x40b49b91	netdev_printk
+EXPORT_SYMBOL vmlinux 0x40cffbe8	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40d07caa	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x40e084e0	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x410361b1	nf_log_register
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x4109ec02	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x4120c506	padata_alloc
+EXPORT_SYMBOL vmlinux 0x413459a2	abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x41361807	_lv1_get_logical_ppe_id
+EXPORT_SYMBOL vmlinux 0x4138d4e0	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x4145a7ce	inet_stream_ops
+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 0x41bf9ee9	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x41c046cb	__pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x41c05fdc	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x41c4f3c9	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x41d6296c	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x41d79227	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x41dbf4de	_lv1_start_lpm
+EXPORT_SYMBOL vmlinux 0x41e17c3a	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x41e2f6aa	twl6040_irq_exit
+EXPORT_SYMBOL vmlinux 0x41f1dc99	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x4207ea27	kernel_recvmsg
+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 0x42836f2e	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x42949812	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42d507f9	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x43052704	paca
+EXPORT_SYMBOL vmlinux 0x431536bd	pci_enable_device
+EXPORT_SYMBOL vmlinux 0x431f5f0b	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x4341883d	cad_pid
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x437427f6	md_integrity_register
+EXPORT_SYMBOL vmlinux 0x4377a60d	of_platform_device_create
+EXPORT_SYMBOL vmlinux 0x4384da6e	tcf_hash_create
+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 0x43a5c807	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x43bb54d5	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x43d6e33a	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x43e071bc	ip_fragment
+EXPORT_SYMBOL vmlinux 0x43ec913a	put_cmsg
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x43f491c7	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x4400cfe1	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x443d8fe9	journal_revoke
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x444441f5	of_phy_connect
+EXPORT_SYMBOL vmlinux 0x44448246	compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x445f0b52	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x4467fd1e	compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x446cc7de	ll_rw_block
+EXPORT_SYMBOL vmlinux 0x4484518a	lock_rename
+EXPORT_SYMBOL vmlinux 0x4487f025	ethtool_op_set_flags
+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 0x44f955e4	alloc_etherdev_mqs
+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 0x45704798	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x45803bd9	set_create_files_as
+EXPORT_SYMBOL vmlinux 0x458de1bf	con_is_bound
+EXPORT_SYMBOL vmlinux 0x45908da0	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x45a55ec8	__iounmap
+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 0x45eec4fd	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x46054ec3	__bread
+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 0x462d326d	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x462d8f00	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x46548208	mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x465531e7	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x466e0116	of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x466fdeff	get_fs_type
+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 0x46d65738	__dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x46f9a17c	do_sync_write
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x46ff3342	blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4737bd55	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x474087d2	pci_enable_ltr
+EXPORT_SYMBOL vmlinux 0x474f98b8	compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x47784eaa	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x477ecec6	pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x478a7a24	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47abb574	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x47b3f862	radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x48000553	mempool_create_node
+EXPORT_SYMBOL vmlinux 0x48034724	zlib_deflateReset
+EXPORT_SYMBOL vmlinux 0x480ab42a	__next_cpu_nr
+EXPORT_SYMBOL vmlinux 0x4815f22b	_lv1_gpu_attribute
+EXPORT_SYMBOL vmlinux 0x482972c0	dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x482a15de	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x48304097	netdev_alert
+EXPORT_SYMBOL vmlinux 0x483fedbc	seq_puts
+EXPORT_SYMBOL vmlinux 0x48404b9a	remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x48678b0e	sock_no_getname
+EXPORT_SYMBOL vmlinux 0x4869b152	__ip_dev_find
+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 0x48b25ff2	tcp_poll
+EXPORT_SYMBOL vmlinux 0x48bf54cb	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x48c09935	simple_write_end
+EXPORT_SYMBOL vmlinux 0x48d402ad	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x48f9cd52	default_llseek
+EXPORT_SYMBOL vmlinux 0x4908ce74	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x4920fe81	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x4931438e	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x49397442	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x4939ff90	bdget_disk
+EXPORT_SYMBOL vmlinux 0x4957646f	generic_file_mmap
+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 0x49a2d3b1	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b52823	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x49cf382a	kernel_bind
+EXPORT_SYMBOL vmlinux 0x49fd4451	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x4a06438b	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x4a0dc52d	iget5_locked
+EXPORT_SYMBOL vmlinux 0x4a17901d	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x4a2542e5	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a84b206	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x4a9da55a	__mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x4aa5b6e4	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+EXPORT_SYMBOL vmlinux 0x4abec270	neigh_parms_release
+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 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b2642dc	set_user_nice
+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 0x4b5814ef	kmalloc_order_trace
+EXPORT_SYMBOL vmlinux 0x4b58b2a5	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL vmlinux 0x4b6818c2	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x4b6e0e01	dquot_acquire
+EXPORT_SYMBOL vmlinux 0x4b6e3752	dentry_unhash
+EXPORT_SYMBOL vmlinux 0x4b6fcddc	_lv1_set_spe_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x4b7ed27b	sleep_on
+EXPORT_SYMBOL vmlinux 0x4b914195	sockfd_lookup
+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 0x4c11435a	_raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0x4c1182cb	bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c24123c	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x4c267eba	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x4c295722	bio_endio
+EXPORT_SYMBOL vmlinux 0x4c33fb08	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x4c4c956e	nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c82f0b2	do_truncate
+EXPORT_SYMBOL vmlinux 0x4cb18038	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cc8634a	agp_backend_release
+EXPORT_SYMBOL vmlinux 0x4cdab39b	inet_bind
+EXPORT_SYMBOL vmlinux 0x4cde27d8	phy_ethtool_sset
+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 0x4d447eac	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x4d473700	scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x4d60b098	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x4d6d5835	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x4d840b02	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0x4d8a2dbf	neigh_compat_output
+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 0x4dda726b	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4dddf601	wireless_send_event
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df61167	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x4dfed71c	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x4dffa879	read_cache_page
+EXPORT_SYMBOL vmlinux 0x4e00900f	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL vmlinux 0x4e507945	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e8b9c0a	inet6_bind
+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 0x4f26b10f	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f5c95ac	sock_release
+EXPORT_SYMBOL vmlinux 0x4f664db6	_lv1_insert_htab_entry
+EXPORT_SYMBOL vmlinux 0x4f6cfa6d	agp_create_memory
+EXPORT_SYMBOL vmlinux 0x4f72f478	key_put
+EXPORT_SYMBOL vmlinux 0x4f794942	sock_create
+EXPORT_SYMBOL vmlinux 0x4f9c9aa8	inode_init_owner
+EXPORT_SYMBOL vmlinux 0x4fc5c226	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe1f765	blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5028cc78	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x50354ed3	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x50446d9a	phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0x504945f6	load_nls_default
+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 0x5084db5c	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50b75cb0	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x50db4840	dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x50ecf58f	locks_free_lock
+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 0x51255ac2	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x5165fbe6	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x5197a4ae	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x519b0da3	finish_wait
+EXPORT_SYMBOL vmlinux 0x51af6050	neigh_create
+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 0x51dc7484	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x51dce73b	xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51fbff6b	sock_wfree
+EXPORT_SYMBOL vmlinux 0x52026cdf	security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x521239e0	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x5225205a	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x52363959	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x523d3eb3	kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x5248bab3	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x524dcd92	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x524f2181	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x52679d57	mmc_hw_reset
+EXPORT_SYMBOL vmlinux 0x52760ca9	getnstimeofday
+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 0x52a2410f	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x52adfc94	__destroy_inode
+EXPORT_SYMBOL vmlinux 0x52b5d356	__bio_clone
+EXPORT_SYMBOL vmlinux 0x52bd4e9b	generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52dabb8d	scsi_is_host_device
+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 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 0x5341fa6c	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x534bdf3e	sg_miter_start
+EXPORT_SYMBOL vmlinux 0x534c641f	sys_copyarea
+EXPORT_SYMBOL vmlinux 0x535e146d	file_open_root
+EXPORT_SYMBOL vmlinux 0x536467aa	journal_extend
+EXPORT_SYMBOL vmlinux 0x53668497	kernel_connect
+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 0x53931d52	generic_fillattr
+EXPORT_SYMBOL vmlinux 0x53940180	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+EXPORT_SYMBOL vmlinux 0x53a345e2	fb_set_var
+EXPORT_SYMBOL vmlinux 0x53d57b53	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x53d97d09	scsi_get_command
+EXPORT_SYMBOL vmlinux 0x53dfb54d	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0x53e2c453	tcp_v4_get_peer
+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 0x5410bff9	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x5412c7c7	up
+EXPORT_SYMBOL vmlinux 0x54225f8c	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x542508d3	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544d8225	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x54558346	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x54568b75	register_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+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 0x551efedb	generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x5526e929	agp_collect_device_status
+EXPORT_SYMBOL vmlinux 0x553c340a	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+EXPORT_SYMBOL vmlinux 0x554a4d11	mmc_can_reset
+EXPORT_SYMBOL vmlinux 0x555bd0c6	phy_detach
+EXPORT_SYMBOL vmlinux 0x55678b4b	bsearch
+EXPORT_SYMBOL vmlinux 0x5568c553	complete
+EXPORT_SYMBOL vmlinux 0x5577ef9e	udp_table
+EXPORT_SYMBOL vmlinux 0x557b3dd8	_lv1_gpu_close
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x559760ad	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x55a05d93	eth_header_cache
+EXPORT_SYMBOL vmlinux 0x55ac7297	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x55adffad	simple_write_begin
+EXPORT_SYMBOL vmlinux 0x55c3c20d	write_one_page
+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 0x5614b010	xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x562cbd31	nf_log_packet
+EXPORT_SYMBOL vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5642410c	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x5661ba94	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x56641463	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x566b46ae	pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x568804ee	_lv1_destruct_event_receive_port
+EXPORT_SYMBOL vmlinux 0x568af6e2	mark_buffer_async_write
+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 0x56d7d0ba	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x56ddd997	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x56eb0ebb	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x5708dbf9	dm_put_device
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5750d4dd	phy_stop
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x5759289f	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x575b51e0	sched_autogroup_detach
+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 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x57df8635	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x57e3015f	read_cache_pages
+EXPORT_SYMBOL vmlinux 0x57e4e999	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x57fb3db1	mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x5825f98f	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x5828bd83	pmac_resume_agp_for_card
+EXPORT_SYMBOL vmlinux 0x5831cf0f	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x5831e237	__seq_open_private
+EXPORT_SYMBOL vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x5841bb15	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x5846992d	of_get_mac_address
+EXPORT_SYMBOL vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL vmlinux 0x58c5e71c	iunique
+EXPORT_SYMBOL vmlinux 0x58e54001	genl_register_family
+EXPORT_SYMBOL vmlinux 0x58ed5583	netlink_ack
+EXPORT_SYMBOL vmlinux 0x58ef0894	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x5908e75c	security_file_mmap
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x59536d6e	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x595d0946	empty_zero_page
+EXPORT_SYMBOL vmlinux 0x596ad848	generic_listxattr
+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 0x59a3e527	__dst_free
+EXPORT_SYMBOL vmlinux 0x59b3378a	completion_done
+EXPORT_SYMBOL vmlinux 0x59d30829	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x59fd255b	of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0x5a025f7b	arch_local_irq_restore
+EXPORT_SYMBOL vmlinux 0x5a34a45c	__kmalloc
+EXPORT_SYMBOL vmlinux 0x5a3ee0c0	input_alloc_absinfo
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3	simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a93f493	del_gendisk
+EXPORT_SYMBOL vmlinux 0x5ad32772	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x5af1db28	inet_proto_csum_replace4
+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 0x5b5cae51	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x5b6aab46	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x5b6f4b69	__elv_add_request
+EXPORT_SYMBOL vmlinux 0x5b6f5ff5	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x5b9828c5	dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x5bb89435	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x5bb9a678	i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x5bf9aa4d	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x5c0222a4	cdev_alloc
+EXPORT_SYMBOL vmlinux 0x5c2a44f7	vfs_readv
+EXPORT_SYMBOL vmlinux 0x5c37f319	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x5c3c5ed9	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x5c3db119	deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x5c4c426a	path_is_under
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c6767a1	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x5c67bf74	fsnotify_destroy_mark
+EXPORT_SYMBOL vmlinux 0x5cc8e015	iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5cca691c	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x5ccc9045	_lv1_close_device
+EXPORT_SYMBOL vmlinux 0x5cf30e10	__debugger_ipi
+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 0x5d61315b	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x5d6bdce1	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0x5da01324	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x5dbbe98e	memmove
+EXPORT_SYMBOL vmlinux 0x5de10c74	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x5e2b49a2	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x5e32af17	locks_mandatory_area
+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 0x5ec0612a	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x5ecd20b4	aio_complete
+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 0x5eeda3c2	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f29d26a	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x5f2bf601	bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x5f49c60a	bdi_destroy
+EXPORT_SYMBOL vmlinux 0x5f5717b5	xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x5f5ddc2c	generic_writepages
+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 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fd2298e	strnstr
+EXPORT_SYMBOL vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x600c78ac	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x600d04eb	swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+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 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60abb316	__alloc_skb
+EXPORT_SYMBOL vmlinux 0x60b3a6cc	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x60da08c7	mmc_can_erase
+EXPORT_SYMBOL vmlinux 0x60f777cc	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x60fedbf4	__starget_for_each_device
+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 0x61423590	giveup_altivec
+EXPORT_SYMBOL vmlinux 0x61433cca	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x6166ac9f	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x61a4487c	_lv1_gpu_device_unmap
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61dcdcd3	_lv1_pause
+EXPORT_SYMBOL vmlinux 0x61e6eb40	netdev_notice
+EXPORT_SYMBOL vmlinux 0x61eb6e8d	get_write_access
+EXPORT_SYMBOL vmlinux 0x61eef2c9	_insb
+EXPORT_SYMBOL vmlinux 0x61ffbd79	llc_sap_close
+EXPORT_SYMBOL vmlinux 0x6223525a	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x6225637e	md5_transform
+EXPORT_SYMBOL vmlinux 0x6228a2ba	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0x6228c21f	smp_call_function_single
+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 0x62995a17	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x629b3920	alloc_pages_exact_nid
+EXPORT_SYMBOL vmlinux 0x62c2c1e9	key_alloc
+EXPORT_SYMBOL vmlinux 0x62c3e716	jbd2_journal_get_create_access
+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 0x634d93a8	uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x6351aac2	inode_get_bytes
+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 0x63a603ff	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x63a8f59f	dst_release
+EXPORT_SYMBOL vmlinux 0x63b541f7	__break_lease
+EXPORT_SYMBOL vmlinux 0x63cb1267	netif_carrier_off
+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 0x64207eb0	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x642ec7f6	compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x644e0eaf	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x64549a92	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x64669b2b	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x646cc6ab	pmu_poll
+EXPORT_SYMBOL vmlinux 0x6493b026	inet6_release
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL vmlinux 0x6526a092	pci_read_irq_line
+EXPORT_SYMBOL vmlinux 0x6528fb00	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x65291cff	timekeeping_inject_offset
+EXPORT_SYMBOL vmlinux 0x652f7276	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x6538f9b1	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67	dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6569bcd4	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x65bb58a2	_raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x6622d06d	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x6632e5d7	blk_init_tags
+EXPORT_SYMBOL vmlinux 0x667b72d4	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x668cf3bf	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x668da8d5	zlib_inflateIncomp
+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 0x66aa0a61	pci_dev_get
+EXPORT_SYMBOL vmlinux 0x66ad1cb3	_lv1_set_lpm_general_control
+EXPORT_SYMBOL vmlinux 0x66bcb5d8	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x66c762ee	bdget
+EXPORT_SYMBOL vmlinux 0x66c979cc	eth_header
+EXPORT_SYMBOL vmlinux 0x66cbf14b	pmac_xpram_write
+EXPORT_SYMBOL vmlinux 0x66d0ee54	vfsmount_lock_global_unlock
+EXPORT_SYMBOL vmlinux 0x66e9b78d	kfree_skb
+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 0x67069049	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x672144bd	strlcpy
+EXPORT_SYMBOL vmlinux 0x672c8cf5	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x673194b8	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL vmlinux 0x674a71df	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x6763e3fe	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0x6769d832	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x6780533c	request_key
+EXPORT_SYMBOL vmlinux 0x6792ffd3	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x679fd91a	pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67dbd806	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x6813e050	i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x68155596	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x6849a15f	flex_array_clear
+EXPORT_SYMBOL vmlinux 0x6857941a	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x68609857	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688bb21f	proto_register
+EXPORT_SYMBOL vmlinux 0x68926394	input_inject_event
+EXPORT_SYMBOL vmlinux 0x68ae9861	jbd2_journal_clear_err
+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 0x68e1aac0	pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x68e1ef51	smu_present
+EXPORT_SYMBOL vmlinux 0x68febfa5	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x69359ce7	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x6964ed06	pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x696e3f53	md_write_start
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x698ad828	__neigh_event_send
+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 0x69a0ca7d	iowrite16be
+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 0x69ea181a	path_put
+EXPORT_SYMBOL vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a19333b	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x6a282f1a	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x6a30edff	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a61f874	to_tm
+EXPORT_SYMBOL vmlinux 0x6a64462f	bdevname
+EXPORT_SYMBOL vmlinux 0x6a6c5a5e	find_inode_number
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6ab17ba6	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x6abad61e	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6adf8b44	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x6b0aefd0	swiotlb_unmap_sg
+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 0x6b589a6e	_lv1_net_add_multicast_address
+EXPORT_SYMBOL vmlinux 0x6b5dfe73	__debugger_bpt
+EXPORT_SYMBOL vmlinux 0x6b6d5d61	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x6b6f0c4b	_lv1_create_repository_node
+EXPORT_SYMBOL vmlinux 0x6b72a7f9	search_binary_handler
+EXPORT_SYMBOL vmlinux 0x6b82b47c	journal_forget
+EXPORT_SYMBOL vmlinux 0x6b8d3979	seq_read
+EXPORT_SYMBOL vmlinux 0x6b8dc63c	d_splice_alias
+EXPORT_SYMBOL vmlinux 0x6bb9ff9e	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x6bc08f53	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bcceecb	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6be89fc7	tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x6be93725	send_sig
+EXPORT_SYMBOL vmlinux 0x6c170076	of_parse_phandle
+EXPORT_SYMBOL vmlinux 0x6c1964f0	md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x6c2f7dd4	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x6c553ec6	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x6c57d16e	sock_kmalloc
+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 0x6c8950f8	unlock_super
+EXPORT_SYMBOL vmlinux 0x6c98ce62	of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x6cdfaabf	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x6ce8e628	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x6ce9e258	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x6cebe9dc	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x6cec0d8b	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x6cfffd0a	truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x6d0f1f89	dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x6d1743eb	_lv1_get_total_execution_time
+EXPORT_SYMBOL vmlinux 0x6d1fd0a4	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x6d27ef64	__bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43	clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d3a9299	mach_powermac
+EXPORT_SYMBOL vmlinux 0x6d4a9704	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x6d558cb9	mii_check_link
+EXPORT_SYMBOL vmlinux 0x6d5638bf	loop_register_transfer
+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 0x6da63659	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x6da928f4	_insw_ns
+EXPORT_SYMBOL vmlinux 0x6dc108e7	set_binfmt
+EXPORT_SYMBOL vmlinux 0x6de74b49	proc_create_data
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e033ca7	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x6e0614f8	scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x6e06424a	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x6e07da97	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x6e1a9baa	of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0x6e1ad38b	keyring_search
+EXPORT_SYMBOL vmlinux 0x6e33fdc5	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e7fb5aa	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x6e92f37d	setattr_copy
+EXPORT_SYMBOL vmlinux 0x6e9d1a1d	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ee00257	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x6f29a9b9	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x6f3fe27a	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x6f5ef93d	memchr_inv
+EXPORT_SYMBOL vmlinux 0x6f8ef9ec	bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x6f920e4e	scsi_register_driver
+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 0x6fbf4c32	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdfdc0b	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x6ff13dbf	mach_maple
+EXPORT_SYMBOL vmlinux 0x6ff62882	__skb_checksum_complete_head
+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 0x704c4365	__cputime_sec_factor
+EXPORT_SYMBOL vmlinux 0x704fa499	arp_create
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL vmlinux 0x707f66ec	dev_warn
+EXPORT_SYMBOL vmlinux 0x70ac4208	blk_start_queue
+EXPORT_SYMBOL vmlinux 0x70b8d9ac	netpoll_cleanup
+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 0x70f86c70	pmu_queue_request
+EXPORT_SYMBOL vmlinux 0x7103c791	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x715411e5	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x715a3fd7	unlock_rename
+EXPORT_SYMBOL vmlinux 0x7164fa9d	bio_free
+EXPORT_SYMBOL vmlinux 0x716efa09	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x718223ff	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x7196356e	thaw_process
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71b4cc46	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x71f6eb38	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x72032daf	d_genocide
+EXPORT_SYMBOL vmlinux 0x721b5ef2	zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x722cef25	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x723341df	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x7242e96d	strnchr
+EXPORT_SYMBOL vmlinux 0x7264bb01	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x726fe49a	udplite_prot
+EXPORT_SYMBOL vmlinux 0x727b3726	mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0x72893717	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x729b4a83	_lv1_get_spe_all_interrupt_statuses
+EXPORT_SYMBOL vmlinux 0x72a1d8cd	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL vmlinux 0x72b7f6ff	compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x72c98139	__arch_hweight64
+EXPORT_SYMBOL vmlinux 0x72d11d0b	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x73051873	register_quota_format
+EXPORT_SYMBOL vmlinux 0x730e9703	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x730ff363	param_set_uint
+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 0x732e27f1	dget_parent
+EXPORT_SYMBOL vmlinux 0x73336729	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x73376751	alloc_file
+EXPORT_SYMBOL vmlinux 0x733c3b54	kasprintf
+EXPORT_SYMBOL vmlinux 0x73411186	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x7342a187	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x734a5dfb	jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x7354863a	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x735d8503	add_wait_queue
+EXPORT_SYMBOL vmlinux 0x736c79dc	param_get_byte
+EXPORT_SYMBOL vmlinux 0x73710a3e	dqstats
+EXPORT_SYMBOL vmlinux 0x737de5e9	radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x7394c9d8	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x739cdd30	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73b992dc	idr_remove_all
+EXPORT_SYMBOL vmlinux 0x73ef9dce	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x740c38a0	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x744443c0	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x745489fc	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x7469fcfe	radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x7478d86a	dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x7485e15e	unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74ad4375	blk_start_request
+EXPORT_SYMBOL vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74cc1cbe	unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74d9e3c0	vfs_readlink
+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 0x7523d305	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x752b912c	genl_register_ops
+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 0x755e4bc9	netdev_info
+EXPORT_SYMBOL vmlinux 0x75667a83	__netdev_alloc_skb
+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 0x75788928	km_query
+EXPORT_SYMBOL vmlinux 0x7586fa39	xfrm_unregister_type
+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 0x75efe1c7	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761879cd	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x761cc8e7	bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x76207fe3	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x7631319c	ilookup5_nowait
+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 0x7677821f	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x769b25d2	_lv1_get_version_info
+EXPORT_SYMBOL vmlinux 0x76a4bd59	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x76b6f8fc	vio_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c646e1	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x7704ddf3	mii_nway_restart
+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 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x77414ca3	pci_release_region
+EXPORT_SYMBOL vmlinux 0x775a1ea0	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x776d7161	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x777a184e	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x7796807a	pci_disable_ido
+EXPORT_SYMBOL vmlinux 0x7797b5b9	page_readlink
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77a7d394	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x77afbdd7	xfrm_input
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77bfbf47	register_8022_client
+EXPORT_SYMBOL vmlinux 0x77d78057	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x77df0847	__set_personality
+EXPORT_SYMBOL vmlinux 0x77e4302e	put_page
+EXPORT_SYMBOL vmlinux 0x77ecac9f	zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77eccd3d	alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x77fa5d1f	ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x782acba5	crc_t10dif
+EXPORT_SYMBOL vmlinux 0x783bbb98	dns_query
+EXPORT_SYMBOL vmlinux 0x787a946e	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL vmlinux 0x788e943d	__ps2_command
+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 0x78dc2d3e	swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0x78dc7dea	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e971ec	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x78ed3e5c	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x78fa7a67	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x78fdabe5	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x79015100	remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x790df6ca	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x794da7cc	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x794fcbe4	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x796e5449	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x796e874b	d_instantiate
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x798236d0	pipe_lock
+EXPORT_SYMBOL vmlinux 0x799f9644	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79d31e05	twl6040_power
+EXPORT_SYMBOL vmlinux 0x79f2ddc3	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a184f71	blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x7a1b83f2	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a9afbbf	md_error
+EXPORT_SYMBOL vmlinux 0x7aa6890a	pm860x_page_bulk_write
+EXPORT_SYMBOL vmlinux 0x7aa9e259	_lv1_map_htab
+EXPORT_SYMBOL vmlinux 0x7ae73de1	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7aebce8f	generic_file_open
+EXPORT_SYMBOL vmlinux 0x7af9109d	mark_buffer_dirty
+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 0x7b22887c	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x7b5edf02	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x7b718228	ida_destroy
+EXPORT_SYMBOL vmlinux 0x7b836946	agp_enable
+EXPORT_SYMBOL vmlinux 0x7b8f4c40	key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba840dd	input_register_handle
+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 0x7bfd47a5	block_is_partially_uptodate
+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 0x7c33d296	arp_invalidate
+EXPORT_SYMBOL vmlinux 0x7c3dbaac	kstrtou8_from_user
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c5a03d2	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c61340c	__release_region
+EXPORT_SYMBOL vmlinux 0x7c903694	nf_register_hook
+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 0x7c94c18e	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x7c98845d	twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca341af	kernel_thread
+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 0x7ceaecf0	may_umount_tree
+EXPORT_SYMBOL vmlinux 0x7cfd1ed8	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x7d067349	sock_no_sendpage
+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 0x7d6ed721	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x7d771966	pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x7d85d4c9	ata_print_version
+EXPORT_SYMBOL vmlinux 0x7d9a46c7	kobject_get
+EXPORT_SYMBOL vmlinux 0x7dbe7bbd	proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dc97879	rtas_get_error_log_max
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7df0e7fb	ppp_input
+EXPORT_SYMBOL vmlinux 0x7e2f3c13	vmap
+EXPORT_SYMBOL vmlinux 0x7e394c4e	sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e692dd4	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7e87227e	slhc_compress
+EXPORT_SYMBOL vmlinux 0x7e8e2014	dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x7eadf3e7	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0x7eb412b4	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x7eb74208	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x7ebe5a88	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc	strncpy
+EXPORT_SYMBOL vmlinux 0x7efe4b56	textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f2a21b6	mount_bdev
+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 0x7f5b1e70	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x7f6fbe23	serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7f7f3318	pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x7f922985	inet_listen
+EXPORT_SYMBOL vmlinux 0x7f9f8841	idr_remove
+EXPORT_SYMBOL vmlinux 0x7fe3b51d	cap_netlink_recv
+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 0x800b7e69	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x800bb928	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0x800df1d7	groups_free
+EXPORT_SYMBOL vmlinux 0x801f5a3f	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x8025ccc6	module_put
+EXPORT_SYMBOL vmlinux 0x8034567c	blk_put_request
+EXPORT_SYMBOL vmlinux 0x803c1f2b	sock_register
+EXPORT_SYMBOL vmlinux 0x805485ab	__kfifo_out_r
+EXPORT_SYMBOL vmlinux 0x8054d1aa	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x8073231d	d_move
+EXPORT_SYMBOL vmlinux 0x808117b6	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x808cf65b	d_drop
+EXPORT_SYMBOL vmlinux 0x80a3935f	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x80e52f61	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x810b3618	param_ops_string
+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 0x815b7ae3	generic_permission
+EXPORT_SYMBOL vmlinux 0x81a07f4e	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x81c0a84f	rtas_set_indicator
+EXPORT_SYMBOL vmlinux 0x81cff456	vfs_fstatat
+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 0x822cd81d	netdev_update_features
+EXPORT_SYMBOL vmlinux 0x82488614	__lru_cache_add
+EXPORT_SYMBOL vmlinux 0x824d85f4	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x8251bcc3	bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x825751b8	netdev_boot_setup_check
+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 0x82c6bd62	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x82ceb518	skb_insert
+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 0x832bbdc5	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x83301066	lookup_bdev
+EXPORT_SYMBOL vmlinux 0x83407478	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x8363488d	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x836ef043	dev_err
+EXPORT_SYMBOL vmlinux 0x837c257d	tcp_v4_connect
+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 0x83a6416f	xfrm6_input_addr
+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 0x84247448	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x8425087c	scsi_free_command
+EXPORT_SYMBOL vmlinux 0x84255ca7	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x845124e0	ps3_mm_phys_to_lpar
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x849fe807	csum_and_copy_from_user
+EXPORT_SYMBOL vmlinux 0x84a13ac4	cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x84bd69bf	dq_data_lock
+EXPORT_SYMBOL vmlinux 0x84f9cf7b	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x8511f177	vm_event_states
+EXPORT_SYMBOL vmlinux 0x854c20e0	generic_write_end
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x8576f59d	pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x8597eb47	plpar_hcall
+EXPORT_SYMBOL vmlinux 0x85abc85f	strncmp
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85b68f0f	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x85b8e4be	__cleancache_init_fs
+EXPORT_SYMBOL vmlinux 0x85ba1b4f	prepare_creds
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x86059a7a	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x862267fc	pci_request_selected_regions
+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 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x86a1ddbb	ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x86b45060	jbd2_journal_invalidatepage
+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 0x870a5da8	udp_ioctl
+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 0x87352864	scsi_finish_command
+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 0x875730a9	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x87691103	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x876b80cd	netpoll_setup
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87aecfdd	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x87d33385	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x87e0f96f	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x87e1818d	would_dump
+EXPORT_SYMBOL vmlinux 0x880da1b1	_lv1_get_logical_partition_id
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88240d5f	register_gifconf
+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 0x885ea445	kick_iocb
+EXPORT_SYMBOL vmlinux 0x8883e037	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x88a118d2	writeback_inodes_sb_nr_if_idle
+EXPORT_SYMBOL vmlinux 0x88aaddf4	blk_integrity_is_initialized
+EXPORT_SYMBOL vmlinux 0x88c2dcfb	mmc_flush_cache
+EXPORT_SYMBOL vmlinux 0x88dad68f	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x88e84a4d	backlight_device_register
+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 0x89522c23	sk_stream_error
+EXPORT_SYMBOL vmlinux 0x895577b0	numa_cpu_lookup_table
+EXPORT_SYMBOL vmlinux 0x896d469b	blk_get_request
+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 0x89c4134a	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x89c434f0	max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x89c5a8be	smu_get_sdb_partition
+EXPORT_SYMBOL vmlinux 0x89d5538d	fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811	build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89da4432	of_iomap
+EXPORT_SYMBOL vmlinux 0x89dfa1ea	netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x89fc6f19	of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x8a21a1b1	of_device_unregister
+EXPORT_SYMBOL vmlinux 0x8a35c9e8	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x8a456c8e	key_validate
+EXPORT_SYMBOL vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a97f0e6	nf_unregister_hook
+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 0x8b128c79	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x8b1a7a66	pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b271750	macio_register_driver
+EXPORT_SYMBOL vmlinux 0x8b299303	mount_pseudo
+EXPORT_SYMBOL vmlinux 0x8b35e873	sg_last
+EXPORT_SYMBOL vmlinux 0x8b6539c0	devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x8b7fe311	kmemdup
+EXPORT_SYMBOL vmlinux 0x8b81a631	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x8b8589c7	pci_pme_active
+EXPORT_SYMBOL vmlinux 0x8b9ae9c9	dm_get_device
+EXPORT_SYMBOL vmlinux 0x8bc3d5d1	set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x8bd75a77	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x8be94e33	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x8bf2ae1f	fsl_lbc_addr
+EXPORT_SYMBOL vmlinux 0x8bfad72f	twl6040_reg_read
+EXPORT_SYMBOL vmlinux 0x8c005bf8	arp_xmit
+EXPORT_SYMBOL vmlinux 0x8c10b765	giveup_vsx
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c7a3757	of_get_named_gpio_flags
+EXPORT_SYMBOL vmlinux 0x8c8b586b	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x8c8d79c0	_lv1_gpu_context_iomap
+EXPORT_SYMBOL vmlinux 0x8caa0d04	kern_path
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ce72c8d	input_register_device
+EXPORT_SYMBOL vmlinux 0x8d06f28b	override_creds
+EXPORT_SYMBOL vmlinux 0x8d212f2f	tty_port_hangup
+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 0x8de0b5ac	mempool_create
+EXPORT_SYMBOL vmlinux 0x8de2fbc5	_lv1_get_virtual_uart_param
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e7e9142	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x8e901abd	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x8ec04552	_raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x8ecfa56f	twl6040_get_pll
+EXPORT_SYMBOL vmlinux 0x8ed3b4ae	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ee8472a	sync_blockdev
+EXPORT_SYMBOL vmlinux 0x8eea1bc9	smu_poll
+EXPORT_SYMBOL vmlinux 0x8f39d2f9	mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f636d23	kstrtol_from_user
+EXPORT_SYMBOL vmlinux 0x8f85f835	prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x8f988f9b	mmc_calc_max_discard
+EXPORT_SYMBOL vmlinux 0x8faf6a57	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x8fbb96ae	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fcac780	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x90111d01	vfs_readdir
+EXPORT_SYMBOL vmlinux 0x90198d18	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x90204b0b	pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x90372193	follow_up
+EXPORT_SYMBOL vmlinux 0x903a5087	mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x9040d47e	_dev_info
+EXPORT_SYMBOL vmlinux 0x9086743b	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x90927782	unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x90a222ce	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x90b91d55	dma_direct_ops
+EXPORT_SYMBOL vmlinux 0x90bbbf9a	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x90c130f8	generic_file_readonly_mmap
+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 0x9107a44d	mount_subtree
+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 0x913edc6f	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x91463b1d	kstrtos16
+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 0x9168c033	rtas_get_sensor
+EXPORT_SYMBOL vmlinux 0x916b3293	flush_old_exec
+EXPORT_SYMBOL vmlinux 0x916eec27	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x919d1163	tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x91aca3be	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x91ba2257	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x91c4feca	_lv1_unmap_htab
+EXPORT_SYMBOL vmlinux 0x91da2a4d	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x9210a381	padata_do_serial
+EXPORT_SYMBOL vmlinux 0x92392cd9	iov_shorten
+EXPORT_SYMBOL vmlinux 0x923a1f55	mii_link_ok
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923c54cf	idr_destroy
+EXPORT_SYMBOL vmlinux 0x923cffa3	dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x923e3694	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x92512857	freeze_bdev
+EXPORT_SYMBOL vmlinux 0x926d1f37	blkdev_get
+EXPORT_SYMBOL vmlinux 0x927094c4	phy_device_free
+EXPORT_SYMBOL vmlinux 0x927c1d05	stop_tty
+EXPORT_SYMBOL vmlinux 0x928dc8b5	rename_lock
+EXPORT_SYMBOL vmlinux 0x928fa948	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x92900f1c	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x929b3cac	vio_register_driver
+EXPORT_SYMBOL vmlinux 0x92ea4ae4	crc32_le
+EXPORT_SYMBOL vmlinux 0x92f05824	save_mount_options
+EXPORT_SYMBOL vmlinux 0x92f0758e	mmc_free_host
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x93084258	free_buffer_head
+EXPORT_SYMBOL vmlinux 0x933868db	md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x93507f1c	_lv1_gpu_memory_allocate
+EXPORT_SYMBOL vmlinux 0x936c75e1	journal_wipe
+EXPORT_SYMBOL vmlinux 0x936c9883	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0x937cc98a	is_container_init
+EXPORT_SYMBOL vmlinux 0x938270d7	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x9395b64f	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93b3ee4b	twl6040_reg_write
+EXPORT_SYMBOL vmlinux 0x93cc373d	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x93cf9012	compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x93d4c1e9	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x93e34092	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x94158f0d	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x94177077	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x9428acdb	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x942fbddd	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x943dc80f	csum_and_copy_to_user
+EXPORT_SYMBOL vmlinux 0x944e3076	phy_attach
+EXPORT_SYMBOL vmlinux 0x945cc6fe	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94ab2bf9	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x94c141c1	pci_choose_state
+EXPORT_SYMBOL vmlinux 0x94cf5470	d_alloc_root
+EXPORT_SYMBOL vmlinux 0x950123bf	unregister_console
+EXPORT_SYMBOL vmlinux 0x950b3d73	sock_rfree
+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 0x956f7421	skb_pad
+EXPORT_SYMBOL vmlinux 0x957b5f8b	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x9581ea62	kstrtouint_from_user
+EXPORT_SYMBOL vmlinux 0x9599b9d1	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x95bc4de2	sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x95ceb864	key_update
+EXPORT_SYMBOL vmlinux 0x9655af93	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x965bb23a	dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x9676c4d5	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x9685e64d	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x968a0c7b	migrate_page
+EXPORT_SYMBOL vmlinux 0x96aca9bc	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x96c46639	dump_seek
+EXPORT_SYMBOL vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d1f2a7	mmc_assume_removable
+EXPORT_SYMBOL vmlinux 0x96dc9da5	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x96defbbb	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x96f0c11d	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x96f4f55b	register_qdisc
+EXPORT_SYMBOL vmlinux 0x96fdbaff	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x9716200d	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x973988a4	kobject_add
+EXPORT_SYMBOL vmlinux 0x973fdcbe	release_sock
+EXPORT_SYMBOL vmlinux 0x9748927f	_outsw_ns
+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 0x9775342b	register_snap_client
+EXPORT_SYMBOL vmlinux 0x978238fb	padata_free
+EXPORT_SYMBOL vmlinux 0x978a081c	netdev_class_remove_file
+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 0x979e9eb6	phy_driver_register
+EXPORT_SYMBOL vmlinux 0x97abb684	pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x97b863c8	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x97f190a2	sync_inode
+EXPORT_SYMBOL vmlinux 0x97f71163	compat_ipv6_getsockopt
+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 0x9845fd71	start_tty
+EXPORT_SYMBOL vmlinux 0x98504007	mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x986481f4	sk_dst_check
+EXPORT_SYMBOL vmlinux 0x986df8ff	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x986e6135	fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987dd6cd	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x9887ad1d	of_get_next_child
+EXPORT_SYMBOL vmlinux 0x98b8e4f5	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x98bb15a3	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x98c17ab7	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x98c60c90	vio_cmo_set_dev_desired
+EXPORT_SYMBOL vmlinux 0x98d63f67	generic_readlink
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x98ffff11	fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x99126635	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x9928fd96	genphy_resume
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+EXPORT_SYMBOL vmlinux 0x996a4c28	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x9979cbff	d_path
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99a92789	jbd2_journal_errno
+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 0x99e1e131	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x99e746ec	pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x9a130c64	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a1ffb92	_lv1_clear_spe_interrupt_status
+EXPORT_SYMBOL vmlinux 0x9a38c72e	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0x9a3b0b0c	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0x9a3baae1	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x9a4fdbdf	of_mm_gpiochip_add
+EXPORT_SYMBOL vmlinux 0x9a626734	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x9a6c2531	pasemi_dma_init
+EXPORT_SYMBOL vmlinux 0x9aabc564	crc16
+EXPORT_SYMBOL vmlinux 0x9ab1ad9c	mmc_add_host
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9acb960d	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x9acdfd72	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x9ad6e9d5	__inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x9afea872	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x9b09b78c	vc_cons
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b4300e1	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x9b6cd041	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x9ba7089d	argv_split
+EXPORT_SYMBOL vmlinux 0x9ba84ffa	ip6_route_me_harder
+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 0x9c012508	fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd	memscan
+EXPORT_SYMBOL vmlinux 0x9c491f60	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c4ac71e	ping_prot
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c72d294	vio_get_attribute
+EXPORT_SYMBOL vmlinux 0x9c72f8a8	kernel_getpeername
+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 0x9cb3126a	mdiobus_write
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc4b89c	generic_cont_expand_simple
+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 0x9d2c2e04	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x9d39be6d	dump_write
+EXPORT_SYMBOL vmlinux 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d3b9a40	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x9d4c1fbf	tty_name
+EXPORT_SYMBOL vmlinux 0x9d786943	tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x9d7b59d9	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x9d7ce8dd	_raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x9daa08a1	journal_clear_err
+EXPORT_SYMBOL vmlinux 0x9dab478a	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x9db21624	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9db4607b	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x9dc14166	pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x9dcab892	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x9dce288f	napi_get_frags
+EXPORT_SYMBOL vmlinux 0x9dcfc9bc	kmem_cache_alloc_node_trace
+EXPORT_SYMBOL vmlinux 0x9dd83869	dst_destroy
+EXPORT_SYMBOL vmlinux 0x9ddf3a5c	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e0cd8ed	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x9e258c7d	pci_request_region
+EXPORT_SYMBOL vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x9e607910	audit_log
+EXPORT_SYMBOL vmlinux 0x9e8b7bbd	pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x9e90caa8	gen_pool_for_each_chunk
+EXPORT_SYMBOL vmlinux 0x9e97375d	rtas_busy_delay_time
+EXPORT_SYMBOL vmlinux 0x9e987622	tcp_close
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49	__sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ea8c1f3	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x9eaae189	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x9ebd4c04	adjust_resource
+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 0x9eea60c6	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9ef33f3c	gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x9f0dc9ec	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x9f1df2f1	dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x9f25557a	simple_readpage
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f506ef6	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x9f59a713	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x9f7418fe	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x9f78d683	__breadahead
+EXPORT_SYMBOL vmlinux 0x9f7a6f2a	agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fecbad1	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xa03ef154	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xa04a01bd	qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa056adc8	blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xa05c03df	mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa066ed6f	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa08e6320	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xa0a86164	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0c6eee8	compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xa0c89370	kblockd_schedule_delayed_work
+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 0xa12733f9	inet_sendpage
+EXPORT_SYMBOL vmlinux 0xa12b8bf6	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xa1415618	twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa159b48c	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xa16a9dc7	elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xa18ae642	kill_block_super
+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 0xa1f8fe75	wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa2127cdc	pasemi_dma_alloc_flag
+EXPORT_SYMBOL vmlinux 0xa21a7e07	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xa235aa0e	bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xa2542c85	vga_client_register
+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 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 0xa2ef34d7	rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa303d1ff	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0xa30e22f3	i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xa317e8d9	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xa326c2fb	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xa332cdd1	security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c	nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa34fbaeb	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xa35de80f	ipv4_config
+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 0xa3ee7799	udp_proc_register
+EXPORT_SYMBOL vmlinux 0xa3f6219c	netdev_err
+EXPORT_SYMBOL vmlinux 0xa447a070	simple_statfs
+EXPORT_SYMBOL vmlinux 0xa457d528	uart_get_divisor
+EXPORT_SYMBOL vmlinux 0xa45e3c2e	noop_fsync
+EXPORT_SYMBOL vmlinux 0xa464621a	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xa480c04b	_lv1_gpu_context_attribute
+EXPORT_SYMBOL vmlinux 0xa495da49	block_read_full_page
+EXPORT_SYMBOL vmlinux 0xa496d7e0	__brelse
+EXPORT_SYMBOL vmlinux 0xa4a94d26	find_next_bit_le
+EXPORT_SYMBOL vmlinux 0xa4b58821	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4bdd447	__cputime_clockt_factor
+EXPORT_SYMBOL vmlinux 0xa4c41694	kstrtos16_from_user
+EXPORT_SYMBOL vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL vmlinux 0xa4ec97ed	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xa4ee61c7	input_set_capability
+EXPORT_SYMBOL vmlinux 0xa4fa60ed	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xa4fafc5a	__scm_send
+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 0xa5c4f5ea	phy_device_register
+EXPORT_SYMBOL vmlinux 0xa5e15c7b	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xa5e9f94c	mmc_can_sanitize
+EXPORT_SYMBOL vmlinux 0xa5ebcb86	register_filesystem
+EXPORT_SYMBOL vmlinux 0xa5f34de8	seq_path
+EXPORT_SYMBOL vmlinux 0xa630a20b	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xa63316d4	pci_request_regions_exclusive
+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 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa68ef4c9	nobh_write_end
+EXPORT_SYMBOL vmlinux 0xa698350a	of_device_register
+EXPORT_SYMBOL vmlinux 0xa6b71198	register_key_type
+EXPORT_SYMBOL vmlinux 0xa6bf5913	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0xa6ca5bac	md_check_recovery
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6f9c892	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xa72a0f5b	nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa75458fa	mntput
+EXPORT_SYMBOL vmlinux 0xa77d1e5c	address_space_init_once
+EXPORT_SYMBOL vmlinux 0xa78d9eb7	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0xa793e1fc	i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xa7a28c1b	dev_open
+EXPORT_SYMBOL vmlinux 0xa7fdb922	of_find_matching_node
+EXPORT_SYMBOL vmlinux 0xa811931c	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xa816c525	schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa849005c	dquot_destroy
+EXPORT_SYMBOL vmlinux 0xa86d4444	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xa886a958	krealloc
+EXPORT_SYMBOL vmlinux 0xa8a0cce5	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xa8a52be5	of_get_parent
+EXPORT_SYMBOL vmlinux 0xa8a6f639	__check_region
+EXPORT_SYMBOL vmlinux 0xa8aedded	simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xa8ced546	_lv1_net_set_interrupt_status_indicator
+EXPORT_SYMBOL vmlinux 0xa8e044e9	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xa8f462ae	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xa8f98dbe	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xa8f9e0d7	kern_unmount
+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 0xa9707543	md_write_end
+EXPORT_SYMBOL vmlinux 0xa98393d0	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xa992e2ed	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xa9a1a9ab	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xa9bc42ac	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0xa9d315f5	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa9df07fe	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0xa9e01270	pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xa9e1115b	security_path_chown
+EXPORT_SYMBOL vmlinux 0xaa0edca8	pasemi_dma_alloc_fun
+EXPORT_SYMBOL vmlinux 0xaa6e4df5	_raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xaa7834bf	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xaabdb27c	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xaae93448	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xaaee71b4	scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL vmlinux 0xab105c34	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0xab1301e2	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0xab154564	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xab28fc9f	register_netdev
+EXPORT_SYMBOL vmlinux 0xab66f611	_lv1_set_lpm_trigger_control
+EXPORT_SYMBOL vmlinux 0xab6bde28	sysctl_max_syn_backlog
+EXPORT_SYMBOL vmlinux 0xab6bfed3	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xab861b4a	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xab9f7188	__sock_create
+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 0xabe84dab	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xac01f8d7	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac26b820	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0xac552e38	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xac6855b0	gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xacba0e2f	netdev_set_master
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xaccc93e2	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xacd14ab8	_lv1_construct_logical_spe
+EXPORT_SYMBOL vmlinux 0xacd5611a	tty_hangup
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xacfdfcca	__d_drop
+EXPORT_SYMBOL vmlinux 0xacfe8a49	generic_setxattr
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad0a6e0a	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0xad2327cc	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xad255a67	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad4bf056	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xad50cebb	i8253_lock
+EXPORT_SYMBOL vmlinux 0xad5b4df0	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xad5c3c5b	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0xad6dad2b	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xad7c22a8	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad88260a	agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0xad8a730b	find_lock_page
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadcac4a3	vfsmount_lock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0xadd95080	filp_close
+EXPORT_SYMBOL vmlinux 0xadda1f23	elevator_init
+EXPORT_SYMBOL vmlinux 0xade0c29e	register_nls
+EXPORT_SYMBOL vmlinux 0xadeffe25	_lv1_gpu_context_intr
+EXPORT_SYMBOL vmlinux 0xae175ee0	input_free_device
+EXPORT_SYMBOL vmlinux 0xae1cb73a	sys_imageblit
+EXPORT_SYMBOL vmlinux 0xae3f204b	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xae40fb9a	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xae545f06	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xae7843db	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0xae79f83b	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xae801335	ps3_sb_event_receive_port_setup
+EXPORT_SYMBOL vmlinux 0xaead229a	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xaf063510	_raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0xaf2537ea	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xaf26b929	d_alloc
+EXPORT_SYMBOL vmlinux 0xaf2d872c	prepare_to_wait
+EXPORT_SYMBOL vmlinux 0xaf3c16b1	neigh_connected_output
+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 0xaf713f75	__register_binfmt
+EXPORT_SYMBOL vmlinux 0xaf72b4a8	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xaf730d19	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xaf75864e	vio_disable_interrupts
+EXPORT_SYMBOL vmlinux 0xaf86a066	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0xaf8ed47f	cont_write_begin
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xafac5795	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xafd68c33	flex_array_free
+EXPORT_SYMBOL vmlinux 0xafe1e1eb	inet6_getname
+EXPORT_SYMBOL vmlinux 0xafe82e10	strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9	register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xafff3d1d	mempool_alloc
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb018a9bb	__rta_fill
+EXPORT_SYMBOL vmlinux 0xb018d6f2	f_setown
+EXPORT_SYMBOL vmlinux 0xb01c1b81	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xb022887f	ilookup
+EXPORT_SYMBOL vmlinux 0xb035c864	netif_rx
+EXPORT_SYMBOL vmlinux 0xb055cf77	kobject_init
+EXPORT_SYMBOL vmlinux 0xb06ba813	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0xb0819e4e	max8998_bulk_read
+EXPORT_SYMBOL vmlinux 0xb09a6e01	noop_qdisc
+EXPORT_SYMBOL vmlinux 0xb0a4a2b1	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xb0ac929c	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0bba0d4	dev_uc_del
+EXPORT_SYMBOL vmlinux 0xb0bfdcf6	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb101b330	find_vma
+EXPORT_SYMBOL vmlinux 0xb10c1c18	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0xb11add7d	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xb11fa1ce	strlcat
+EXPORT_SYMBOL vmlinux 0xb120a80f	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xb155f09e	generic_setlease
+EXPORT_SYMBOL vmlinux 0xb159ac23	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xb15bd8fa	tb_ticks_per_sec
+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 0xb19760c3	bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1c6e787	wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb1ddefa4	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xb1de1da6	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0xb1eab0ab	of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0xb22da50f	datagram_poll
+EXPORT_SYMBOL vmlinux 0xb22f0718	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xb2506977	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xb25154fb	user_path_at
+EXPORT_SYMBOL vmlinux 0xb25dd44c	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2a7fc7d	uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xb2b0d772	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0xb2c0832c	init_task
+EXPORT_SYMBOL vmlinux 0xb2d271cc	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xb2f30ba8	unregister_key_type
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb3753984	mpage_readpages
+EXPORT_SYMBOL vmlinux 0xb3863012	phy_find_first
+EXPORT_SYMBOL vmlinux 0xb39a5497	tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3af484b	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb3bf73df	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xb3ff1f69	free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb42fa354	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0xb43de026	mii_check_media
+EXPORT_SYMBOL vmlinux 0xb43eb7b6	ps3_dma_region_init
+EXPORT_SYMBOL vmlinux 0xb44931f5	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb471f1ea	lock_may_write
+EXPORT_SYMBOL vmlinux 0xb47a3de2	max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xb47a4a4a	xfrm_init_state
+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 0xb4d28bb9	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xb4de571c	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xb4f82cbb	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xb5009a86	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb540c4cc	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xb54533f7	usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb548e44f	dev_get_stats
+EXPORT_SYMBOL vmlinux 0xb5601450	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xb56bfd9e	smu_spinwait_cmd
+EXPORT_SYMBOL vmlinux 0xb56dc5f1	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xb5a15d92	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5b3661f	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xb5bf717b	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xb5c6d537	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xb5d322ef	d_set_d_op
+EXPORT_SYMBOL vmlinux 0xb5d4e71b	ethtool_op_get_ufo
+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 0xb68bfa9d	node_states
+EXPORT_SYMBOL vmlinux 0xb69d3939	tc_classify_compat
+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 0xb6cade26	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xb6ceb5a6	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xb6e3aa5a	neigh_update
+EXPORT_SYMBOL vmlinux 0xb76430ac	validate_sp
+EXPORT_SYMBOL vmlinux 0xb7888af2	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb79a717b	ps3_sb_event_receive_port_destroy
+EXPORT_SYMBOL vmlinux 0xb79d03af	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xb7a8ed68	get_user_pages
+EXPORT_SYMBOL vmlinux 0xb7caa6cd	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xb7dc0db2	mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0xb7e1073b	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xb7f61aab	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xb81f521d	__inet6_hash
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb84468fa	consume_skb
+EXPORT_SYMBOL vmlinux 0xb85c534d	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xb8623b4d	pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0xb86e4ab9	random32
+EXPORT_SYMBOL vmlinux 0xb88e4c49	scsi_host_get
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb8a28c6d	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xb8a30c7e	_lv1_add_lpm_event_bookmark
+EXPORT_SYMBOL vmlinux 0xb8ca029c	vga_get
+EXPORT_SYMBOL vmlinux 0xb8d50380	sock_no_accept
+EXPORT_SYMBOL vmlinux 0xb8ee43e4	journal_errno
+EXPORT_SYMBOL vmlinux 0xb919bf2f	put_tty_driver
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb98e8289	dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xb9a76c41	tty_free_termios
+EXPORT_SYMBOL vmlinux 0xb9ab296a	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xb9c6f5d7	scsi_init_io
+EXPORT_SYMBOL vmlinux 0xb9d283bb	sock_no_connect
+EXPORT_SYMBOL vmlinux 0xb9e386f9	skb_find_text
+EXPORT_SYMBOL vmlinux 0xba122a2c	smu_done_complete
+EXPORT_SYMBOL vmlinux 0xba25c605	sock_sendmsg
+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 0xba9943a8	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xba9f41d7	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0xbaa2782a	kstrndup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb24546c	udp_prot
+EXPORT_SYMBOL vmlinux 0xbb3a3893	of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0xbb42c603	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xbb46918f	posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0xbb55bf17	tty_port_close
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5f3a23	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xbb6b263c	sock_create_kern
+EXPORT_SYMBOL vmlinux 0xbb75d168	inet_accept
+EXPORT_SYMBOL vmlinux 0xbb95444a	dst_alloc
+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 0xbbc923cd	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xbc316de4	tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0xbc3f6afa	down_read
+EXPORT_SYMBOL vmlinux 0xbc489481	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xbc65773d	skb_unlink
+EXPORT_SYMBOL vmlinux 0xbc7c2c47	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xbc849d0f	blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xbc8df8b4	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0xbc95a3fb	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xbccdc2f6	flex_array_put
+EXPORT_SYMBOL vmlinux 0xbcfddce6	dev_change_flags
+EXPORT_SYMBOL vmlinux 0xbd26b65d	filemap_fault
+EXPORT_SYMBOL vmlinux 0xbd2ff31b	put_disk
+EXPORT_SYMBOL vmlinux 0xbd44e03a	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xbd66123b	mmc_request_done
+EXPORT_SYMBOL vmlinux 0xbd664d8b	jbd2_journal_begin_ordered_truncate
+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 0xbdb8ef37	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0xbdbf7308	blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0xbdcc8070	blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xbde5ace8	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0xbde718d3	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xbdf5c25c	rb_next
+EXPORT_SYMBOL vmlinux 0xbdf6a983	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0xbdffd0d2	posix_test_lock
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe39c3fd	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xbe3eefa7	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xbe697c16	release_firmware
+EXPORT_SYMBOL vmlinux 0xbe77aebe	down_write_trylock
+EXPORT_SYMBOL vmlinux 0xbe814159	ida_remove
+EXPORT_SYMBOL vmlinux 0xbe979aa5	free_task
+EXPORT_SYMBOL vmlinux 0xbe991d83	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xbecb9469	compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf0ccb68	input_get_keycode
+EXPORT_SYMBOL vmlinux 0xbf155341	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xbf280a3d	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xbf48c722	cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0xbf7eb35d	d_invalidate
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8ba54a	vprintk
+EXPORT_SYMBOL vmlinux 0xbf955cf9	filp_open
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbf9d400f	dev_addr_add
+EXPORT_SYMBOL vmlinux 0xbfabfe59	__debugger_iabr_match
+EXPORT_SYMBOL vmlinux 0xbfb6068e	phy_start
+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 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff8182c	plpar_hcall_norets
+EXPORT_SYMBOL vmlinux 0xc0137d7b	may_umount
+EXPORT_SYMBOL vmlinux 0xc032f95f	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc05cda51	blk_make_request
+EXPORT_SYMBOL vmlinux 0xc0654bea	d_lookup
+EXPORT_SYMBOL vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xc07967fe	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xc0823e4c	twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9	crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a10b86	dquot_alloc
+EXPORT_SYMBOL vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0a5348a	sock_i_uid
+EXPORT_SYMBOL vmlinux 0xc0b2494c	vfsmount_lock_lock_init
+EXPORT_SYMBOL vmlinux 0xc0b9de48	sock_no_listen
+EXPORT_SYMBOL vmlinux 0xc0ee18b7	d_find_alias
+EXPORT_SYMBOL vmlinux 0xc0fdf86d	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xc103bf23	skb_put
+EXPORT_SYMBOL vmlinux 0xc11a0226	inet_release
+EXPORT_SYMBOL vmlinux 0xc12ecb09	sk_free
+EXPORT_SYMBOL vmlinux 0xc13046d2	tcp_valid_rtt_meas
+EXPORT_SYMBOL vmlinux 0xc13511d7	cpumask_next_and
+EXPORT_SYMBOL vmlinux 0xc1400a41	journal_update_format
+EXPORT_SYMBOL vmlinux 0xc144ee7d	otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0xc14cd08d	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xc17dd990	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xc1bf5b15	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xc1c2dd09	__hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1d7d179	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc1dcb360	inet_frags_init
+EXPORT_SYMBOL vmlinux 0xc1ff9c3e	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xc225d992	request_firmware
+EXPORT_SYMBOL vmlinux 0xc2303e69	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc24b2f65	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc259b323	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0xc25b161b	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xc26bb8c3	__nla_put
+EXPORT_SYMBOL vmlinux 0xc28c5e5f	vc_resize
+EXPORT_SYMBOL vmlinux 0xc2c3052a	km_state_notify
+EXPORT_SYMBOL vmlinux 0xc2c69a03	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xc2ce0a9f	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xc2d5bc91	journal_start
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc2e92c95	qdisc_reset
+EXPORT_SYMBOL vmlinux 0xc2fb9ee1	_lv1_shutdown_logical_partition
+EXPORT_SYMBOL vmlinux 0xc314c3d2	__cputime_jiffies_factor
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc31dd99b	send_sig_info
+EXPORT_SYMBOL vmlinux 0xc324e35f	padata_stop
+EXPORT_SYMBOL vmlinux 0xc32500fe	request_key_async
+EXPORT_SYMBOL vmlinux 0xc326e618	sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xc3442ae3	write_cache_pages
+EXPORT_SYMBOL vmlinux 0xc34ff0bb	clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xc35e28f7	llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xc368d855	con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xc37ba4b6	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xc3b7a8b2	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xc3cad7b7	input_open_device
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3fa3b26	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xc3fe87c8	param_ops_uint
+EXPORT_SYMBOL vmlinux 0xc3ffa20b	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xc4026b02	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xc409146a	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xc409fc22	dev_deactivate
+EXPORT_SYMBOL vmlinux 0xc41f1696	_lv1_configure_virtual_uart_irq
+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 0xc48fb998	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc49d5f91	vfs_fsync
+EXPORT_SYMBOL vmlinux 0xc4b062f0	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xc4ba5a8d	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xc4c06b0b	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xc4c96ecf	twl6040_irq_init
+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 0xc50cd6e4	__xfrm_init_state
+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 0xc53bf684	blk_end_request
+EXPORT_SYMBOL vmlinux 0xc53cea31	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0xc53f10da	tty_throttle
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc556f24b	genl_register_mc_group
+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 0xc5934770	skb_trim
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5b29445	uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xc5ce441d	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc5ea6aa9	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xc5f46566	rb_augment_insert
+EXPORT_SYMBOL vmlinux 0xc627e729	devm_ioremap
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc638cc5d	alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xc64f674b	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0xc65abeb7	agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc663b075	__ioremap
+EXPORT_SYMBOL vmlinux 0xc6b22c71	__percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xc6b70f6f	swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc6d9a390	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xc702f89e	__tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0xc7380e9b	lookup_one_len
+EXPORT_SYMBOL vmlinux 0xc740c64a	memchr
+EXPORT_SYMBOL vmlinux 0xc77c9b89	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+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 0xc7a97c96	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xc7c896cf	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0xc7e9c7f1	netdev_warn
+EXPORT_SYMBOL vmlinux 0xc7ec28b0	memcmp
+EXPORT_SYMBOL vmlinux 0xc7fdee97	pm860x_page_bulk_read
+EXPORT_SYMBOL vmlinux 0xc816e32f	complete_request_key
+EXPORT_SYMBOL vmlinux 0xc81a3ac1	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xc81e83f5	module_refcount
+EXPORT_SYMBOL vmlinux 0xc83661e3	end_writeback
+EXPORT_SYMBOL vmlinux 0xc838042b	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xc83cc231	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xc83e0601	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc86a6174	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0xc87823bf	twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc88102c7	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xc897c382	sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a4bacf	idr_replace
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8c4dbb2	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xc8e31d75	_lv1_configure_irq_state_bitmap
+EXPORT_SYMBOL vmlinux 0xc8f67ea3	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0xc911fcc8	mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xc91ff664	down_read_trylock
+EXPORT_SYMBOL vmlinux 0xc9531eb5	i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xc95536e0	touch_atime
+EXPORT_SYMBOL vmlinux 0xc957ec8b	do_munmap
+EXPORT_SYMBOL vmlinux 0xc9690ebc	find_or_create_page
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL vmlinux 0xc9b143a7	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xc9c3bc3c	udp_seq_open
+EXPORT_SYMBOL vmlinux 0xc9d8b1d0	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0xc9eb4936	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xc9fc598d	pasemi_read_dma_reg
+EXPORT_SYMBOL vmlinux 0xca0c229d	pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xca1f901a	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xca4c923d	vscnprintf
+EXPORT_SYMBOL vmlinux 0xca4cbbe6	dquot_resume
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca6fb4e1	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xca7f4cd7	generic_make_request
+EXPORT_SYMBOL vmlinux 0xca825895	pmu_suspend
+EXPORT_SYMBOL vmlinux 0xca929282	uart_resume_port
+EXPORT_SYMBOL vmlinux 0xcaabf3f9	pasemi_write_iob_reg
+EXPORT_SYMBOL vmlinux 0xcaadc24c	skb_dequeue
+EXPORT_SYMBOL vmlinux 0xcab0fc0f	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xcab4f949	vfs_mknod
+EXPORT_SYMBOL vmlinux 0xcacdadeb	scsi_print_result
+EXPORT_SYMBOL vmlinux 0xcaec6b99	security_path_chmod
+EXPORT_SYMBOL vmlinux 0xcb1a68af	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xcb5c926f	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xcb63a492	wake_up_process
+EXPORT_SYMBOL vmlinux 0xcb6f1749	dev_crit
+EXPORT_SYMBOL vmlinux 0xcb7131fb	fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb7e4bea	agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0xcbb66fd3	of_node_put
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbe8b038	_lv1_configure_execution_time_variable
+EXPORT_SYMBOL vmlinux 0xcbeb8b01	__page_cache_alloc
+EXPORT_SYMBOL vmlinux 0xcbec376a	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xcc07af75	strnlen
+EXPORT_SYMBOL vmlinux 0xcc1254de	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xcc16507f	pcibus_to_node
+EXPORT_SYMBOL vmlinux 0xcc17504d	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xcc2ba556	phy_print_status
+EXPORT_SYMBOL vmlinux 0xcc2bd614	led_brightness_set
+EXPORT_SYMBOL vmlinux 0xcc36f32e	fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc89c246	pasemi_dma_alloc_chan
+EXPORT_SYMBOL vmlinux 0xcc91270b	genphy_suspend
+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 0xcd0529c7	_raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xcd09cc77	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0xcd222fd1	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd3a9142	pipe_unlock
+EXPORT_SYMBOL vmlinux 0xcd426857	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xcd6b8eec	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xcd769f62	_lv1_gpu_device_map
+EXPORT_SYMBOL vmlinux 0xcd8079b0	register_console
+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 0xcdb923a8	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xcdc0e826	__block_write_begin
+EXPORT_SYMBOL vmlinux 0xcdc1cf0f	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xcdd39a0b	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcde435b0	pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0xcdf5c88e	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce1c680a	ether_setup
+EXPORT_SYMBOL vmlinux 0xce1d32d8	__dev_get_by_name
+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 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce661d48	pci_release_regions
+EXPORT_SYMBOL vmlinux 0xce7ce037	of_translate_address
+EXPORT_SYMBOL vmlinux 0xce8b3cd8	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xce93b6b2	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xce9a3ad4	i2c_master_send
+EXPORT_SYMBOL vmlinux 0xceb0efbb	keyring_clear
+EXPORT_SYMBOL vmlinux 0xcec00a2d	lro_flush_all
+EXPORT_SYMBOL vmlinux 0xcec3a908	kstrtos8_from_user
+EXPORT_SYMBOL vmlinux 0xcee7768f	noop_llseek
+EXPORT_SYMBOL vmlinux 0xcef51982	kstrtou16
+EXPORT_SYMBOL vmlinux 0xcef7fb68	security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xcf015f7b	do_settimeofday
+EXPORT_SYMBOL vmlinux 0xcf077b3f	flush_signals
+EXPORT_SYMBOL vmlinux 0xcf11df54	phy_disconnect
+EXPORT_SYMBOL vmlinux 0xcf435c95	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xcf567a3a	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0xcf901697	__strnlen_user
+EXPORT_SYMBOL vmlinux 0xcfb7d5a0	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfd57f25	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xcfd78df3	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0xcfd8f689	mem_cgroup_update_page_stat
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xd005c85a	dcb_setapp
+EXPORT_SYMBOL vmlinux 0xd0060380	serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd023c9f0	scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xd02c03d1	dquot_drop
+EXPORT_SYMBOL vmlinux 0xd0355aa6	tcp_proc_unregister
+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 0xd093e394	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0abaf5f	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xd0cb88e4	blkdev_get_by_path
+EXPORT_SYMBOL vmlinux 0xd0d42c42	mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xd0e0449c	dquot_commit
+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 0xd1386d39	path_get
+EXPORT_SYMBOL vmlinux 0xd14afdaf	unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xd163f4be	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xd171fc62	have_submounts
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd1c85917	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xd1e91093	pci_disable_device
+EXPORT_SYMBOL vmlinux 0xd1f152ad	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0xd1fe8ebb	_lv1_get_spe_interrupt_status
+EXPORT_SYMBOL vmlinux 0xd21c1f0f	journal_stop
+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 0xd29be583	dev_kfree_skb_any
+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 0xd2ef2638	smu_cmdbuf_abs
+EXPORT_SYMBOL vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd35b2717	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xd35eb379	elv_rb_add
+EXPORT_SYMBOL vmlinux 0xd362b3db	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xd370f58e	of_device_is_available
+EXPORT_SYMBOL vmlinux 0xd38480a0	rb_augment_erase_end
+EXPORT_SYMBOL vmlinux 0xd38693c8	proc_mkdir
+EXPORT_SYMBOL vmlinux 0xd3a44a01	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xd3a568b3	generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0xd3af979c	memdup_user
+EXPORT_SYMBOL vmlinux 0xd3b24c3e	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0xd3d7ca93	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0xd3e76dc2	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xd409383c	pmu_request
+EXPORT_SYMBOL vmlinux 0xd41475cf	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xd41c1c26	neigh_destroy
+EXPORT_SYMBOL vmlinux 0xd444d1f4	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xd46ee4fc	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xd48ac40d	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xd4e30dfa	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xd4e3bd66	agp_free_memory
+EXPORT_SYMBOL vmlinux 0xd4e70fad	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xd4f32f45	register_con_driver
+EXPORT_SYMBOL vmlinux 0xd5017d75	__bforget
+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 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5d43991	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xd5e1d719	_lv1_set_ppe_periodic_tracer_frequency
+EXPORT_SYMBOL vmlinux 0xd5ea1324	journal_flush
+EXPORT_SYMBOL vmlinux 0xd5f2172f	del_timer_sync
+EXPORT_SYMBOL vmlinux 0xd616683a	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL vmlinux 0xd62129c7	set_groups
+EXPORT_SYMBOL vmlinux 0xd6279893	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xd62c833f	schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd63892b5	tcp_child_process
+EXPORT_SYMBOL vmlinux 0xd6a4f828	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0xd6c230cd	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xd6d1002a	gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0xd6d3a7b7	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xd6d5c358	inet_frag_find
+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 0xd72e1cfc	_lv1_set_lpm_spr_trigger
+EXPORT_SYMBOL vmlinux 0xd72f18fb	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xd736df75	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd761a383	ioremap_prot
+EXPORT_SYMBOL vmlinux 0xd7710167	skb_append_datato_frags
+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 0xd7a0941b	buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xd7a57545	napi_complete
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7ee4010	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xd8228212	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xd828a9ce	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0xd82f2de0	generic_removexattr
+EXPORT_SYMBOL vmlinux 0xd874d75e	simple_link
+EXPORT_SYMBOL vmlinux 0xd87e1578	nf_afinfo
+EXPORT_SYMBOL vmlinux 0xd88a7fdc	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xd89244e8	mpage_writepages
+EXPORT_SYMBOL vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL vmlinux 0xd89e4244	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0xd8a2ab95	in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8b26857	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0xd8ce7e67	clocksource_register
+EXPORT_SYMBOL vmlinux 0xd8dfab8c	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xd8e484f0	register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd920eb8e	tcp_prot
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd93ca30e	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xd93d72f8	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0xd94c33af	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0xd963ceb6	poll_initwait
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd99dbbbf	pcie_set_readrq
+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 0xd9eced76	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0xda1efac6	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xda2e5394	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xda5f04a2	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xda6f5dec	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0xda7050ab	log_wait_commit
+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 0xda894ecc	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xda8af7ad	fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa8a568	bioset_free
+EXPORT_SYMBOL vmlinux 0xdabc1ea8	fsl_lbc_find
+EXPORT_SYMBOL vmlinux 0xdacd7f79	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xdadbba24	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xdb01198e	fsl_upm_find
+EXPORT_SYMBOL vmlinux 0xdb08283d	user_revoke
+EXPORT_SYMBOL vmlinux 0xdb185e7b	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0xdb20f164	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xdb5761fd	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdb6f56b5	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb9849dc	posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xdbaa6e90	get_phy_device
+EXPORT_SYMBOL vmlinux 0xdbb24fc2	down_write
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd86da7	unlock_buffer
+EXPORT_SYMBOL vmlinux 0xdc0162bd	bh_uptodate_or_lock
+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 0xdc835a73	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xdc8bbba2	set_bh_page
+EXPORT_SYMBOL vmlinux 0xdc9498dd	down
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdcb08937	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xdcb5671d	strlen
+EXPORT_SYMBOL vmlinux 0xdcbdaa47	i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0xdcd7ce8c	__cleancache_flush_inode
+EXPORT_SYMBOL vmlinux 0xdcefb9a5	pmu_resume
+EXPORT_SYMBOL vmlinux 0xdcf9bc04	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xdd0dc4fc	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xdd10e6b3	disk_stack_limits
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd6a80e5	blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xdd955144	__debugger
+EXPORT_SYMBOL vmlinux 0xddbfc388	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0xddd39767	drop_super
+EXPORT_SYMBOL vmlinux 0xddd645e4	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xde25e79b	pci_target_state
+EXPORT_SYMBOL vmlinux 0xde2b52e5	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0xde36fce5	tty_kref_put
+EXPORT_SYMBOL vmlinux 0xde48e9ca	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0xde5364aa	da903x_query_status
+EXPORT_SYMBOL vmlinux 0xde55e2dd	__lock_page
+EXPORT_SYMBOL vmlinux 0xde6151db	tcp_memory_allocated
+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 0xde96099f	submit_bh
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdea6d749	agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0xdec5fa57	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xdede988c	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xdee19806	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xdee6eb67	bio_add_page
+EXPORT_SYMBOL vmlinux 0xdef61c42	i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xdf07ac31	tcp_seq_open
+EXPORT_SYMBOL vmlinux 0xdf0916c5	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0xdf2d3c6a	prepare_binprm
+EXPORT_SYMBOL vmlinux 0xdf2e9d22	bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xdf4c8767	ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf4d4a17	ipv4_specific
+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 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf94b875	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0xdf9ef357	block_write_end
+EXPORT_SYMBOL vmlinux 0xdfb1bc4d	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xdfc23acb	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xdfc858cd	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xdfca0dd7	nobh_writepage
+EXPORT_SYMBOL vmlinux 0xdfd26bb8	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xdfd28bb1	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xdfd68c33	mnt_pin
+EXPORT_SYMBOL vmlinux 0xdfd7c8bc	inet_select_addr
+EXPORT_SYMBOL vmlinux 0xe00ee28b	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xe00f7805	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xe01d3d76	iterate_supers_type
+EXPORT_SYMBOL vmlinux 0xe02af1a2	dst_discard
+EXPORT_SYMBOL vmlinux 0xe030a983	arp_tbl
+EXPORT_SYMBOL vmlinux 0xe0391963	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0xe044d92e	abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0xe04f7caa	dm_read_arg_group
+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 0xe0b13336	argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2	simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0bf0868	fd_install
+EXPORT_SYMBOL vmlinux 0xe0d9b996	__invalidate_device
+EXPORT_SYMBOL vmlinux 0xe0e1b5e9	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xe0e9afa7	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xe0f32f5c	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe10f25a8	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xe1136d5d	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL vmlinux 0xe1421847	mapping_tagged
+EXPORT_SYMBOL vmlinux 0xe16810af	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0xe16878e5	netdev_state_change
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+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 0xe1ca39a7	vfs_writev
+EXPORT_SYMBOL vmlinux 0xe1cb15ed	get_super
+EXPORT_SYMBOL vmlinux 0xe1eb387b	agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0xe200808d	find_get_page
+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 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 0xe26e5d92	do_splice_to
+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 0xe2b0f5ce	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xe2c66354	padata_add_cpu
+EXPORT_SYMBOL vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL vmlinux 0xe2e0c7c6	__flush_icache_range
+EXPORT_SYMBOL vmlinux 0xe2f20a40	block_commit_write
+EXPORT_SYMBOL vmlinux 0xe2ff7fd4	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xe30f9dff	pci_select_bars
+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 0xe354d8d7	mach_ps3
+EXPORT_SYMBOL vmlinux 0xe3638705	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0xe364fbb5	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xe37eab49	scsi_device_get
+EXPORT_SYMBOL vmlinux 0xe39068a5	fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xe3aea1b6	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0xe3b7fdf1	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xe3bf621b	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3e29c9c	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xe3f589fc	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0xe420ce2d	mfd_cell_enable
+EXPORT_SYMBOL vmlinux 0xe4520ee4	__insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xe464f8d0	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe4a895fa	up_write
+EXPORT_SYMBOL vmlinux 0xe4abe74f	__free_pages
+EXPORT_SYMBOL vmlinux 0xe4bd15f0	journal_lock_updates
+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 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe528811a	__serio_register_port
+EXPORT_SYMBOL vmlinux 0xe532dc97	input_register_handler
+EXPORT_SYMBOL vmlinux 0xe53a1e78	kern_path_create
+EXPORT_SYMBOL vmlinux 0xe550e08c	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0xe560a3a0	bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe59e0620	__getblk
+EXPORT_SYMBOL vmlinux 0xe5b5bd66	__inet6_lookup_established
+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 0xe6231d81	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xe63671c5	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xe65419f5	serio_rescan
+EXPORT_SYMBOL vmlinux 0xe67fe570	init_net
+EXPORT_SYMBOL vmlinux 0xe6855aae	posix_lock_file
+EXPORT_SYMBOL vmlinux 0xe68f1824	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xe692f244	blk_rq_init
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6a9c7ca	node_data
+EXPORT_SYMBOL vmlinux 0xe6b1b7fc	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xe6b6eed2	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe6bc45ed	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xe6d7d16c	pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xe6e61a7e	netif_skb_features
+EXPORT_SYMBOL vmlinux 0xe6ee0130	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe6ff03f7	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xe7178631	journal_start_commit
+EXPORT_SYMBOL vmlinux 0xe72b92c4	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xe7488967	pci_clear_master
+EXPORT_SYMBOL vmlinux 0xe74aa406	_lv1_set_dabr
+EXPORT_SYMBOL vmlinux 0xe7609b0d	generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe7788616	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xe7889474	poll_freewait
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7ab3f2a	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xe7b95177	agp_bridge
+EXPORT_SYMBOL vmlinux 0xe7c36242	filemap_flush
+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 0xe801a8f2	ip_defrag
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8116e08	__kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe820a696	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xe82cc752	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0xe86d7457	kill_fasync
+EXPORT_SYMBOL vmlinux 0xe8860bad	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xe89a3ffb	journal_ack_err
+EXPORT_SYMBOL vmlinux 0xe8a04a9e	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xe8aa91e0	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8b81643	rtas
+EXPORT_SYMBOL vmlinux 0xe8cbd792	pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe8fcda85	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xe8fde5db	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe915c4e4	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xe930898b	flush_icache_user_range
+EXPORT_SYMBOL vmlinux 0xe9521535	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe970d056	skb_append
+EXPORT_SYMBOL vmlinux 0xe9d39b3e	generic_show_options
+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 0xea22afd0	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0xea536952	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xea8a6c75	param_ops_long
+EXPORT_SYMBOL vmlinux 0xea968c96	___ratelimit
+EXPORT_SYMBOL vmlinux 0xea9855ae	blk_limits_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xeaaeb9a1	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0xead58fb9	print_hex_dump
+EXPORT_SYMBOL vmlinux 0xeb047869	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xeb165b20	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0xeb29604a	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xeb320b46	simple_rename
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb38ca53	phy_driver_unregister
+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 0xebbf1dba	strncasecmp
+EXPORT_SYMBOL vmlinux 0xebc09cea	tcp_connect
+EXPORT_SYMBOL vmlinux 0xebdbe14f	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xebdbe48c	radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0xebe94142	revalidate_disk
+EXPORT_SYMBOL vmlinux 0xebee1307	macio_dev_put
+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 0xec4d96bb	netlink_kernel_create
+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 0xeccb1015	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xecdc446b	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0xecff29b7	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed3cf962	agp_put_bridge
+EXPORT_SYMBOL vmlinux 0xed5452b1	dev_addr_del
+EXPORT_SYMBOL vmlinux 0xed5c86f4	devm_ioremap_prot
+EXPORT_SYMBOL vmlinux 0xed5e9d9f	generic_pipe_buf_confirm
+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 0xed8f322f	bh_submit_read
+EXPORT_SYMBOL vmlinux 0xed94ab46	powerpc_debugfs_root
+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 0xedf27c98	free_netdev
+EXPORT_SYMBOL vmlinux 0xedf4a9b7	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xedfbf6ec	tty_write_room
+EXPORT_SYMBOL vmlinux 0xee1a0318	iput
+EXPORT_SYMBOL vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee4a7e5d	pci_enable_ido
+EXPORT_SYMBOL vmlinux 0xee5bb20b	_lv1_panic
+EXPORT_SYMBOL vmlinux 0xee688f1b	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xee6f96e2	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xee811ae0	proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xee903086	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xee9174c5	_lv1_storage_read
+EXPORT_SYMBOL vmlinux 0xee96960d	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xee9b742d	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xeea9dbaf	bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeebcf459	nla_reserve
+EXPORT_SYMBOL vmlinux 0xeefb6db9	pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xef109449	interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xef166cca	i2c_get_adapter
+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 0xef7f0d01	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xef839213	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xef867fc7	generic_file_aio_write
+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 0xefdd4da8	skb_dst_set_noref
+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 0xeff7c003	init_special_inode
+EXPORT_SYMBOL vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL vmlinux 0xf018d9bb	__devm_request_region
+EXPORT_SYMBOL vmlinux 0xf027484c	blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xf03d25bc	dput
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf06c9a91	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0xf0a0aed5	skb_queue_head
+EXPORT_SYMBOL vmlinux 0xf0a0d603	set_anon_super
+EXPORT_SYMBOL vmlinux 0xf0a442bf	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xf0d2d74d	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xf0d2f84a	_lv1_gpu_context_free
+EXPORT_SYMBOL vmlinux 0xf0dd0441	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xf0ebd630	seq_release_private
+EXPORT_SYMBOL vmlinux 0xf0ef15b4	list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c	kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f88c59	__nla_put_nohdr
+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 0xf1ac9f13	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xf1bea6f1	schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xf1cf3036	blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e23d67	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL vmlinux 0xf202c5cb	radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xf20ce551	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xf20dabd8	free_irq
+EXPORT_SYMBOL vmlinux 0xf214dd97	led_blink_set
+EXPORT_SYMBOL vmlinux 0xf219d481	macio_enable_devres
+EXPORT_SYMBOL vmlinux 0xf22b14d8	idr_get_new
+EXPORT_SYMBOL vmlinux 0xf22c020b	input_reset_device
+EXPORT_SYMBOL vmlinux 0xf22c99e9	sock_i_ino
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf2693429	qdisc_list_del
+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 0xf2ab6149	scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xf2addc29	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xf2e1616d	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf2e333cc	blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xf2e7d893	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0xf2fa065f	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xf30390e0	task_nice
+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 0xf322a123	of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0xf322a206	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xf32b7094	cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL vmlinux 0xf33705f0	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xf338d4c3	netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf34025ac	mem_section
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3536eea	dquot_transfer
+EXPORT_SYMBOL vmlinux 0xf357db8d	pasemi_dma_set_flag
+EXPORT_SYMBOL vmlinux 0xf35c34a5	macio_request_resources
+EXPORT_SYMBOL vmlinux 0xf3633a82	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xf36d2288	make_bad_inode
+EXPORT_SYMBOL vmlinux 0xf375b76c	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987	global_cursor_default
+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 0xf3d3c0ec	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0xf3dd076c	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xf3e92e52	simple_setattr
+EXPORT_SYMBOL vmlinux 0xf3ed2e1b	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xf3f7f46b	tcp_get_md5sig_pool
+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 0xf43716d8	tcf_em_register
+EXPORT_SYMBOL vmlinux 0xf441187f	key_task_permission
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4528073	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf494f618	mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4960276	kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xf4a10b74	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0xf4aeaaef	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f1d73f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xf508ed7b	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xf51d2f32	llc_add_pack
+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 0xf5852d66	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xf594f80d	ida_get_new
+EXPORT_SYMBOL vmlinux 0xf5a62ecc	_memset_io
+EXPORT_SYMBOL vmlinux 0xf5a6bedf	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0xf5aa2710	blkdev_put
+EXPORT_SYMBOL vmlinux 0xf5c9012e	timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cd1d79	jbd2_journal_init_dev
+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 0xf5eef28e	generic_getxattr
+EXPORT_SYMBOL vmlinux 0xf60d597b	fget
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf61de3ba	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xf6213e12	pasemi_dma_clear_flag
+EXPORT_SYMBOL vmlinux 0xf6264df2	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf65b1465	scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xf6623ee6	dev_uc_init
+EXPORT_SYMBOL vmlinux 0xf663af1e	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xf6742b08	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xf69cb2d1	md_flush_request
+EXPORT_SYMBOL vmlinux 0xf6a62389	dev_uc_add
+EXPORT_SYMBOL vmlinux 0xf6ac3dab	register_framebuffer
+EXPORT_SYMBOL vmlinux 0xf6b827e3	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+EXPORT_SYMBOL vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6ecb763	_lv1_send_event_locally
+EXPORT_SYMBOL vmlinux 0xf70dc6dc	do_splice_direct
+EXPORT_SYMBOL vmlinux 0xf7161027	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xf73a1c81	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xf73ce724	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xf741c793	zlib_deflateEnd
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf7751e58	mdiobus_register
+EXPORT_SYMBOL vmlinux 0xf7795e33	nla_put
+EXPORT_SYMBOL vmlinux 0xf77bc865	d_add_ci
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7bac0ec	_lv1_set_lpm_counter
+EXPORT_SYMBOL vmlinux 0xf7d374d0	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0xf7d3ad5f	blk_free_tags
+EXPORT_SYMBOL vmlinux 0xf7d71918	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0xf7fd941b	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xf8004bfd	_lv1_disconnect_interrupt_event_receive_port
+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 0xf82022d2	journal_trans_will_send_data_barrier
+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 0xf8673a8c	bio_init
+EXPORT_SYMBOL vmlinux 0xf8906870	vio_cmo_entitlement_update
+EXPORT_SYMBOL vmlinux 0xf89843f9	schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a14b53	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xf8a255f4	netif_napi_del
+EXPORT_SYMBOL vmlinux 0xf8b7a5bd	skb_checksum
+EXPORT_SYMBOL vmlinux 0xf8d513ab	fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xf90f6774	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xf91a248b	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xf93011a3	inode_permission
+EXPORT_SYMBOL vmlinux 0xf931bab3	dev_load
+EXPORT_SYMBOL vmlinux 0xf93466ad	mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf9530848	km_state_expired
+EXPORT_SYMBOL vmlinux 0xf97bc5d3	pmac_register_agp_pm
+EXPORT_SYMBOL vmlinux 0xf9914df7	tty_port_open
+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 0xf9f8845b	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xf9fae254	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xfa1160e1	dcb_getapp
+EXPORT_SYMBOL vmlinux 0xfa1e2c9e	sock_common_recvmsg
+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 0xfa75497d	add_disk
+EXPORT_SYMBOL vmlinux 0xfa7bf330	skb_pull
+EXPORT_SYMBOL vmlinux 0xfa7e1a82	kill_litter_super
+EXPORT_SYMBOL vmlinux 0xfad45a15	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xfadb5750	pmu_unlock
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb13e923	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xfb19f60b	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xfb221598	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xfb3bdbe0	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xfb41cf34	ps2_drain
+EXPORT_SYMBOL vmlinux 0xfb5f846a	cancel_delayed_work_sync
+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 0xfb9f20af	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xfba63d1e	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL vmlinux 0xfbb2ba1f	dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xfbda3c79	pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0xfbdfa44e	igrab
+EXPORT_SYMBOL vmlinux 0xfbe27a1c	rb_first
+EXPORT_SYMBOL vmlinux 0xfbe87927	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xfbf0ecbe	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0xfbf1588b	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xfc02b7ad	sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc151c40	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xfc19d780	release_pages
+EXPORT_SYMBOL vmlinux 0xfc204cff	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc50a5f0	bioset_create
+EXPORT_SYMBOL vmlinux 0xfc64aa83	lock_super
+EXPORT_SYMBOL vmlinux 0xfc64c30a	vfs_getattr
+EXPORT_SYMBOL vmlinux 0xfc737e8a	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xfc7c8e31	sock_init_data
+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 0xfcb71334	do_splice_from
+EXPORT_SYMBOL vmlinux 0xfcc2a43c	utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfccc415e	do_sync_read
+EXPORT_SYMBOL vmlinux 0xfccc8974	open_exec
+EXPORT_SYMBOL vmlinux 0xfcd0865e	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xfcd35070	blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xfce57b4e	inet_put_port
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcf99e06	max8998_bulk_write
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd01c172	sock_no_ioctl
+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 0xfd2d038b	kill_pgrp
+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 0xfd97c987	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xfd9d3a2a	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xfd9fb76a	get_gendisk
+EXPORT_SYMBOL vmlinux 0xfda60bbb	alloc_pages_current
+EXPORT_SYMBOL vmlinux 0xfdb6cedc	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL vmlinux 0xfde4dced	mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xfded48ed	enable_kernel_fp
+EXPORT_SYMBOL vmlinux 0xfdf33486	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0xfdf382f4	skb_copy
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b	fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe046f97	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xfe0989fc	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xfe1aac63	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xfe21dbf9	copy_strings_kernel
+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 0xfe5cbdf0	blk_complete_request
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe72e67b	___pskb_trim
+EXPORT_SYMBOL vmlinux 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe78f9e9	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0xfe7c4287	nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe85e200	pci_disable_obff
+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 0xfef96e23	__scsi_print_command
+EXPORT_SYMBOL vmlinux 0xfefe6388	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0xff11494e	registered_fb
+EXPORT_SYMBOL vmlinux 0xff1765c7	rtas_call
+EXPORT_SYMBOL vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL vmlinux 0xff220192	dev_add_pack
+EXPORT_SYMBOL vmlinux 0xff34c969	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xff47f924	lease_modify
+EXPORT_SYMBOL vmlinux 0xff5abf1a	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff71440a	ata_link_printk
+EXPORT_SYMBOL vmlinux 0xff7559e4	ioport_resource
+EXPORT_SYMBOL vmlinux 0xff81d2c5	__debugger_dabr_match
+EXPORT_SYMBOL vmlinux 0xff8a3db9	gen_pool_virt_to_phys
+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 0xffa62615	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xffbf52fa	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xffc76565	__nla_reserve
+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 0x01ce8500	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0x508a5252	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x585a7f21	af_alg_register_type
+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 0x686b5637	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x692ae256	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0x9342e64c	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe64bef9e	af_alg_release
+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 0x02c9131c	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x54d509ce	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7f6417ea	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9a9a7c71	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9d06146e	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9e5fb92e	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xa066259e	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xd43a8e2b	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe6ed1e58	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf43603ab	cryptd_ablkcipher_child
+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 0x1050e183	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1280b199	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2424a8f1	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2e9ec271	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x89598582	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6bc55e3	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc493b52	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe9d74eda	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 0x0c3486dd	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1f799516	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x238d040b	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x37a09429	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3c93f0f1	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x44944579	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4b9e01e8	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6781bdcc	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7152e787	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84496922	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9c2559ec	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa4adfd2c	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd5c4f467	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd8939927	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd8e7ac79	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd9b87cf6	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe7f9d3bb	gigaset_initdriver
+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 0x1275a2e8	dm_region_hash_create
+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 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 0xd7328beb	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 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 0x69d34741	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x98b8a1d7	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x222fff87	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1e456063	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x21e42528	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2cd3a9c3	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2e2e6708	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x36e62ac6	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x41d3717c	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5d92b0cf	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x650335c3	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x673b671c	mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x86a577ac	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8858b37a	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9c80e347	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9eb8b198	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbe491651	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcf65fc42	mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe1727031	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf8b0b7cc	mantis_stream_control
+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 0x30a045cd	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5c36217a	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61c16bf6	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7e75c0bc	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x958b7f56	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb83946c7	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd87310f1	ttpci_budget_set_video_port
+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 0x636e2e9f	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe3a291ea	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 0x30094b3d	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x3f238daa	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6f914151	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc263fbe4	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0391218c	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x12778484	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x18a29424	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x18fab5d7	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1cd35297	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3d1f1ff0	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7bb44184	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8015c66b	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x98ca2417	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb2689f19	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcc5720d3	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd2add7c0	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1cae67a5	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2e2892e5	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3691fefd	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x58f5d2dc	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 0x0997539c	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x631e7e4a	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xacb0f564	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb2977b96	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xddcde01e	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0x3a4627e0	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4cd7d818	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x54e5c94d	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7c2db26b	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9e333930	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0eb22ad9	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1a247480	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1b8f98e7	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6121f841	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9adfcfc4	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb22747a5	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x18c1ab45	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1dbd8129	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ef0a2e0	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x32e1e957	usbnet_get_ethernet_addr
+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 0x4f1f79fc	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x56510969	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5c015457	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x79606f62	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x84b1370d	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8dbcec9e	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9342c018	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa32d60e2	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa9fed30	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad8bdd28	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xae8bdcbd	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbbc167f2	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf23cdea	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcff7b3e0	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd8e480f8	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeea0ed77	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfd66dc83	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe5223ab	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0d21e93d	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x143f76a5	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x16128558	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x173f3c63	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x265834d1	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x54e343f9	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5a48d40c	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6ab80da7	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6aef6437	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab3366a9	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc389188e	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc4fd28a3	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc5161c3a	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc9e1569b	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd355ef5e	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe3f9e63f	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xebf15553	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x012fb33a	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x73b212f5	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xa4906014	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xb5083ed5	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x221f9e31	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x295abda8	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e0bcd08	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4012f621	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6e1c111e	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b218ab0	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80ed695c	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x866f2ffb	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x90291f47	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9a3833aa	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbaf2f0b0	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc28ba7ed	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcd4a5a52	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe383acb0	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf8277f66	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x018d7ffe	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1020b85e	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1f406892	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3cf2dd37	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x414ad4c9	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x45248379	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x93db0d70	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x98f63c15	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x9fa29fa7	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xeeccb1ac	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0c5ab770	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x13ca3eeb	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2c9d3b20	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3b3ed38c	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x59048671	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9b00b970	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbd9b0ba4	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc43f24a6	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xcf1ab53c	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe96e56ed	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xefa7d986	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1c6c66f7	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3d28d98a	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x44b02072	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x60cd41e7	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x60de7dc1	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76acc324	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8f17d985	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd6353baf	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfec5a675	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x033a7b56	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x03f8b0c2	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a91b257	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17c2954d	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e34e093	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24038696	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25c203fa	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2fba18a7	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3369b43b	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x339dfbdd	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3557682f	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3c03baf7	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47d6679e	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50e727ad	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x576d141b	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5eb96765	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6001e895	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6ca6f3ef	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90e3b4d6	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x947908b0	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96bb6822	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x98d531ee	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x992cf2eb	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3a3d2bb	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3cd6610	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xad0b3ed0	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaefba00b	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5190a9e	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbb0cae0d	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9452158	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd2114cec	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb3b70d3	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1760728	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf0c83675	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf4f46036	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb3b194b	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfba8de49	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00acc7e6	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x113e0954	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x120b90db	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1952c4dd	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x20a6b759	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2737c245	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2db3e4c4	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35fdb382	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3798eacb	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37991750	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38375056	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e192590	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x478ea39f	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x486bd4ef	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4d5031d3	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53d8c2a3	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a73dcf1	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d4a2bc3	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5eed35c3	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x680387ab	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x68d44b77	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69ba2fa1	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b6c92c9	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b8e5fdf	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x72466c4f	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x774bd1ab	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7be77166	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8157711c	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8f4345ea	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x902a491d	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94fbd682	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa892968	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xadfbb622	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb48fb484	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb632b600	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbec025a4	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf1d9bcd	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc389c7e3	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc457f758	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5c495ab	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc80d7dd5	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcfbfc723	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd63a82e3	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe0f5b5b9	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1dbd3f1	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd757165	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x23a143ca	rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x591e4e1e	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5cafa029	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x60c93971	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x64544d0d	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x68697a5d	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7f31235d	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8e1549b4	rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x90f8e98f	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x00031a8d	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0d2e6fc5	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x37d69bc8	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b8a9650	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x55950202	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x64485f60	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e4cc62f	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73399cf8	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73709542	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90562d43	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9aa1b10d	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa0ee42ba	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa79b7434	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd30f5fe0	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xebd7f7bf	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf1228047	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x1c7b29e7	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x6c0ac15a	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xe2021551	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x1a5fe43b	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x4922cde9	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x57021d97	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x5af99b30	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x68c75e84	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xad7bfa6f	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xcd7d85ec	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+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 0x035a88f9	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04237549	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0cfccc2d	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x12683953	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17a87f1e	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19a4f008	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27fe926c	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2cb9df66	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3336c74f	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33b4f640	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x353c3495	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3889e8a7	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ca13851	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41ca012e	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4884b46d	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b6070e7	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x53b56c41	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x53d0a8a4	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x56b81912	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5766c30f	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d77c126	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5f398774	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6375bebf	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6cc0a45c	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72d330f2	cxgbi_destroy_session
+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 0x7ffa8bb2	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x91b4da34	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa9c681e3	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb595b621	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5fe39df	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd751743	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb0067b1	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc07cd67	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcd74664a	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd4b33566	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd866cdde	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd8e4156f	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe4d90fe9	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee43d0ca	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef77285e	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf32eb51e	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf396ec50	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5149ac6	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfbf6412e	cxgbi_sock_rcv_peer_close
+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 0x041ce8af	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x132cbf3a	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5200e6af	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x52f98850	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x85598568	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9278ac45	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa6422697	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xba8359ff	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcf849d61	fcoe_check_wait_queue
+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 0x012862f0	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0580acba	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e946e3b	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1041bd8c	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d73b4b2	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e66632e	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36de15fb	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36f247ad	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x402b22f4	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4218fd1a	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54713a61	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56161514	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x561d2a42	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d08de2d	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e9df235	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60f9f164	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6242c1b6	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62ee773e	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x635924b5	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6408d6d5	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66cbbd2a	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x699dfb42	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70b85b30	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x742a2f99	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x815866ca	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89d2fa14	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e7de7a7	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96469f15	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9cd9686e	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f425ebc	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa07cda79	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa27717ad	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb41f4b04	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc7ba6fb	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd745c8b	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc463002c	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf6240f0	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd057450b	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6bc2e85	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7ba2c2c	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe869febb	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec23f264	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9fab7cd	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19d16061	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x30b02e9b	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4bec044e	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5447213c	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x55132d09	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74ab8193	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x84fd267b	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb5c48998	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb759c9a8	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbeaf5eda	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc921dd51	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5b114f8	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd7db730d	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xefc476bf	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf187ea1f	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf23bfb3a	iscsi_tcp_recv_segment_is_hdr
+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 0x090d7a57	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x14aa825b	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x195f9dde	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2c00e10b	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3b4d6f63	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x410daf77	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ce4a985	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ef0bf07	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f46799e	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6867f6f1	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6b524168	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6b677f41	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ee15357	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7297161c	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f7c430e	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x93397ec9	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x949d3824	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b123cda	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa8e81310	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xacebb7a5	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb22ddf03	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb81e3779	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbfbaafb7	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1725931	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5fb1d84	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaf247de	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeb7f8e0f	iscsi_lookup_endpoint
+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 0x03b6e958	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x088c283a	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x39bff112	usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x60369a5b	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7fb10da0	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8ad960ef	usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc	usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd8b70e3d	usbip_pad_iso
+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 0xec67fdd5	sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xee01962c	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf19ca2ff	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf409e56a	usbip_xmit
+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 0x72fd10d9	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xca776435	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 0x16d15671	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2d2c6dd1	usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x357a0cb8	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x482486a2	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x637c4466	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68c28552	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6b23ce12	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7017fcd1	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x93b8a874	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x97cde7f4	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xafb79aa7	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbbe433e1	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdfd750cd	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe9d7ac73	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef78b3a9	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf1211d24	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf20d155d	usb_serial_generic_write
+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 0xfe593b46	usb_serial_handle_break
+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 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 0x17ce645d	locks_end_grace
+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 0x8353716b	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4	locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9da6058b	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9eb6d5d8	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b	lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb3299a6b	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf3192c51	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08d62e3d	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a07efe6	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x107ce210	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33088967	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3afed6f8	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x482662e3	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50b56845	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a247a14	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c3bcf86	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac6b8cd0	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xadd2edb3	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8a04e05	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1adcbf6	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe2b97fd3	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf44add41	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+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 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 0x29ba1562	o2nm_node_put
+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 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9a6c2b57	o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa0699e5b	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 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 0xd3a51704	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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe0a66672	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe76f1ffa	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe7912044	o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3657f7d5	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ff2245f	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x485042e0	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x51ba2896	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x90c82304	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf4dcb08f	dlmlock
+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 0x6e648f88	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x8d3f2564	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x9e23738b	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xc1810dba	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xce91fc1c	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xd4b30154	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/stp 0x5b88b105	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0xec6b9fe7	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x72afd999	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xeb1185a6	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 0x0e5ebd3e	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 0x361c20df	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x017d2775	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x01c755e1	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x038360e3	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x045d5d37	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x04a6f85b	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x11c1133c	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x38d5f9a2	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x42fef9ce	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4dec7877	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4faf939b	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x57fef50f	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d100657	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5feb7343	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6121f88d	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6515f7ab	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x66435d4f	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72ce4a2b	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x75c7ec27	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f544809	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x866c16d0	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8693b1a9	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d1c4a79	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x92175dfb	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9aa5bf38	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa46f2d4c	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xac523d1b	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2719f84	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd07f62f	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd03144d0	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe035ac2d	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2f03bb9	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9833247	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf0cd3f6e	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf1621b49	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4c82c3b	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf7829f7b	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0e105848	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x427e49ba	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4574dc95	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6028c972	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x60320a28	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe6ac44a3	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6377bb65	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdfc0f4a2	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x53960781	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0xece17403	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x57915352	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xbd23580c	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x20d37ba6	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xed4b8b6b	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 0xd6acf610	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 0x20c3d1e9	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x485177b6	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7a0554be	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 0xb9628b21	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc31d75fb	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfac036ed	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 0x1c898f14	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x40c6ea32	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5aa20051	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8d111b76	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xaea8bff4	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x4d920933	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 0x0f3eb747	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x10eae98c	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5cb269bd	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6de6bf2d	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x76ae5dc2	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8c1dd80d	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8e9fdc3a	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9be474ad	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9cee1de6	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb1bd7be8	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe84a0a0d	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xec6544ec	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9fa73496	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xaabf22f2	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb99816da	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcef45b1c	ieee80211_request_smps
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd857d4d9	ieee80211_remain_on_channel_expired
+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 0xfa37d42d	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 0x0df20116	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x374fa1f7	ip_set_get_ip6_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 0x58f78d49	ip_set_del
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5eaa32ca	ip_set_type_register
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x757a0a44	ip_set_get_ip4_port
+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 0x8af63155	ip_set_add
+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 0x9fc3efe9	ip_set_get_ip_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 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 0xc9e264c3	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf9d151cc	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3d9bd1db	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5b9f3b63	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xad0b6044	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd76c2b8f	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x034555b6	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06fa25c1	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0700222d	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x071e2b64	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1243b341	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x158452df	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2175d178	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2df60bef	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f00a2f9	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x302750dd	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x312147f2	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x354ccfb0	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3628bdcd	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46d16c27	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x536cab66	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x544ffbb6	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59a8d2b6	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c5a7547	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60db8789	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x615ac9e4	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62ae6a22	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67e94d54	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6be57122	__nf_conntrack_find
+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 0x753293b5	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7573eb75	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x765b9b65	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x772c34f6	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77377e72	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78ddafc9	__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 0x7a5ba847	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81833bd8	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8cf69b8e	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8da674f0	nf_ct_l3proto_find_get
+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 0x9193d247	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95ca6d87	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96b8021a	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96d4dcd9	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x974c45f5	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9da09d7b	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa040d304	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0481210	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa737166a	nf_ct_expect_unregister_notifier
+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 0xae0f44dc	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8c2bbbb	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8e55cd8	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc38c1fc1	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc654b5cb	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6857c5f	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd45153ba	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd74355e0	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd790fe2a	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb27529a	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcc13633	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1ac6dc9	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf462d749	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf509b713	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9064962	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff7f52c7	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x3ae2d376	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x2669dda9	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc87d53cd	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x037173ce	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x39fb72ab	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5a946898	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6446c99a	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7256b884	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7da60862	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8241f831	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x839119a7	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa88fc724	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xde8aef47	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x5a4c3d06	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1f2f05b7	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x31545a56	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd94d7f41	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb8fe1dc	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x451989cf	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xcde947b2	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x37f62057	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x38d823e7	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4aff00f2	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7876a98d	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x84659457	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x882a8ecd	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8995cf01	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8a531f58	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x91c30ead	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa2a7a7b2	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa3d27b38	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xae9b5838	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb26b634f	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x0fc2bdd7	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xe1325769	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xcba750de	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 0x39036496	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa9b33f11	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb09d5838	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcca37320	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd494161b	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe426a8ee	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xae971d4e	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417	xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x172b8f5b	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1d3d5ede	xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1da9b49a	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x22610adc	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3a6bb067	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x41e9f2f7	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5055c692	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x548b16f9	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x68537fec	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c5e9349	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7802ff2a	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91237808	xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9be6bbe0	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c4f31e6	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xac33a5f2	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd1eacbc7	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd6407630	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b	xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeb42fba1	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82	xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf5326528	xt_table_unlock
+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 0x032f2923	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x155f50b7	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x28745cfc	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x2fb08aa6	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e	rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3a708d03	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x69cc1043	rds_send_drop_acked
+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 0x7aa287a0	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x8108e1f7	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x866891c2	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x87e1a435	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x94bce52c	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x9543b3af	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x9b90893c	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xa1616050	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xba887441	rds_conn_create_outgoing
+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 0xcc831ab0	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0xd7d2b54e	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xd834dc11	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0xe59e73cd	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xe919bb9b	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0xebb470a1	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xfe61136a	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x07f1ec27	rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xe81a5da1	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 0x137ba4de	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1c6ff3dd	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 0x4669636d	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x50477114	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x517faceb	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x58673539	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8182262d	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x94c4f07b	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb669ef49	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb914b822	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbf8ca356	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe74ecec8	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02567fd0	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047ad0f3	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05a956d1	unix_domain_find
+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 0x065994f1	xdr_encode_opaque_fixed
+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 0x0a776445	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d0cec71	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e77a978	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9	svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1092e2dc	rpc_unlink
+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 0x1390569d	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13a96859	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x156fcee1	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16caaa5a	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17880ddb	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf25232	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e7bbc80	_copy_from_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x228c8541	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x247d40cf	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25589479	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26821fd2	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26dce072	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x274682e4	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27663002	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28e03f76	cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cd4a563	rpc_lookup_machine_cred
+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 0x3041e45f	xprt_release_xprt
+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 0x3347e5d1	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x346428d7	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361ff647	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3799255b	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b05d87	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d7cf981	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418bbeb6	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c31480	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x420f2589	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x423fa413	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x440db66f	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x451af8d3	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x495876e8	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bf795a1	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fc64ac0	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x508ed895	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548ebd6b	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x560b1efa	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x576053b1	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5799aba2	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5817cd14	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ae24542	xprt_wake_pending_tasks
+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 0x5eb6ba51	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f46b417	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62d5796f	xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62f90e31	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63e73b10	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64e95bb0	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6587b342	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66f6d4ab	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68a76597	svc_max_payload
+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 0x6eea229d	svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f9eaf89	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fbc4f68	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x745d51c4	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x757200f5	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76e3b510	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7924aace	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7991ec85	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7997ed86	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4a1d19	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b6c14cd	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bafb210	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bb29a95	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ea1e536	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80ae6009	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8127337b	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x833c29cf	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x842d96e3	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x853c7a3a	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86c74e0e	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87188ce0	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89461c6d	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a0eeb1	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb7d16b	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x909f5a6d	xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a	rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x950dffbc	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95140ce7	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9609dc8f	rpc_wake_up_next
+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 0x9c4c3df1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cdb9a83	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d3831d7	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f65ebb6	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fb0db3d	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa436c7bc	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4706247	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab3c4ef1	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabadec6f	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae254a6d	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae929f79	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+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 0xb2a24fcc	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3d1063e	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb71ea9cd	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb75ca7e9	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb80d26f2	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba7e0932	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe303384	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe7c5d40	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf7ffb3a	svc_find_xprt
+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 0xc21b06cf	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2b0edd7	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2d3b8a3	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc42cce42	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc45ef7a7	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6a40fe7	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca3eb54c	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca68c08b	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb4cb99a	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcddd4082	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce4079d6	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xceaf3ed9	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd180422d	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd27f568a	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd44a44fa	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5a55ec0	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde6af645	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0286fd9	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe060522b	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe150d112	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe51eaa3c	rpcauth_init_credcache
+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 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec42de4c	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecfee81e	rpcauth_generic_bind_cred
+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 0xf15ceb2f	xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf520b333	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ca6066	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf849dc08	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8831a13	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8ce0738	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcfe0706	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeeb144c	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff0a0561	svc_xprt_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x18a34039	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1c8fd46c	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x596b0722	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5f139689	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e37d131	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8f4ba10d	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x93be2202	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x95bb52fa	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbee109ed	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc1ebf0fd	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc50e12f0	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc78081ad	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xccee4a34	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x071083b6	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a53899e	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x15725bde	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3a053c32	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x43eae97e	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x46e43f02	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5196aafc	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e19e094	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8d30af53	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb2d1b552	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb4f1630a	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x12b1fbeb	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4b79ca0d	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbbd4838f	ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe52d0221	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 0x019354d1	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x042fe639	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0541d540	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x060f2d34	snd_hda_codec_resume_amp
+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 0x0bb12aaa	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15034a43	query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x205f81c9	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2443daee	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x271b207e	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b53d5ac	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bb10170	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d64a72d	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dcb01e6	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2deaee79	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x355f75d1	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35fbd563	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x397e41a6	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a0a98af	snd_hda_jack_tbl_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41835931	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4462dbb0	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44f4e60a	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x459a7515	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45e72546	snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ba006af	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cf846fa	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d95fe35	snd_hda_mixer_bind_switch_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 0x4dbb9c8e	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e3c45ca	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ee91797	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x522127f4	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52239e26	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52b257b7	snd_hda_get_conn_index
+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 0x578bdff5	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57ca8bcb	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x596cdd44	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ac6af62	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d64db56	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e5aabd8	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61e505e3	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68cb7c0a	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a0f8402	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x700a5a02	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70a1d2c8	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70aefab0	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70eeba23	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70fc4bf3	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78ada3e6	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78f24ab8	snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a999ad3	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7be29b8d	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e9495c3	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f2cb558	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fa5eab3	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fea6f40	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87370996	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89727047	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b0b5c32	snd_hda_spdif_out_of_nid
+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 0x8f81eb94	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x902e2f29	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9069d2c5	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93aad11a	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x966053f4	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b149ab9	snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bce2cea	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c4e8eed	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9df823f5	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6b4aef8	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa81f1315	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb44c1ae6	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb48f925b	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb42aa1d	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbe3fa34	snd_hda_override_pin_caps
+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 0xc1544f86	snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1be60ca	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2aa1ffe	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3874170	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6123e47	snd_hda_ch_mode_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 0xc76dd5be	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca08f6d3	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca4f1510	snd_hda_create_spdif_share_sw
+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 0xcdd856b9	snd_hda_check_board_codec_sid_config
+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 0xd2a667ae	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd37a71d2	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc0b4535	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0667a9e	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8bafba7	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb6dc690	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed202fe7	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed556130	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee72b723	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef2b4093	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf354234e	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf74b6070	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7cb28a0	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7efc0c2	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa6f67e8	snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdfabba7	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe99c10a	snd_hda_bus_reboot_notify
+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 0x00ff5fa9	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01eb4e6f	snd_soc_default_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x046159ac	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x055105ec	snd_soc_default_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07490d7f	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f372801	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x132bb788	snd_soc_poweroff
+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 0x19477b0f	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20c03390	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x217ed18c	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2465dd5a	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a0b425b	snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a1dffe2	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a75c20e	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e5d20ed	snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f77eee1	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x309edfca	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x351cdd29	snd_soc_codec_writable_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 0x380ddce9	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38594a4d	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3973ab58	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3be25a29	snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c807b98	snd_soc_put_volsw_s8
+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 0x42fd5ab7	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450d53dd	snd_soc_cache_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c96e61c	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4df0f63d	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x513d7ecf	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52bc43f8	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x533df965	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56e79c02	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x580c6c48	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ac370b4	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fd5fe7e	snd_soc_dai_set_pll
+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 0x6992c326	snd_soc_suspend
+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 0x6ca5b899	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6cc58450	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f13859e	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70aae070	snd_soc_register_dai
+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 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 0x7b9f7f9f	snd_soc_bulk_write_raw
+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 0x8655229e	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f12b9d8	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92e1fcb9	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92fb7b3c	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95df0304	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x973ad136	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b7c4332	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0597481	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7b0c94f	snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8b702f7	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa63a745	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaad6782d	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab9b2d69	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabc4e530	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabee6686	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac806047	snd_soc_register_codec
+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 0xb69b2f0b	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7387155	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba2ecb1d	snd_soc_platform_read
+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 0xbc4c0067	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc70e383	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf964516	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc475524e	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca83c511	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce26e978	snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce29c972	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf527474	snd_soc_register_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd26760d4	snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6e88163	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9b1831d	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9d7e02f	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda1debc9	dapm_mark_dirty
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfbd7614	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb282a73	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb2ad00c	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecc11740	snd_soc_dai_digital_mute
+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 0xf156beac	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5481a9e	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd1047d5	snd_soc_read
+EXPORT_SYMBOL_GPL vmlinux 0x001a48d3	tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL vmlinux 0x0024d001	sysfs_create_bin_file
+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 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 0x01c437cf	rtnl_link_unregister
+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 0x023d36ad	blkio_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x02b84344	regulator_get
+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 0x03f20514	crypto_aead_type
+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 0x045b5434	irqd_to_hwirq
+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 0x04ea8706	__iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x0529c600	ps3_free_mmio_region
+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 0x05609950	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x057c7099	__mnt_is_readonly
+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 0x06122774	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a	getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x063e9c26	user_describe
+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 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 0x07525f82	__rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x075cbd18	blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x077aac67	locks_release_private
+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 0x07cd3c70	tcp_register_congestion_control
+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 0x08d5ec48	wm8350_set_bits
+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 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 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 0x0ae2d416	dm_noflush_suspending
+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 0x0b7d142c	crypto_alloc_instance2
+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 0x0c482cff	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x0c5cae8a	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x0ca70fb2	sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x0cb2fa2e	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f	crypto_it_tab
+EXPORT_SYMBOL_GPL vmlinux 0x0cd10a4e	work_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x0ce7a484	inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x0d1db07c	swiotlb_bounce
+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 0x0d550e5b	cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0d6fe598	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x0d73d159	inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x0d76d3b5	inet_unhash
+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 0x0dfa4156	inet_csk_compat_getsockopt
+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 0x0f776b17	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x0fa437cd	wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x0fbe08f4	fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x0fd7d0da	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0x0feabb13	crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x1028d80f	ata_pci_remove_one
+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 0x1172ce54	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL vmlinux 0x11d3a5c6	pstore_register
+EXPORT_SYMBOL_GPL vmlinux 0x11d6479b	rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x11decc08	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce	__gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x121604a4	sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3	add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x123b8426	inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x124b73cf	sock_prot_inuse_get
+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 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 0x13b2a946	register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13cc15ed	__get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13	__wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x13f226eb	class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x13f78a9b	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x145fa14b	usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x149313e6	bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x14d5945d	of_fdt_unflatten_tree
+EXPORT_SYMBOL_GPL vmlinux 0x1556756b	usermodehelper_is_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x1574703d	init_srcu_struct
+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 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 0x16a72437	init_dummy_netdev
+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 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 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 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 0x192a7163	ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x192cef22	unregister_ftrace_function
+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 0x1963d192	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x1976ae6d	con_debug_enter
+EXPORT_SYMBOL_GPL vmlinux 0x1979bcaa	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x198b444d	dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x198c15cd	crypto_create_tfm
+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 0x19e9d6cf	tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60	regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362	__ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a3bd77d	unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x1a5f1368	tpm_show_durations
+EXPORT_SYMBOL_GPL vmlinux 0x1a863ea6	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3	ps3_os_area_get_rtc_diff
+EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x1b1f5ad0	gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x1b29187c	bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x1b5087c3	__css_put
+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 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 0x1cc2cca4	ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x1cf82066	tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x1cfde37f	device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x1d111b59	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x1d1fda0e	power_supply_set_battery_charged
+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 0x1daeed6a	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1dbb8458	bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x1de6e06c	vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x1df06522	skb_to_sgvec
+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 0x1f140720	inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x1f2cceea	ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x1f780ba2	tps65912_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8	panic_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9	ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x1fc9894b	__blk_put_request
+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 0x205361da	crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x205fb3c4	__inet_hash_nolisten
+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 0x211850f5	htab_hash_mask
+EXPORT_SYMBOL_GPL vmlinux 0x212c75de	crypto_tfm_in_queue
+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 0x222e5a61	regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x223f20cf	dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x2240370a	alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x225a5fc9	tps65912_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x2277f44e	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x22802a0c	unregister_net_sysctl_table
+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 0x23012939	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x230e0698	__clocksource_updatefreq_scale
+EXPORT_SYMBOL_GPL vmlinux 0x235a1530	xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0x23818f25	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x238b6273	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x23f92ab7	ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c	ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x245291ce	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2492506f	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x24a92323	replace_page_cache_page
+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 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 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 0x259cd616	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x25e883d8	hrtimer_init_sleeper
+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 0x26774666	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x2694f5b1	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x269a68e8	tcp_is_cwnd_limited
+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 0x26e9106c	regmap_exit
+EXPORT_SYMBOL_GPL vmlinux 0x2712b106	usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x271cf2ce	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x274d1134	kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0x27567e24	kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x2771748e	posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x27aeb472	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f	usb_amd_find_chipset_info
+EXPORT_SYMBOL_GPL vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL vmlinux 0x280c5cb6	pmf_unregister_irq_client
+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 0x289574f5	dm_path_uevent
+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 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 0x2933eb9b	sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x293b809d	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x293ff5c9	tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x295a58b2	exportfs_encode_fh
+EXPORT_SYMBOL_GPL vmlinux 0x296592fb	pci_pasid_features
+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 0x2a103b51	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca	lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a60be03	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a6d8859	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2a8be383	rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x2ac96595	driver_find_device
+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 0x2b984dc0	lookup_instantiate_filp
+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 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 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2c800e19	ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd	regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2cb36b4a	pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2cc3e675	pmac_i2c_close
+EXPORT_SYMBOL_GPL vmlinux 0x2cd743db	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559	kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee	unregister_oldmem_pfn_is_ram
+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 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 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 0x2e8e2944	irq_find_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2ebdfe99	sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2eded608	spi_setup
+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 0x30aefbd9	crypto_alloc_ablkcipher
+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 0x31266931	con_debug_leave
+EXPORT_SYMBOL_GPL vmlinux 0x3184f1b8	crypto_enqueue_request
+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 0x327fc92e	pm_runtime_no_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0x32888a52	css_lookup
+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 0x32e5da04	kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x32f08411	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3303f70e	fib_rules_lookup
+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 0x338c0db7	xfrm_audit_state_replay
+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 0x342c7f92	inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x34364408	device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x34365dec	crypto_larval_alloc
+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 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 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 0x360841eb	__rtnl_link_unregister
+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 0x3685fe49	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x36875389	__timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36c40804	crypto_aes_set_key
+EXPORT_SYMBOL_GPL vmlinux 0x36c4878f	fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3766b796	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x377628db	fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0x3779d67d	swiotlb_tbl_map_single
+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 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 0x38f6fb5f	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0x38f9d786	ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x38fa2132	ata_ehi_clear_desc
+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 0x39630e73	ip_build_and_send_pkt
+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 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 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 0x3a62546c	crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x3a6ee67e	sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x3aa1af3f	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x3acd394c	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc	ps3_vuart_irq_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3b3e0b1e	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x3b772b7d	rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x3bb85dcb	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x3bd18a0c	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x3be0bf13	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x3be0fc4c	show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c	usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c1d442b	regmap_read
+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 0x3ce6b594	aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x3cee86c9	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f	register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d150741	__inet_lookup_listener
+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 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 0x3de9cae1	crypto_remove_final
+EXPORT_SYMBOL_GPL vmlinux 0x3dfc0504	tpm_show_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x3e206fd7	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x3e50a4f5	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x3e5345bf	device_del
+EXPORT_SYMBOL_GPL vmlinux 0x3edad223	usb_usual_clear_present
+EXPORT_SYMBOL_GPL vmlinux 0x3edcb9f0	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x3ee41ce4	inet_csk_get_port
+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 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 0x40192b7f	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0x401a4473	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x402334c4	apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x405aa9b3	key_type_encrypted
+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 0x415aa16a	tpm_open
+EXPORT_SYMBOL_GPL vmlinux 0x41670511	dm_underlying_device_busy
+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 0x43289c9b	ahci_ops
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6	__gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x433936b8	fb_sys_write
+EXPORT_SYMBOL_GPL vmlinux 0x433cf3f7	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x4344b9b3	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL vmlinux 0x4376807e	user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x43ba70bc	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x43c64d6b	crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x43cc0951	ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x440717f1	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x4425d925	scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x4428d6fa	wm831x_set_bits
+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 0x446b1c4f	rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x449256f9	tty_perform_flush
+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 0x44f703b3	set_cpus_allowed_ptr
+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 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 0x461e723d	blkcipher_walk_phys
+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 0x467ef5d9	crypto_grab_aead
+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 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x4739ad57	rtnl_af_unregister
+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 0x47f02615	__put_net
+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 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 0x48ac6636	__audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x48ba75d7	pci_disable_ats
+EXPORT_SYMBOL_GPL vmlinux 0x48c62e4a	eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x48f62f4e	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x490a1651	blk_rq_check_limits
+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 0x49bd49c3	shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x49c61b1f	kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x49cb6558	scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x4a143eb7	sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x4a274d59	evm_inode_init_security
+EXPORT_SYMBOL_GPL vmlinux 0x4a36389c	crypto_default_rng
+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 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 0x4c3c0050	skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c910690	nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x4c93624a	usb_get_intf
+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 0x4d3e9297	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4d50ad6b	ata_sff_irq_on
+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 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 0x4e28d95f	shash_free_instance
+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 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 0x4f74273e	rio_release_inb_mbox
+EXPORT_SYMBOL_GPL vmlinux 0x4f768668	crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x4f788606	pmf_register_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0x4f89ba69	xfrm_output
+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 0x5091b823	ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x50962003	crypto_dequeue_request
+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 0x512bc330	ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x516afb32	tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x51846493	trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x518ccb2b	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0x51a19d3a	pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x51b5fcad	aead_geniv_alloc
+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 0x5288e1de	regcache_sync
+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 0x534c1e46	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x5351e7be	skcipher_geniv_free
+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 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 0x541bd60a	irq_work_run
+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 0x546e8a1a	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5492723d	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54f95bc9	tcp_unregister_congestion_control
+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 0x558f4e2c	sk_clone
+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 0x5820dcc5	ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x583f007f	class_dev_iter_exit
+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 0x58fbf05a	queue_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x58fe9409	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5948205e	i2c_adapter_type
+EXPORT_SYMBOL_GPL vmlinux 0x59506138	sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x59689ba7	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5989f218	pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x599c380a	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x59e9245d	raw_unhash_sk
+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 0x5a16c9b8	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x5a214eb5	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x5a2a45ab	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x5a2e0eed	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5a337eb9	vfs_kern_mount
+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 0x5af03d29	__module_address
+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 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 0x5c2548b9	spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x5c2eb297	dequeue_signal
+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 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 0x5d96db49	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0x5d9d5d3e	pmac_i2c_adapter_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618	register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd80679	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL vmlinux 0x5e09c293	posix_clock_register
+EXPORT_SYMBOL_GPL vmlinux 0x5e769986	ps3_os_area_get_av_multi_out
+EXPORT_SYMBOL_GPL vmlinux 0x5e855774	sched_setscheduler
+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 0x5f53bb00	netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x5f5a5539	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x5f6bc6ab	sysfs_create_link
+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 0x60a4ca3e	usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x60b30def	__pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x60c854c2	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x60d889b1	flush_vsx_to_thread
+EXPORT_SYMBOL_GPL vmlinux 0x60e2722e	pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4	regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x6115e9f9	register_net_sysctl_rotable
+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 0x61634f05	lock_flocks
+EXPORT_SYMBOL_GPL vmlinux 0x6169909a	inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x616f217d	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x619f4dcf	event_storage_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x61a90c54	klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x61b35b60	pci_find_next_capability
+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 0x62513a03	__trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x629a7d8a	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x62b59ca0	rio_request_inb_pwrite
+EXPORT_SYMBOL_GPL vmlinux 0x62c83313	rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1	ata_scsi_unlock_native_capacity
+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 0x637a2b9c	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x63b3e706	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0x63d1ee88	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x63d3841f	mnt_want_write
+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 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 0x65e2f753	inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+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 0x6730bae3	yield_to
+EXPORT_SYMBOL_GPL vmlinux 0x6736b637	blkcipher_walk_done
+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 0x67cefb8a	ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x67d2c731	skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x67d4dde0	regmap_bulk_read
+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 0x686c703f	xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c	unregister_pm_notifier
+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 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 0x6a1321fe	crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x6a15676e	page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x6a22eedf	md_do_sync
+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 0x6a8d3084	inet6_destroy_sock
+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 0x6b594c2a	regmap_init
+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 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 0x6dcbce6b	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x6e0b2885	gpiochip_add
+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 0x6f162664	stmpe_disable
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f95304e	ata_std_postreset
+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 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 0x717fb0ce	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x71a0353c	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x71b01ced	clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x71ca6c64	blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x71dc9998	crypto_il_tab
+EXPORT_SYMBOL_GPL vmlinux 0x721b4036	blk_queue_bio
+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 0x72fd157f	pcibios_unmap_io_space
+EXPORT_SYMBOL_GPL vmlinux 0x7316fa06	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL vmlinux 0x7317c482	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL vmlinux 0x73412f26	ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x736537b2	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x7372039f	blk_add_driver_data
+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 0x74ecc993	find_module
+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 0x75dcdfb5	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x75e6e037	hash_page
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7604a5b7	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd	dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7665e913	devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x7674a96a	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x767aff5a	pm_runtime_forbid
+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 0x775b858e	debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x775c3476	sysfs_merge_group
+EXPORT_SYMBOL_GPL vmlinux 0x77751974	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x779f8b30	dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x77eaf1db	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x781b84c0	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7822c207	vfs_listxattr
+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 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 0x791f8e8b	single_release_net
+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 0x79794e04	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7996a4c6	crypto_ahash_finup
+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 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 0x7d45c750	debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46	pm_wq
+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 0x7e274dde	crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8	scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e63db3f	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d	usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7eaf6f4d	usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x7ed56079	ip6_sk_dst_lookup_flow
+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 0x7f4324d6	console_drivers
+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 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 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 0x80f3268f	__trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0x80ffa2c1	usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x815f071c	perf_event_refresh
+EXPORT_SYMBOL_GPL vmlinux 0x818782a5	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x81998c97	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x81b88838	platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x81bfad6f	vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x81d4edf1	crypto_mod_put
+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 0x82faab43	ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x83116c90	debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x8350ff17	crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x83706d26	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x838b13e7	ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x838c7015	inet_csk_route_child_sock
+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 0x83ec146f	flush_altivec_to_thread
+EXPORT_SYMBOL_GPL vmlinux 0x83fa438f	rio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x84433ea3	rio_mport_send_doorbell
+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 0x850934f2	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x851cc01d	led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b	inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x8555c30b	pcibios_map_io_space
+EXPORT_SYMBOL_GPL vmlinux 0x85605652	spi_register_driver
+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 0x8636d65a	sdio_release_host
+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 0x8715cc03	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x8726e475	max8997_read_reg
+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 0x8868572e	platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x88961931	usb_is_intel_switchable_xhci
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3	kgdb_active
+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 0x89cae5f7	regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x89cc63fb	crypto_alg_mod_lookup
+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 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x8af84199	tpm_pm_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8b14b941	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x8b1f667d	crypto_unregister_template
+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 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 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x8c163dc4	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x8c3281cb	sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x8c84b23b	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x8cb545a0	shmem_truncate_range
+EXPORT_SYMBOL_GPL vmlinux 0x8cc17dda	sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0x8cc52630	inet_hash_connect
+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 0x8d94d8cc	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x8da6c89a	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8dc62225	inet6_csk_reqsk_queue_hash_add
+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 0x8e16034d	sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x8e3dfd10	flush_kthread_worker
+EXPORT_SYMBOL_GPL vmlinux 0x8e58df6b	usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x8ed903f1	dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x8edb2f64	sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x8ef4f417	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8f1452f4	__tracepoint_cpu_idle
+EXPORT_SYMBOL_GPL vmlinux 0x8f2fdfeb	regcache_cache_only
+EXPORT_SYMBOL_GPL vmlinux 0x8f3d99f6	sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x8f4d032c	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x8f59bc1e	put_compat_timespec
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f808a0f	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x8ffe3759	inet6_lookup_listener
+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 0x91366b73	crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6	profile_event_register
+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 0x925c4efe	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x928ba98c	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x92aff6ff	ata_msleep
+EXPORT_SYMBOL_GPL vmlinux 0x92b15cd1	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x92cc923b	__pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92e5faa3	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x930316c4	slice_get_unmapped_area
+EXPORT_SYMBOL_GPL vmlinux 0x932806f7	skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x9352800a	dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x937a05e6	crypto_alloc_instance
+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 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 0x9432548d	find_pid_ns
+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 0x94a3007b	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x94a50c8f	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94b75e85	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x94c2d899	do_kern_mount
+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 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 0x959a58e9	perf_event_release_kernel
+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 0x96e0f8b0	raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x97046784	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x971d5a6f	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x972ae718	skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x978f24b1	__wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x979adf91	gen_pool_size
+EXPORT_SYMBOL_GPL vmlinux 0x979bb15d	blk_rq_prep_clone
+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 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 0x9834aa18	find_symbol
+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 0x99e2573f	user_read
+EXPORT_SYMBOL_GPL vmlinux 0x99f04002	__class_register
+EXPORT_SYMBOL_GPL vmlinux 0x99f22d5f	unregister_hw_breakpoint
+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 0x9a4f5596	rdev_get_drvdata
+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 0x9b1cb320	css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f	register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x9b711b14	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x9b853e26	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e	unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9ba8d1d1	rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x9bc53d60	platform_get_irq
+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 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 0x9dae812a	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x9dd8903b	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9dfdf5f6	edac_get_sysfs_class
+EXPORT_SYMBOL_GPL vmlinux 0x9e0abb0a	net_ns_type_operations
+EXPORT_SYMBOL_GPL vmlinux 0x9e179951	ip6_dst_lookup_flow
+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 0x9e920ff1	set_task_ioprio
+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 0x9f95cc20	regulator_bulk_get
+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 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 0xa0b5e949	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xa0bf0dc9	unregister_spu_syscalls
+EXPORT_SYMBOL_GPL vmlinux 0xa0c19c17	find_get_pid
+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 0xa29359ed	dev_forward_skb
+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 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 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 0xa45e590f	regmap_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa473aa73	shash_ahash_digest
+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 0xa4ad8a00	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xa4d0545c	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL vmlinux 0xa5053519	gpiochip_find
+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 0xa5c1edfb	__inet_lookup_established
+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 0xa62ba4d4	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xa679b11a	sata_std_hardreset
+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 0xa70648ae	ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0xa710ab8d	fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0xa7205a3c	rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xa7a6e535	scsi_target_block
+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 0xa8636fa8	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xa8941567	bsg_job_done
+EXPORT_SYMBOL_GPL vmlinux 0xa8a91f9d	regmap_write
+EXPORT_SYMBOL_GPL vmlinux 0xa8abffd4	sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xa8b305dc	edac_class
+EXPORT_SYMBOL_GPL vmlinux 0xa8cc6aee	__ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416	gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9087d7e	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xa95cefc6	tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xa97e77ef	drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36	ps3_get_firmware_version
+EXPORT_SYMBOL_GPL vmlinux 0xa99a4948	add_page_wait_queue
+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 0xa9f3f261	net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa0e5a48	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xaa5f86e8	tpm_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xaa852c93	regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xab14110a	stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0xab254543	__netpoll_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0xab262b28	usb_hcd_map_urb_for_dma
+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 0xabb5dffd	blk_add_request_payload
+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 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 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 0xad575481	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39	nf_net_ipv4_netfilter_sysctl_path
+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 0xadfe9055	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xae094e6e	power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae15b81f	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xae3dae84	of_alias_get_id
+EXPORT_SYMBOL_GPL vmlinux 0xae573161	spu_add_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0xae9c024b	crypto_alg_lookup
+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 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 0xafe998b9	tps6586x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb004a8ad	synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xb032df3f	fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xb05bbe6c	__put_task_struct
+EXPORT_SYMBOL_GPL vmlinux 0xb080bed3	debugfs_create_size_t
+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 0xb12c80a8	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xb140d14c	ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xb1425b32	dm_table_add_target_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb16df5bb	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0xb17cb952	i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xb17f9919	crypto_shash_update
+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 0xb1e090a8	crypto_ahash_final
+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 0xb2c0c55a	cgroup_attach_task_all
+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 0xb3de838e	inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0xb3f35732	securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xb416bf99	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xb42c373b	of_property_read_string_index
+EXPORT_SYMBOL_GPL vmlinux 0xb4368f0a	ps3_sys_manager_register_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb48288dc	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0xb49b9253	inet6_csk_addr2sockaddr
+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 0xb4f7689f	bdi_writeout_inc
+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 0xb59882f6	register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xb5afa528	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0xb5d6ab4f	device_schedule_callback_owner
+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 0xb6241d44	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xb625259d	cbe_spu_info
+EXPORT_SYMBOL_GPL vmlinux 0xb643c250	xics_wake_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb6973ab5	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xb69aff4b	transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661	ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6af02f7	seq_release_net
+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 0xb7520449	sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xb7af66ac	proc_net_fops_create
+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 0xb8047a9f	md_trim_bio
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a	timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb81e20d0	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0xb83363b7	spu_set_profile_private_kref
+EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae	ps3_event_receive_port_setup
+EXPORT_SYMBOL_GPL vmlinux 0xb8504ee4	inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xb8584b8b	crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xb891e820	ps3_close_hv_device
+EXPORT_SYMBOL_GPL vmlinux 0xb893c7e5	free_css_id
+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 0xb9831dfc	trace_define_field
+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 0xb9f4ec76	tcp_reno_cong_avoid
+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 0xba9d9d50	blk_unprep_request
+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 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 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 0xbcb20580	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xbcc65c27	pmac_i2c_find_bus
+EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL vmlinux 0xbcd18b69	single_open_net
+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 0xbea8ef79	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xbebb5323	register_ftrace_event
+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 0xbffde8ec	compat_alloc_user_space
+EXPORT_SYMBOL_GPL vmlinux 0xc0152944	crypto_attr_alg2
+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 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 0xc0f8c196	md_rdev_init
+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 0xc1659f86	swiotlb_tbl_sync_single
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7	usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1cdbc6d	crypto_shoot_alg
+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 0xc243be30	mnt_clone_write
+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 0xc2f9b4ad	__pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xc32dc8d2	pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0xc3343ca0	tcp_slow_start
+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 0xc367bdee	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xc37226a5	tpm_pcr_extend
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f	scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3daa597	nf_unregister_queue_handlers
+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 0xc42d09f6	fl6_sock_lookup
+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 0xc4cd827f	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xc4e5ff92	dm_set_device_limits
+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 0xc5437fc9	crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xc546d0f2	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0xc556bc26	tpm_send
+EXPORT_SYMBOL_GPL vmlinux 0xc565071c	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xc5a2a005	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc5db93ce	pci_enable_ats
+EXPORT_SYMBOL_GPL vmlinux 0xc5fbca6b	xfrm_audit_policy_add
+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 0xc677b24c	transport_configure_device
+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 0xc7a22de8	crypto_alloc_ahash
+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 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 0xc9a5a741	rdev_get_id
+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 0xca1f7d0d	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xca2a9b04	css_id
+EXPORT_SYMBOL_GPL vmlinux 0xca3eaa23	dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xca554b9f	elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xca72fb40	tcp_init_congestion_ops
+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 0xcb4535ee	queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xcb68be4c	crypto_drop_spawn
+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 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 0xcd47b1e2	raw_seq_next
+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 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 0xcea4a04e	vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xceecbed0	pmac_i2c_get_bus_node
+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 0xd06cdea0	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xd07ae6ac	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd0a102f1	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0dee8d9	pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xd0ee6810	part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f	timerqueue_add
+EXPORT_SYMBOL_GPL vmlinux 0xd10281c8	regcache_read
+EXPORT_SYMBOL_GPL vmlinux 0xd11d4b5a	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0xd11e4c0e	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xd141bd15	device_move
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3	crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1ab8a45	dev_change_net_namespace
+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 0xd2b263d7	__blk_end_request_err
+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 0xd3a589a3	sysfs_rename_link
+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 0xd4c38594	blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xd4cb9f64	cpu_remove_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0xd4f08047	ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xd559b1f6	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd573f1ee	eventfd_fget
+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 0xd5bff17d	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xd5d1e59e	sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd5fdcda0	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xd5fe2117	sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0xd60dce4b	blk_queue_flush_queueable
+EXPORT_SYMBOL_GPL vmlinux 0xd6204ee1	ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xd6348f83	blkio_alloc_blkg_stats
+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 0xd6deec00	skb_segment
+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 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd768f168	fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xd77af8df	init_pid_ns
+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 0xd79a0c5a	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xd7c6fc10	irq_alloc_generic_chip
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132	put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7edc2a9	__sock_recv_ts_and_drops
+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 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 0xd9b044b6	tcp_death_row
+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 0xda366851	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9	regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xda588620	proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xda5b4bea	ata_cable_sata
+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 0xdb860f39	register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xdba01e08	platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0xdba6a31c	pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0xdbe77aa6	srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xdbe85854	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0xdc4b91ed	led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xdc633a56	tcp_cong_avoid_ai
+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 0xdcf6d3d7	crypto_hash_walk_first
+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 0xddf7a02d	__pm_wakeup_event
+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 0xde70237b	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0xde7e315d	wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xdf1deb94	crypto_rng_type
+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 0xdfaa70ec	skb_pull_rcsum
+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 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xe03a7348	inet6_csk_search_req
+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 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 0xe11b1526	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xe12d900b	each_symbol_section
+EXPORT_SYMBOL_GPL vmlinux 0xe14a1619	platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0xe172e9e3	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xe189a72c	hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0xe196a28d	inet_csk_search_req
+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 0xe1c1879f	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xe20d3538	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0xe240f309	debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0xe2bcf17d	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5	regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9	request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe306ee0b	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xe32882b8	vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe33e36dc	platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe3580dd0	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0xe37ab4df	ftrace_set_filter
+EXPORT_SYMBOL_GPL vmlinux 0xe384a102	usb_speed_string
+EXPORT_SYMBOL_GPL vmlinux 0xe391ec9f	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xe402978b	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xe41f3fe5	vfs_removexattr
+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 0xe4b84842	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xe4bb84fe	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0xe4d98100	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0xe4f0ad47	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xe5168c36	tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xe51d405c	ata_bmdma_status
+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 0xe5a52cd3	get_task_mm
+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 0xe65a0a99	cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xe671f33c	pmac_i2c_get_channel
+EXPORT_SYMBOL_GPL vmlinux 0xe6825540	debugfs_create_blob
+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 0xe78edbfb	spi_sync_locked
+EXPORT_SYMBOL_GPL vmlinux 0xe7ac1bf3	platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xe7ee39da	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xe8310c3d	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe8646a4b	anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xe868ad68	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xe86a33cd	debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0xe86b0355	class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0xe896f0f6	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xe89bd243	ata_sff_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xe8b4f9f1	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xe8cd9fd4	tcp_twsk_destructor
+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 0xe974f47d	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe9d93e82	n_tty_inherit_ops
+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 0xea70302b	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xea96ab52	rio_mport_write_config_8
+EXPORT_SYMBOL_GPL vmlinux 0xeaacb61b	rio_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xeac1e90c	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760	scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb461d91	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xeb4ddb17	pmf_get_function
+EXPORT_SYMBOL_GPL vmlinux 0xeb5efaa4	crypto_shash_digest
+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 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 0xec271aad	module_mutex
+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 0xecee2919	tpm_continue_selftest
+EXPORT_SYMBOL_GPL vmlinux 0xed0166a0	of_property_read_u32_array
+EXPORT_SYMBOL_GPL vmlinux 0xed2edf52	mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xed6ffced	adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xed977cbc	hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xeda2d224	pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0xedc2c896	regmap_init_i2c
+EXPORT_SYMBOL_GPL vmlinux 0xee1be0d5	crypto_find_alg
+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 0xeea024d1	__scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xeea20962	pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0xef37b03d	__crypto_alloc_tfm
+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 0xefb4da47	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63	ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefef3494	usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xf0460426	platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xf0483ff8	transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xf098dd15	cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0xf0ab5adb	register_spu_syscalls
+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 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 0xf1e54066	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xf1e5fe54	pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0xf206e861	xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xf2124354	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0xf21fc9c4	ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xf22bafc3	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0xf2406ca2	get_dcookie
+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 0xf2f97e20	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922	uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1	workqueue_set_max_active
+EXPORT_SYMBOL_GPL vmlinux 0xf32bae50	sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec	hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf348c2a0	ata_bmdma_qc_prep
+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 0xf433e708	spu_init_channels
+EXPORT_SYMBOL_GPL vmlinux 0xf469c705	ps3_io_irq_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xf479f00d	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xf47a9427	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xf48d8cdf	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2	rcu_barrier_bh
+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 0xf5139524	shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xf51df56b	mddev_check_plugged
+EXPORT_SYMBOL_GPL vmlinux 0xf5370e6f	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xf53e775b	disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b	lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf558ad12	device_wakeup_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf55dd218	skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xf58f1406	__pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf591d68c	tps6586x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf5a2d2f4	clone_private_mount
+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 0xf659d073	inet_csk_reqsk_queue_prune
+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 0xf6e874f5	ata_timing_merge
+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 0xf79ca300	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xf7b47695	spu_get_profile_private_kref
+EXPORT_SYMBOL_GPL vmlinux 0xf7bb85cf	devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xf7d53ae6	regmap_raw_write
+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 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 0xfa39ef11	xfrm_inner_extract_output
+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 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 0xfb79a46f	skcipher_geniv_init
+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 0xfbf9be5d	register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b	ps3_sys_manager_get_wol
+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 0xfcd7bc0b	ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0xfcffb4e1	pmac_i2c_get_flags
+EXPORT_SYMBOL_GPL vmlinux 0xfd3342fd	wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xfd377fec	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xfd691c89	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xfd6b3cac	sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xfd76bd20	raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xfdafde3e	generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c	crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe034d16	scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0xfe059f92	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xfe756168	key_type_trusted
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeac520e	inet_twsk_alloc
+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 0xff0b9aec	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0xff0dacff	ps3av_video_mute
+EXPORT_SYMBOL_GPL vmlinux 0xff5369cc	dma_mmap_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xff54626c	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe	cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff5b94a9	relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xff61ceb2	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0xff7f98cc	flush_fp_to_thread
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec	cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffa6656b	da903x_writes
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/powerpc/powerpc64-smp.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/powerpc/powerpc-smp.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/powerpc/powerpc-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
+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
+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
+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
+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
+uas
+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-36.57/powerpc/powerpc-smp
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/powerpc/powerpc-smp
@@ -0,0 +1,11763 @@
+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 0x6a395ea0	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0xb367aaf2	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 0x9fbedd75	rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa8f6808f	rdma_resolve_ip
+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 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 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 0x607791a6	ibnl_put_attr
+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 0x867306a2	ibnl_add_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bc5a7a6	ib_rereg_phys_mr
+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 0xbe1aedde	ibnl_put_msg
+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 0x32ea92a9	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35996fb6	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4f61775c	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51945ccf	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ee7d9fc	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5f32f755	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67cef0d4	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x749fcd0a	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1844a3b	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa3f047f1	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8e1e139	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb49ce517	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb590d122	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd3127ea4	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe134306b	rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeac654ec	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf3597d07	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf44a4c13	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9936fda	rdma_resolve_route
+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 0x13c58996	capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x23c46397	capi_ctr_down
+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 0x3ed91541	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3f2b4032	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51	capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x55b4435e	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 0x76cbb30b	capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c	capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7d047a0e	attach_capi_ctr
+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 0xa7c4fd6c	capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27	capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xad16a23a	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 0xe19a11ac	capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1	capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xec3b6f0c	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf7f055f8	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x026caad1	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c6d0df9	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2003401c	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2014417b	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x251e00c4	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x78d3d51f	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7b146497	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83154b92	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x959d3860	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9bb204d6	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f09f3cf	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaec84615	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xce6485d0	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe1c40367	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf2edbe59	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x07dc1110	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0cd1c26a	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x10f5e7bb	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1c827454	b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1e5f186e	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x341ebb30	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4b99e6bf	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x80a4da50	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8557984b	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+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 0x141d4cc6	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x23eaaa78	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x86ba42f3	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xd08a6ca7	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x4178c4df	mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x5f6ccfea	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 0x258e9b5f	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 0x08270b4d	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x219ab24d	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3aabaf6f	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xbb21a9a5	isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xcc933a85	isac_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x05659898	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7eff4ec8	isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe670d9e4	isdn_ppp_unregister_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 0x0ccd623a	mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x175e3880	mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1d045e16	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x223ccd03	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x296689b9	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2a64c8e7	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2e2302c8	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2f880c23	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3377c5fe	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4570fe7b	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c14c4ad	mISDN_unregister_Bprotocol
+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 0x5dc7400a	mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30	mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6a9d371f	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7ebc0d22	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8d23a00d	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x92172d88	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b946473	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc18e9493	get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc944f825	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc1038ca	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd31240aa	mISDN_freebchannel
+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 0xeae10ec0	bchannel_senddata
+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 0x3644fea5	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x382dc378	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0x87b6b81c	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0xbbe1a145	dm_dirty_log_create
+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 0x85bf39ab	dm_exception_store_create
+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/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 0x029d4182	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x033bd39e	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x036939f2	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x17fd5deb	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x181f132d	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x35a66612	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3842c3b0	flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3cd7a3b2	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4291d3bf	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x50098e99	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5566ef4c	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x57591260	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x774b0571	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x78df1661	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x889bfee8	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8de939eb	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9202aa68	flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9272ea7e	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa1be5035	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa88715cb	flexcop_wan_set_speed
+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 0x0c36f45b	dvb_net_init
+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 0x43f4d881	dvb_net_release
+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 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 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 0x1a25b44e	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8dac29f9	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa3825104	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb4f495f6	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe89c2566	dvb_usb_generic_write
+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 0xcf377299	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 0x11386718	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x16b84e9c	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3446e6f8	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3cc67ad5	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x40cb10db	dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x58575f35	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa07cc900	dibusb_pid_filter_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 0xc63243fe	dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcbcc2bbe	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd429ab9d	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdab262e8	dibusb2_0_streaming_ctrl
+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 0x11379e58	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1e681ffa	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3c70818f	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8fa77108	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbe3646e9	cx18_release_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 0x6cbfa019	videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x798a1d5a	videobuf_dvb_alloc_frontend
+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 0x9da70091	videobuf_dvb_get_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 0x0c53de80	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x358f20f2	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5c22893b	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6c6eb18c	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8e917003	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa3629226	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc1611137	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xce8d236b	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdf8a0c1f	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xea4bb402	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1419f0c2	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x754f446f	com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xbf2781d4	com20020_check
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1178beb3	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x20406a74	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3561042c	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x715dd4f0	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x74a42a3d	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xbd2d004e	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcbb138d6	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd4d4294e	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xeaca262f	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf098ab76	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0x41d2909f	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x5666f6ed	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xad2641b9	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0712752d	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0bebba8a	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x12db548d	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x21c6a718	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x22196936	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2e2d826d	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x34cfbbe3	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x414ab48d	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76a086fd	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x909583bc	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9226144b	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa827b0f0	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbcf9ec8c	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd04ee185	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe82c9f90	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf43ac4ef	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x024d5c3f	cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1458b4e1	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x19282344	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x33f2cb6f	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3e5d3d29	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x637596ee	cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6978bb6f	cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x762d1ad6	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7cea6405	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8e30d5e9	cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb5e1594e	cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc9d79517	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce53d643	cxgb4_alloc_stid
+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 0xe9c06fa4	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xebef11ab	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3bcb97f	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf5eaf2e0	cxgb4_ofld_send
+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 0x5d5ebfc8	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5d8c0228	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8e253750	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xdcb4cd7f	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe567fdfe	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x026b383f	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x02c9611e	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1294e1fd	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3f7d3a98	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4fa7b233	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa71c63d3	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb7aec611	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbb2dc6aa	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcc4deb6e	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xda6a9453	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 0x12536195	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x50a2a924	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x17f3b0a1	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x56cc92e9	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xcf1d1a68	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x37fd82db	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3b99ef5a	tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x805bcb5e	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9a733300	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc3855262	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc6be79bf	tms380tr_netdev_ops
+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 0x079708d2	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x0a448e0b	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x110072ca	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x31fe80eb	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3a98f92a	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3ea632d7	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x62fb3e94	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x670b7d60	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xbe268152	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf70ab031	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfd04c4bc	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb3bf818d	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x28448221	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xe0313d6b	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xf595770e	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0308cca6	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x22cb395c	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2c4abe12	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x416ecb81	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5	ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6fd6a81b	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8de389a5	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x984786ec	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6d418fe	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfa62cbcb	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3a715c58	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 0x669dd15b	ath9k_cmn_update_txpow
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8062b736	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 0xe843d07d	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 0x014d3d67	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x058eb2a0	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06bfcc7f	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a100cf9	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d718825	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f0a466d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1041fa98	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a502ef1	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a8ec550	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1accc3e4	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c00089a	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ff068bc	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2206c0eb	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27927a96	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x295084ac	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bfee752	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fb9c73d	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3088f89c	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x321cfb24	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32543556	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3468ce9b	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44552643	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4499d4c0	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4efb8a12	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5260f341	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5667ef43	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56903852	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5d6f0b13	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f3319fd	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62b58af6	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x643f0896	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64d2c66a	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6be74261	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c768bb9	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c940265	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d41a2d5	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f54483a	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f7aa1df	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7735b7ce	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ba2c09c	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d4f50b2	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e5a78d4	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80048e8f	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8baeb7e7	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8bbd6748	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db36e42	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90359f2c	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92422047	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94dd8d84	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9652897f	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98fce835	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b8d3fa2	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d2967f3	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa16300ad	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1fef5d1	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4e381de	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9724494	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa32bc42	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaed584cb	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8a4da22	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbe54b5f	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbffccb6c	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3846d36	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8ac1749	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca156633	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce6307ab	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1942369	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4baaed1	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd63df6ff	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd71f2095	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8c9ea1c	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda4886d2	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc1bd8fa	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd0a5049	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd253cb1	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1df12b8	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2599178	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3f69d53	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe79400d8	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea5b5f80	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee2e5d70	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1ee5ea1	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf21779c2	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5746fdf	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9a7b00b	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbd0ade3	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc338b41	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff23311f	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x1103605f	init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x13697d3f	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf781b67a	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 0x06ecf9ff	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0fccecb8	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x129c6b6b	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3d8eee6f	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x587d4e6c	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7eddc405	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x83feae27	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x94aa8b49	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x954a86dd	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9c32f98a	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa7fb2632	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xca825559	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd894233a	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfdbcba01	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x009c6c3b	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e7bcc6f	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a88a41a	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x32c627a1	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3c06cd56	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d84bfb3	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x675b8762	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b7c6d06	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7e676b85	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x868a1ae6	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88a62769	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x95dcad8a	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9f1ace9a	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa725483a	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaab1197b	hostap_remove_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 0xb5eda534	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb9259c6e	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbcb26622	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbfad7f81	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc8fbe34	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd17691e5	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe4d97883	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8a3fa25	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1a31c72	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf81a892a	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x100bf641	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x19f5f1c2	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x52ef107e	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55ed98d7	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6cc1c5c1	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x735326d3	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x73d03b18	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7dfe65ad	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x89000cce	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9a708efb	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9df9334d	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa24a27ff	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa6866ac9	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xade0b38d	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb0356bf6	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd4414720	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd876c89d	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7a68c52	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe9eb92f5	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf2739063	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf3338a06	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05faabf5	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x08343ea6	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x08b6063b	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0af6b183	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x13bdf3ea	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1434502e	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1e9a34da	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x204cfd83	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21450303	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21c1f35f	iwl_legacy_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x26dc5d4f	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27a72865	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27af1c87	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x287b3a55	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2a01249f	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2a0bba96	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2f7181c2	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ff364f1	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x31277d22	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x353c1c4d	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x378630a1	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3b02344f	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x407e5c72	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x431828f9	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x43703ae6	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b112f4a	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c39a815	iwl_legacy_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4e6a5aae	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4ed36503	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4f989314	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x50af664f	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5139e190	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x540f6223	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5a88dd23	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5b76b091	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5cb9aacf	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5d018479	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x67861f2e	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6967e383	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x69e2a39b	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6b584e4d	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6c5fbcde	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e070518	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e33b4cf	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7221ca11	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x733c4b9d	iwl_legacy_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x74fccd3d	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x78490eb9	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x79352753	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7a642724	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7c31fc9c	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7c913eb7	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d040b74	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d275762	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d8f5115	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x851e1e60	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a6c913f	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8bbe235d	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8bd0e0c1	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98294b48	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9cea0ba8	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d83877a	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9dbbc29a	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9e371fde	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9e779050	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa2bcf485	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa5083760	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabceb738	iwl_legacy_eeprom_free
+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 0xb005a2bb	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb33cac90	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb68b680b	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcada2e7e	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xce794943	iwl_legacy_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf3f3f01	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd0cb5aab	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd5aa72ba	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd64f71b3	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd6a47223	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd7a78654	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc9e48fc	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe18c4206	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe5d24f1e	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe99318ff	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xebd4fd11	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xedc9c8b6	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf0a38ed3	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf271dd85	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfd23711a	iwl_legacy_get_active_dwell_time
+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 0x04d628b7	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a2e1d2d	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x26c505bd	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29d6acca	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2b5dd6e1	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2c49bc4d	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x46e9125d	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x597a2c02	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5be6c64b	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5c864bff	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x91527b57	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d9488a4	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd3d26312	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdfd394e8	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe08adcc8	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe392d6d7	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0923e1f6	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b0dbf66	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x11e5824d	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x159b5af4	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1cc1396b	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1ccced1f	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1dca0cc4	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x288345af	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x31b10295	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x31db4516	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x347d120e	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x35d2a89a	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3705aa90	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x457c58f8	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x469a7ff1	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x46e14f3b	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c8600ef	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ffb6e4b	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51d61ede	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5a34db37	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x68a0e881	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x71cfc28d	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7629d010	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b2b4241	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x817b1fe0	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x818a01e9	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x824ac417	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8e050d91	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x901f07ec	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x92c70328	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2575d70	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa5b21280	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9ccb30e	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa69f848	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae3bfd83	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb7ada58c	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc390c176	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdcada7f6	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe67b2f2f	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe967a04f	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf570ce80	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6e6f873	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x03428e60	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ba64633	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1b924dc6	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1d8baa7d	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x312804d8	rtl_usb_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x460a1b9b	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5b571e2e	rtl_ps_set_rf_state
+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 0x7b27187d	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7edac63c	rtl_usb_suspend
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x91525974	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x95fadca7	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb4b56826	rtl_cam_mark_invalid
+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 0xc497d5d1	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb5a7d69	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcc7abe75	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe69ad51d	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xed2076cd	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7518feb	rtl_efuse_shadow_map_update
+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 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 0xdd30fa68	pcmcia_get_mac_from_cis
+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 0x906f38d5	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0x96525045	pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xcb388b59	pps_register_source
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4562c642	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x543855f1	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x56bf0fa1	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5a256c33	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6de148b9	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x789b98dd	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x88cbf226	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd6fe53c9	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xee381c1a	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x010c4e32	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x02b4e7f7	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06665c47	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08a3245c	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11da4ad3	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11ff16c6	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14aa08ca	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17ea497e	fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26444b57	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2afe2cbb	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b52adae	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34fd5af0	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x391eee8c	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39f5d019	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c879572	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4346df73	fc_elsct_send
+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 0x55aab64e	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a61095b	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e942f72	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60aa267e	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65732487	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6699b904	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x73883530	fc_lport_flogi_resp
+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 0x806561c2	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x874274bc	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8777c38e	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88742cc0	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a7aabf4	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b566250	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ec5275d	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x95731d49	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97ca17db	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2b51749	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4e85602	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb096a4b5	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1d5df97	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb2ec61b1	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb46e878e	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb4f5d493	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfb1c93c	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc45ce04d	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8fcd3d1	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec49f96e	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef72d88a	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4ee65b0	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc8f9a35	fc_frame_alloc_fill
+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 0x099f6a42	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a5c491b	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c82e702	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11fe197d	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1822eebd	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1cfc7120	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27138952	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x271e89ae	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32a8338c	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d507ced	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42e20743	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49798850	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b0016d4	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4bd13e30	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4befc466	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e62c10e	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x572a0818	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x690f1888	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69e81618	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6acc3bd1	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6e9ede91	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x70d70693	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7dca4b26	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8394e234	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x83aa55a5	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c4a9aeb	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c541a73	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8fa829be	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa075f94d	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xae43cfbc	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb29e1358	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7485359	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbae3fff5	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf57421a	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc10a87b5	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc41e5990	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc71ab683	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc9f23cfa	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd3162dce	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd4136375	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdac38af7	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe00903b5	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1e52dab	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe44042f3	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe680c9cb	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7e6a91c	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeb97d115	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc468b9	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee4ffd3a	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef385b74	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefcc0b46	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf79b2137	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfac74902	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfae75c3a	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/target/target_core_mod 0x01128dd7	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1bc7c009	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1dd4c84e	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1fe7a5ce	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2521a0b0	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x27e34b87	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x29d5a74a	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2a688688	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x30554046	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x31566c4d	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3201ac08	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x37681ad0	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3eb59345	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0x45ae5c40	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4c400520	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4cd63372	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4f76354e	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0x501e7931	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x55015b0a	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x558f009f	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0x56351df9	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x60682cc6	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6338cf6a	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x640ebb68	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x665cfb54	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x66fe91c5	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x76c2960a	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0x799a182b	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 0x80f1cfc2	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x877156ff	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0x887b7234	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x904e2975	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0x92765aef	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x93aca00a	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x99108939	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9b5b0fea	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9cc4977a	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9ce92ab2	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0xafa2838f	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb04e9c86	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb15c065a	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb3f4582b	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb4ebebeb	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb60e9bd3	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc21d6998	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc6889bfd	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xccd7f51f	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd14e6ea1	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd7663158	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd836916c	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd94dd117	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdac3014d	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0xddda8faa	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0xde1a79f6	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xde7b5905	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xded6caf8	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe212ef43	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe43cdcdc	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xeb8c4487	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf12226cd	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0xfdf51020	transport_init_se_cmd
+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 0x0f37633f	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x137aaf49	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1d838272	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x448fa769	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x625505c7	usb_wwan_ioctl
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x640c60f2	usb_wwan_resume
+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 0x882542c0	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca128d60	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcea48d2b	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xddd4b25c	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe8ee7d7e	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf993ff06	usb_wwan_set_termios
+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 0x90259194	w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xa6f67eab	w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0xac84c8cc	w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xc60b12d2	w1_add_master_device
+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 0x0eb00c2f	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0x1d53ff9b	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x2c12cf20	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x6b6c8559	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0x903dad21	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xc4e6b0bf	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0xcee6ae86	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0xd0504fd0	extract_attr_from_ios
+EXPORT_SYMBOL fs/exofs/libore 0xd6bafdb9	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0xdf54b56c	ore_truncate
+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 0x51dc6312	make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xaffb3afd	destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x04311c50	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x0528309f	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x08c84390	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1f05143f	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x238c0c26	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x30e6175d	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x36d9cd8b	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x42b2cec2	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0x46be297a	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x4d017ba9	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x50641340	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x57254ba9	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x58881fc7	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x5ce563c2	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x6fb514cf	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x6fd58da4	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x715fa234	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0x77a1a275	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x77b67680	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x7a171e15	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x7aa6a578	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x7f703d49	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x7fbc00f1	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x81008972	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x815116bb	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x8add5c2b	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x90e89b01	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0x913399fe	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x9b1aecad	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa332c304	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xa5b918b7	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0xa9e9341c	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xaf2185d6	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xbdd7efce	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc1bf1827	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xca733228	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xcaf2031a	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xcc7fb83c	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0xdf793ce3	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xe2d17d4e	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe8804b1f	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xf8eacca6	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0xadf7afa1	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xcb332174	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xdbf93926	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xe0a6f386	atalk_find_dev_addr
+EXPORT_SYMBOL net/atm/atm 0x0ddc985c	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x1910bef5	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x431747fd	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x4b0a24c2	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x5396d839	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x5c7ca756	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x6c116c9e	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x75b6bae7	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x9d78d0e3	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa2d446f4	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbfe2ee15	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xca87b453	vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xd20885fa	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0xdf6d99c2	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x14dedb6d	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x1a6da931	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x28bcc7bd	ax25_find_cb
+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 0x73233104	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xb1deb524	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd0ecfeb7	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xe1393bc1	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xe35356a4	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0xf6f46ec4	ax25_send_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x13a02d25	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x166949fc	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x286f5f8a	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a7be9a8	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b94c5ad	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b3e4202	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x521931b3	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5438694c	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d17128c	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6203b8a6	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65c0bc52	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a05c434	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6beb87e9	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x77d007ee	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x79ba37be	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d32f89f	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d9c42cf	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f944855	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x876d08f3	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8807e0dd	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8f013d90	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x94ada474	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa02900a2	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa05dc993	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0d7caa2	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa34d0e83	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xac728779	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb71d4a28	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb085952	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe1baaeb	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9800b50	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6fd9856	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xda09b8a9	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb12b394	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe589ab58	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2b36b15	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf65b9e92	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf84f04f9	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf8f34492	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc34c3eb	bt_sock_link
+EXPORT_SYMBOL net/bridge/bridge 0xb9c24c03	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x39a26e91	ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x50b2e9a5	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xca7000b3	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 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 0x92864d5f	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0xa5045a3a	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0xc555422b	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xf09e272d	caif_connect_client
+EXPORT_SYMBOL net/can/can 0x0258121e	can_send
+EXPORT_SYMBOL net/can/can 0x0c0e59cc	can_ioctl
+EXPORT_SYMBOL net/can/can 0x0f2e8bba	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x24028dc3	can_proto_register
+EXPORT_SYMBOL net/can/can 0x5c3fdeec	can_rx_register
+EXPORT_SYMBOL net/can/can 0xe3bfbfc3	can_proto_unregister
+EXPORT_SYMBOL net/ceph/libceph 0x05a159c3	ceph_msg_dump
+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 0x23b797ad	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x268c5288	ceph_msg_new
+EXPORT_SYMBOL net/ceph/libceph 0x292d7a65	ceph_copy_page_vector_to_user
+EXPORT_SYMBOL net/ceph/libceph 0x2bd2bf52	ceph_osdc_put_event
+EXPORT_SYMBOL net/ceph/libceph 0x2d5ac3d5	ceph_messenger_destroy
+EXPORT_SYMBOL net/ceph/libceph 0x3158173e	ceph_pagelist_release
+EXPORT_SYMBOL net/ceph/libceph 0x3189057a	ceph_con_open
+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 0x4378a0a8	ceph_messenger_create
+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 0x4a56986f	ceph_con_close
+EXPORT_SYMBOL net/ceph/libceph 0x4e1eddbb	ceph_osdc_sync
+EXPORT_SYMBOL net/ceph/libceph 0x5379cea3	ceph_caps_for_mode
+EXPORT_SYMBOL net/ceph/libceph 0x56441a48	ceph_con_keepalive
+EXPORT_SYMBOL net/ceph/libceph 0x57baf885	ceph_str_hash
+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 0x8125eb53	ceph_con_init
+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 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 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 0x05b415d5	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b97c467	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x29acab1f	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2bf0f602	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x879c4b33	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8d31975a	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9e55fb39	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb0bb4686	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc3e1f2a4	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc9744fa5	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdc382a0a	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf05f2b5f	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xff4a4b71	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3deedc35	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbc8f00bc	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd8aa4497	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x54e616dd	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc6d22c29	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd743090c	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1cd68a35	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x278aa3f6	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2eb0b522	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x32ff958e	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x914890d8	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xceafdcb2	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfcc1a2ce	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/tunnel4 0x4c45707e	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0xf007f797	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1ee84a6e	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x52acaa4e	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8385d25b	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd6f8b4fe	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x2492bde9	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x30fa0ab1	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0eafee9d	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x86649deb	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2119526f	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x346f2d40	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x62bf5d36	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x74cd2b2a	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7643b7d6	ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa0cd3c03	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb837fef9	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfc963404	ircomm_control_request
+EXPORT_SYMBOL net/irda/irda 0x0064e0ea	hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x00e16cc4	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58	irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c	irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0e7561f3	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x1cbdd350	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x1e6cade0	irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x2a7026fa	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x2ced15d7	irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3e56064f	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x3f4dfa5e	irlmp_disconnect_request
+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 0x5123ec2b	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x5d60f7cf	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x601bda46	hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x63ee6d79	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x68d47447	alloc_irdadev
+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 0x735ab166	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x763e54a4	irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728	irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7ef07f2c	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x85d88217	irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x93cf09f8	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x98c0e96a	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xa1d41e58	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xa7db4c75	iriap_close
+EXPORT_SYMBOL net/irda/irda 0xaa557515	irias_new_object
+EXPORT_SYMBOL net/irda/irda 0xac2aa38b	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xad6dba5c	irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0xaf16ca15	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0xb06fae02	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xb08e3ea0	irlmp_data_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 0xc68e43be	irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0xc7f7bea8	iriap_open
+EXPORT_SYMBOL net/irda/irda 0xc87ab6be	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xcead7dbb	hashbin_find
+EXPORT_SYMBOL net/irda/irda 0xd2108314	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0xd7293c93	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe3463529	hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xe3bde43e	irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0xe6a08ae3	irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf0a694a1	irias_find_object
+EXPORT_SYMBOL net/irda/irda 0xf39b7fe0	irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xf490aaa6	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xf5876b95	hashbin_remove_this
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x05914905	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x04973a42	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x0f4dde5f	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x54362675	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xa70a2335	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xcb11f9fc	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xd6988f1d	lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xde33a140	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xebfc25a2	lapb_setparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x03ecac45	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x19a388d8	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x1e88afae	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x27987ec8	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x2a3fb9f9	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x31e9f255	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x3431fbae	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0x35c6acfb	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x371f5827	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x398c5801	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x43446624	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x496c292d	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x52cad742	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x57c59c5b	__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 0x5d99416b	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554	ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71	ieee80211_sta_eosp_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x69322258	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f68f1d7	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x7099245c	ieee80211_napi_schedule
+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 0x846288dd	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x8b1ac7e2	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x939ad63a	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x952a0a49	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x95ccf199	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x972fd669	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x999eca4d	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0x9ce6dd61	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xa421b4cd	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa6ef44d8	ieee80211_free_hw
+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 0xaac531e5	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xb5606244	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xc0877c75	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xc383683c	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5c65a1c	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xca5ff948	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0xce2f2785	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xcf5f5a04	ieee80211_queue_stopped
+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 0xe15530fc	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1edeb62	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 0xecf187eb	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0xee82a524	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xf12545d8	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xf16fdf7e	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xf22b56bd	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xf6b8d5c2	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x08d57c1d	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1ef8a65a	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x33132353	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3473dca8	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4568b23f	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x53affc33	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x800ad599	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94fb1dbe	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9f250220	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xafe4b7ad	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbace7bcc	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd9b0dced	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe661dd14	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfbe0d04d	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x32a45333	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x43f3a3ae	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd2e65950	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x3d09e5ef	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x25282fdc	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x296bfba3	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x2a38f9d0	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x2bc7b096	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x4480b1bd	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x635c83b8	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x7573b841	xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x9a780500	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xe06b30e4	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe8bedc45	xt_register_target
+EXPORT_SYMBOL net/nfc/nci/nci 0x1faa1219	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0x6bdeea2e	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x81012465	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xcd1681de	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xe9472483	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x020670fe	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x5496f0d5	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0x5f97254d	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0x6190cea6	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x680bd230	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0xabd52ad6	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xd91fc896	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0xf70c1a89	nfc_unregister_device
+EXPORT_SYMBOL net/phonet/phonet 0x162943c7	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x27ad9350	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x70eb1900	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x964bd19b	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xa159988a	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xe4664da6	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xf9f00c63	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xfbdde560	phonet_header_ops
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0436e023	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0467ea1c	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0c38f6f6	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1eb10d6d	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4fa86c63	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7ccb6bfc	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8198da73	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9450f31e	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa865d20b	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb23e697c	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb81b56e2	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd11b62b0	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xedba4de8	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xef86f60d	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf4745dbe	key_type_rxrpc
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xbca0e623	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x66212794	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x59a321ab	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xaa6b3e23	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x07a1fa55	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1238843f	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x1c6e7f93	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x1dff74a3	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x212a57f7	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x21f601e4	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0x22461fd4	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x2d5ccff0	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x2db75b0b	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x32ed41af	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x39f9055e	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x4218b7e9	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x431c2fb4	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x4727d4d3	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x49996044	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0x4a79113a	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d177278	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x4dcdfac0	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x5061d8de	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x521608e7	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x5d6a52e2	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x5d9a27f4	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x5f1525b6	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x5f232397	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x60509db0	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x66218c43	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x73543a06	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x73cc6f94	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x755e5086	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x7876039d	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x81f19701	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x83ca4fa1	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x89fed2ec	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x97af5257	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x991b5d14	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0x9b0f3841	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f4b2608	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x9ffe3755	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa28a95af	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xa7c0722a	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xb7286ec1	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xbb732f48	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xc223c56a	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0xc37d6388	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc7cc209c	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0xcba18b87	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xdc5a5a32	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xe6ce9879	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0xef8a049d	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf4641d3b	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xf5235131	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf5e79057	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xfaab6f98	cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xfaf2fb47	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xfd624737	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x134add29	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x21ce62b1	lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x3db96724	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x4bc78c52	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x566e16d8	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x6473338c	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 0x002a37a6	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x002de09c	vfsmount_lock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x00302d83	mac_find_mode
+EXPORT_SYMBOL vmlinux 0x003beebe	__page_symlink
+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 0x00bf5dfe	netdev_printk
+EXPORT_SYMBOL vmlinux 0x00e290ba	sk_stream_wait_connect
+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 0x0147a1fc	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x01615313	sock_i_uid
+EXPORT_SYMBOL vmlinux 0x01722c20	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x01830a48	dev_addr_del
+EXPORT_SYMBOL vmlinux 0x0186e2de	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x018bfe38	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019e7765	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x01ab96e0	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x01ae34fc	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x01bef72a	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x01e4b83f	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x020c6bf2	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x02637dd6	__mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x02649054	security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x02753dd7	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x02842abe	jbd2_journal_get_undo_access
+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 0x02ea9bb9	pci_iomap
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x03070930	elv_add_request
+EXPORT_SYMBOL vmlinux 0x0318e3d8	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x031c7493	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0x0326ed66	get_write_access
+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 0x0369f082	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x03c06156	bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03e90369	agp_free_memory
+EXPORT_SYMBOL vmlinux 0x03fd2571	vm_unmap_ram
+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 0x043eff26	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x0487f831	fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x048d8955	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x04c0ac19	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x04ef80cc	i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x04f25205	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x04f44088	dev_get_flags
+EXPORT_SYMBOL vmlinux 0x04f7072d	nla_put
+EXPORT_SYMBOL vmlinux 0x050d219f	netpoll_print_options
+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 0x0533c0c4	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x054d450e	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x0570c7a7	inode_permission
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x0596259b	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x059882a7	twl6040_clear_bits
+EXPORT_SYMBOL vmlinux 0x05a514a1	_insl_ns
+EXPORT_SYMBOL vmlinux 0x05a5a151	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x05b8935e	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x05b9c8bb	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x05c8462e	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x05d20c7d	__register_binfmt
+EXPORT_SYMBOL vmlinux 0x05d4e12a	inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x05e7ad07	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x05fd96cb	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x05ffb4bb	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x061989a1	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x06204397	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x0637161b	dm_register_target
+EXPORT_SYMBOL vmlinux 0x06418f6c	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x0675c7eb	atomic64_cmpxchg
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x0697914c	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x069f97a3	bdi_register
+EXPORT_SYMBOL vmlinux 0x06aa1021	genl_register_ops
+EXPORT_SYMBOL vmlinux 0x06bbb24a	mempool_resize
+EXPORT_SYMBOL vmlinux 0x06bff365	blkdev_get
+EXPORT_SYMBOL vmlinux 0x06d7ca74	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x06ecf73c	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x06f062db	tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x07151136	__find_get_block
+EXPORT_SYMBOL vmlinux 0x071adafc	pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x072e3554	ps2_drain
+EXPORT_SYMBOL vmlinux 0x07493c9c	scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x074989f8	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x074e9213	down_killable
+EXPORT_SYMBOL vmlinux 0x0762e055	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x0771bcb6	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x07877656	udp_disconnect
+EXPORT_SYMBOL vmlinux 0x0797b1ef	swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+EXPORT_SYMBOL vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07adc108	input_flush_device
+EXPORT_SYMBOL vmlinux 0x07b986d5	do_splice_to
+EXPORT_SYMBOL vmlinux 0x07c19e6d	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07cf635c	netdev_crit
+EXPORT_SYMBOL vmlinux 0x07d9b783	scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x08059db2	deactivate_super
+EXPORT_SYMBOL vmlinux 0x0806d48d	filp_close
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL vmlinux 0x082dcba6	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+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 0x0922b90a	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x0939358a	bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x0946a40d	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x094ea13c	jbd2_journal_init_dev
+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 0x09ec17a3	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a30bf50	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a5060e0	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x0a8ac5ac	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x0a8b0e66	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x0ac3ebb0	macio_request_resources
+EXPORT_SYMBOL vmlinux 0x0acb1a3c	__bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acbcca6	security_path_unlink
+EXPORT_SYMBOL vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adc490b	arp_xmit
+EXPORT_SYMBOL vmlinux 0x0af198f5	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x0b09d532	pci_find_bus
+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 0x0b42ead5	ppp_input_error
+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 0x0c1c4c19	user_path_create
+EXPORT_SYMBOL vmlinux 0x0c21fe3e	gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x0c3b2404	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x0c3b2bb0	km_state_notify
+EXPORT_SYMBOL vmlinux 0x0c4d0d34	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x0c65e73c	scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99	scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c955c53	iterate_mounts
+EXPORT_SYMBOL vmlinux 0x0c9b6089	nvram_get_size
+EXPORT_SYMBOL vmlinux 0x0ca0c882	twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cee5350	datagram_poll
+EXPORT_SYMBOL vmlinux 0x0cef9826	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x0d068c81	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x0d428916	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d6843de	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x0d70295b	open_exec
+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 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e6d572e	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x0e8f30f6	_raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x0ea998e9	i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x0ec5a764	bio_split
+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 0x0f3d28d9	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f643720	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x0f9d91b3	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x0f9db303	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x0fa935f1	d_move
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fb33780	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x0fea3f98	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x100d1a18	agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x102f82fa	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x10328692	seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x103eda0b	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x108d484d	locks_free_lock
+EXPORT_SYMBOL vmlinux 0x10ca3b5a	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10e9dc7d	kernel_connect
+EXPORT_SYMBOL vmlinux 0x10ee20bb	default_blu
+EXPORT_SYMBOL vmlinux 0x10fb17d6	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL vmlinux 0x1114b8ff	inet_accept
+EXPORT_SYMBOL vmlinux 0x111820b3	init_buffer
+EXPORT_SYMBOL vmlinux 0x11194813	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x11267875	scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x112f37e2	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x11390b36	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x114b480b	netlink_set_err
+EXPORT_SYMBOL vmlinux 0x115617ee	__dst_destroy_metrics_generic
+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 0x116b02ae	journal_errno
+EXPORT_SYMBOL vmlinux 0x116ccd8c	vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11886e11	kobject_del
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x1192dbaa	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x11a6b07c	pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x11a89570	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x11b124c4	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x11cd2523	skb_push
+EXPORT_SYMBOL vmlinux 0x11ced87a	set_groups
+EXPORT_SYMBOL vmlinux 0x11cf27a9	idr_destroy
+EXPORT_SYMBOL vmlinux 0x11d5d1e6	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x11e40d5b	udp_poll
+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 0x125154cc	proc_create_data
+EXPORT_SYMBOL vmlinux 0x125eb881	of_n_addr_cells
+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 0x12bfa601	phy_start
+EXPORT_SYMBOL vmlinux 0x12c04012	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x12da5bb2	__kmalloc
+EXPORT_SYMBOL vmlinux 0x12dcf84b	dst_discard
+EXPORT_SYMBOL vmlinux 0x12e5ef0c	rtas_set_power_level
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x13005a29	register_netdev
+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 0x135f0b19	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x136542c0	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x1375ae83	__destroy_inode
+EXPORT_SYMBOL vmlinux 0x137720ee	ip6_route_output
+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 0x13affbda	percpu_counter_compare
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13e38f5c	up_read
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f07d7e	__inet6_hash
+EXPORT_SYMBOL vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13fb0d01	blk_make_request
+EXPORT_SYMBOL vmlinux 0x1403e7b4	kill_fasync
+EXPORT_SYMBOL vmlinux 0x1407c6e7	kmap_prot
+EXPORT_SYMBOL vmlinux 0x1420b379	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x142d89ec	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x147457ed	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x14811537	tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x1488b0eb	cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x149c58fc	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x14c242d0	scsi_remove_device
+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 0x14f5b94d	llc_sap_close
+EXPORT_SYMBOL vmlinux 0x15090b8f	devm_ioremap
+EXPORT_SYMBOL vmlinux 0x15166ab2	mntget
+EXPORT_SYMBOL vmlinux 0x1528a455	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x153c9726	sock_get_timestamp
+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 0x155f628a	send_sig
+EXPORT_SYMBOL vmlinux 0x15864b03	flex_array_get
+EXPORT_SYMBOL vmlinux 0x159fcd6c	writeback_inodes_sb_nr
+EXPORT_SYMBOL vmlinux 0x15a21a5c	tcp_valid_rtt_meas
+EXPORT_SYMBOL vmlinux 0x15a22da0	sock_no_connect
+EXPORT_SYMBOL vmlinux 0x1601fc32	__getblk
+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 0x16861a92	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x168f9e80	agp_alloc_bridge
+EXPORT_SYMBOL vmlinux 0x16bef0b4	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16ca58c5	set_anon_super
+EXPORT_SYMBOL vmlinux 0x16de067c	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x16fb51f3	replace_mount_options
+EXPORT_SYMBOL vmlinux 0x1705d2eb	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0x17176b41	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0x17648396	dev_base_lock
+EXPORT_SYMBOL vmlinux 0x17aa156a	__ucmpdi2
+EXPORT_SYMBOL vmlinux 0x17bb7c37	key_revoke
+EXPORT_SYMBOL vmlinux 0x17ca0486	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x17d0d709	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17df8c95	xfrm_state_flush
+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 0x17f4e28e	inode_add_bytes
+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 0x1890bc10	kill_litter_super
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18d87a90	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x190e2e5a	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x19119370	twl6040_set_pll
+EXPORT_SYMBOL vmlinux 0x1912043b	nf_register_hook
+EXPORT_SYMBOL vmlinux 0x19193ffe	setattr_copy
+EXPORT_SYMBOL vmlinux 0x19610e1f	cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x19744f4a	ata_print_version
+EXPORT_SYMBOL vmlinux 0x1980a277	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x199903ac	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a79450	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+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 0x1a71640a	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x1aac04ad	pci_set_master
+EXPORT_SYMBOL vmlinux 0x1ac3362e	dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x1ace138d	bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1adf10c9	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x1ae0c522	netif_rx
+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 0x1b1d0f88	ether_setup
+EXPORT_SYMBOL vmlinux 0x1b5b7d9a	swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL vmlinux 0x1b67575f	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x1b768d33	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x1b777f2e	simple_getattr
+EXPORT_SYMBOL vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1	scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1baa7b3f	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x1bad0435	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x1bb53b4b	security_path_rename
+EXPORT_SYMBOL vmlinux 0x1bc4ff03	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x1bd19f95	mount_pseudo
+EXPORT_SYMBOL vmlinux 0x1c006e8f	__pci_register_driver
+EXPORT_SYMBOL vmlinux 0x1c03fab0	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x1c073836	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x1c137e19	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x1c1af916	set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c514416	filp_open
+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 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cf19ba7	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x1cf53013	dev_set_group
+EXPORT_SYMBOL vmlinux 0x1d069dec	dev_driver_string
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d435026	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x1d44a324	uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x1d4e50aa	journal_abort
+EXPORT_SYMBOL vmlinux 0x1d7d3fe7	pci_map_rom
+EXPORT_SYMBOL vmlinux 0x1d894878	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x1daee28a	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x1dbcb6e2	netif_skb_features
+EXPORT_SYMBOL vmlinux 0x1dbe95c0	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dd80c3c	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x1dd84b50	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x1dfb436a	mmc_hw_reset
+EXPORT_SYMBOL vmlinux 0x1e15a627	secpath_dup
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e3a2d23	swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x1e3bfea7	phy_stop
+EXPORT_SYMBOL vmlinux 0x1e532ccf	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x1e5fdf09	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e9855d9	__brelse
+EXPORT_SYMBOL vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ea47070	pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x1eb35c6c	__elv_add_request
+EXPORT_SYMBOL vmlinux 0x1edec3ad	d_add_ci
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1f1d6f78	dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x1f23a029	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x1f516e26	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x1f603725	alloc_disk
+EXPORT_SYMBOL vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL vmlinux 0x1f8b1af1	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x1fa80a66	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x1fac8d95	pci_request_regions
+EXPORT_SYMBOL vmlinux 0x1fc429f5	twl6040_get_pll
+EXPORT_SYMBOL vmlinux 0x1fecdabd	agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20030ecd	ioremap
+EXPORT_SYMBOL vmlinux 0x20369eae	blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x20737fa0	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x207440f3	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL vmlinux 0x20af2551	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x20b29090	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x20f6a05b	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x21292fc5	inet_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 0x2185275c	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x21a3b473	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x21a929ce	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x21d6cf54	swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x21f678b9	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x21f8c7f5	fd_install
+EXPORT_SYMBOL vmlinux 0x21f935a4	blk_rq_map_integrity_sg
+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 0x2268bb7c	sk_run_filter
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2278e94b	slhc_remember
+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 0x22cdc275	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x22f9bd2d	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x2315f803	d_instantiate
+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 0x235e90f3	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x236aead0	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x236d1063	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x2398fa70	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x23a45f2a	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23abf94d	key_validate
+EXPORT_SYMBOL vmlinux 0x23b697cb	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x23d8be7b	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x23f2243d	mempool_free
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x241e6cc0	pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x2424d24d	llc_add_pack
+EXPORT_SYMBOL vmlinux 0x24362611	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x2440ec96	sk_stream_kill_queues
+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 0x2480d535	neigh_destroy
+EXPORT_SYMBOL vmlinux 0x2482e688	vsprintf
+EXPORT_SYMBOL vmlinux 0x2485870f	input_register_handle
+EXPORT_SYMBOL vmlinux 0x248f59bb	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x24ed3574	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x24fdac79	wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4	memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250b8d1c	pfifo_qdisc_ops
+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 0x256767ff	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x256a5250	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x2598697c	xfrm_state_delete
+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 0x26410870	d_set_d_op
+EXPORT_SYMBOL vmlinux 0x26477c07	__vmalloc
+EXPORT_SYMBOL vmlinux 0x264fd268	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x26765239	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x268ae41c	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x2697b1cd	prepare_binprm
+EXPORT_SYMBOL vmlinux 0x269b689e	pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x269e9af4	d_rehash
+EXPORT_SYMBOL vmlinux 0x26abe9ed	cdev_init
+EXPORT_SYMBOL vmlinux 0x26b760c4	slhc_init
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26ce6ddc	input_mt_report_pointer_emulation
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x272c9094	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x272c9acd	pmu_battery_count
+EXPORT_SYMBOL vmlinux 0x274baf11	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x27815150	bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x2782e00f	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x2804d70a	irq_set_chip
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x281cdf6e	inode_set_bytes
+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 0x28781a28	padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x28909a07	block_commit_write
+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 0x28ee9135	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x2903e18c	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x2908934d	unlock_super
+EXPORT_SYMBOL vmlinux 0x292b301e	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x29313734	dquot_enable
+EXPORT_SYMBOL vmlinux 0x2950618c	d_drop
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2975abcb	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x29b1c366	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29bcebe9	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x29dbab34	bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x29f020e4	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x29f7de37	bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x29fdda53	kstrtos8_from_user
+EXPORT_SYMBOL vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL vmlinux 0x2a63b25f	of_get_property
+EXPORT_SYMBOL vmlinux 0x2a69ac25	call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x2a71b167	key_task_permission
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aae46ae	skb_dequeue
+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 0x2b469a34	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x2b613978	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x2b923f91	pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x2b98f2ea	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x2b9aceb7	dquot_drop
+EXPORT_SYMBOL vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8	sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bba48ea	iunique
+EXPORT_SYMBOL vmlinux 0x2bc536f4	vfs_readdir
+EXPORT_SYMBOL vmlinux 0x2bc61da1	program_check_exception
+EXPORT_SYMBOL vmlinux 0x2bd5117c	revert_creds
+EXPORT_SYMBOL vmlinux 0x2bdde3cd	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x2be06597	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x2bf44924	fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x2c1337e0	dev_get_by_index_rcu
+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 0x2c8881d6	dst_release
+EXPORT_SYMBOL vmlinux 0x2c905c3e	mutex_lock
+EXPORT_SYMBOL vmlinux 0x2c919c63	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d2c99a5	register_key_type
+EXPORT_SYMBOL vmlinux 0x2d3773b1	xfrm_input
+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 0x2ddd8066	gnet_stats_copy_basic
+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 0x2e59fc7a	ab8500_gpadc_get
+EXPORT_SYMBOL vmlinux 0x2e6a16e0	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x2e6d7a24	dma_direct_ops
+EXPORT_SYMBOL vmlinux 0x2e958a45	inet_frag_find
+EXPORT_SYMBOL vmlinux 0x2ea1e33f	cad_pid
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2ee3a403	of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0x2eeceb42	sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x2eed62a6	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x2eef52a4	vfs_getattr
+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 0x2f1c3164	skb_checksum
+EXPORT_SYMBOL vmlinux 0x2f36898e	of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x2f5415c6	kernel_read
+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 0x2fd725e4	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x30226ddf	agp_device_command
+EXPORT_SYMBOL vmlinux 0x3070dc24	mmc_hw_reset_check
+EXPORT_SYMBOL vmlinux 0x307c2fd0	generic_check_addressable
+EXPORT_SYMBOL vmlinux 0x30982b47	journal_check_available_features
+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 0x30ddcfee	blk_insert_request
+EXPORT_SYMBOL vmlinux 0x30f22715	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x310917fe	sort
+EXPORT_SYMBOL vmlinux 0x312057b9	unregister_nls
+EXPORT_SYMBOL vmlinux 0x314441ce	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x31577e16	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x317d4c45	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x3184660a	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31960f86	generic_readlink
+EXPORT_SYMBOL vmlinux 0x31962902	free_task
+EXPORT_SYMBOL vmlinux 0x31a2b413	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x31a8cf19	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL vmlinux 0x321df842	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x322b5ce8	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x323df93b	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x325d42c7	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x3267b55e	have_submounts
+EXPORT_SYMBOL vmlinux 0x327b9c1b	pmu_poll_adb
+EXPORT_SYMBOL vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL vmlinux 0x32adf646	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x32de3bfb	agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x32ecd73a	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x33019411	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x3332ed3f	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x33387ff5	init_task
+EXPORT_SYMBOL vmlinux 0x334e1cf5	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x3361c7e6	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0x3370f386	uart_match_port
+EXPORT_SYMBOL vmlinux 0x337ae9dc	simple_setattr
+EXPORT_SYMBOL vmlinux 0x337bc160	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x339cbd88	inode_init_owner
+EXPORT_SYMBOL vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL vmlinux 0x33d3f9fa	netif_stacked_transfer_operstate
+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 0x340be7c3	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x3415b55b	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x34161d9e	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x341dbfa3	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x341e0dd7	get_fs_type
+EXPORT_SYMBOL vmlinux 0x344adbd5	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x344ea6d2	inet_release
+EXPORT_SYMBOL vmlinux 0x346aa21a	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x346c4ded	rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x347fd895	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x34908c14	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34c4377b	dquot_alloc
+EXPORT_SYMBOL vmlinux 0x34c53fb5	agp_enable
+EXPORT_SYMBOL vmlinux 0x34d4ccb1	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x34d787a3	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x34ffd6da	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x352637d0	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x35a225aa	scsi_get_command
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35d7db54	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x35e40f57	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x35fbd6a1	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x3605da9a	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x360b6b99	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0x360fd18a	mmc_request_done
+EXPORT_SYMBOL vmlinux 0x36212201	write_inode_now
+EXPORT_SYMBOL vmlinux 0x36363acf	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x3657c3cf	pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x365e8bc9	netlink_unicast
+EXPORT_SYMBOL vmlinux 0x3660ddc1	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x3683fc19	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x3690b7f1	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x369f0625	dev_crit
+EXPORT_SYMBOL vmlinux 0x36b0e732	try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x36c35c28	block_write_begin
+EXPORT_SYMBOL vmlinux 0x36cce73d	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x36cd57fa	fsl_lbc_ctrl_dev
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36ff80a2	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x37016614	dev_open
+EXPORT_SYMBOL vmlinux 0x3710b880	md_check_recovery
+EXPORT_SYMBOL vmlinux 0x37110740	fsnotify_init_mark
+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 0x374f815b	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x377a9918	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0x3786667f	page_symlink
+EXPORT_SYMBOL vmlinux 0x37867c12	__ip_select_ident
+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 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 0x385387ea	blk_start_queue
+EXPORT_SYMBOL vmlinux 0x387b1912	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x388f9128	xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38c9e180	dget_parent
+EXPORT_SYMBOL vmlinux 0x38d54176	i2c_release_client
+EXPORT_SYMBOL vmlinux 0x38e9637e	add_disk
+EXPORT_SYMBOL vmlinux 0x38ecae60	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x38fb9933	tty_std_termios
+EXPORT_SYMBOL vmlinux 0x38fd2e18	do_truncate
+EXPORT_SYMBOL vmlinux 0x39026463	input_open_device
+EXPORT_SYMBOL vmlinux 0x39040159	ilookup
+EXPORT_SYMBOL vmlinux 0x3907cfd1	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x3915c7ad	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x392a551e	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x3987de3b	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x39938561	generic_file_llseek_size
+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 0x39daec1c	find_inode_number
+EXPORT_SYMBOL vmlinux 0x39ea7e8f	otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x39fb447b	of_dev_get
+EXPORT_SYMBOL vmlinux 0x3a0320fb	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x3a1f5a26	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a22683f	dm_put_device
+EXPORT_SYMBOL vmlinux 0x3a248a96	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x3a260018	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x3a312bb3	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x3a5c8f88	single_release
+EXPORT_SYMBOL vmlinux 0x3a7a1e92	register_md_personality
+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 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3ae76003	blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x3b237eb5	sched_autogroup_create_attach
+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 0x3b615a21	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x3b7f6a2f	gen_pool_create
+EXPORT_SYMBOL vmlinux 0x3b8d859e	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x3b994575	generic_setxattr
+EXPORT_SYMBOL vmlinux 0x3b9e7674	tcp_seq_open
+EXPORT_SYMBOL vmlinux 0x3bb61fc6	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3be89391	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x3bf9b752	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x3c239a87	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x3c3736a1	netdev_info
+EXPORT_SYMBOL vmlinux 0x3c5379ae	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x3c613c10	get_io_context
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c8d60b4	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x3c962cf1	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x3c9be6d7	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3cc05221	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x3cc901f0	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x3cd10212	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x3cdbc794	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3ceeb6b4	bio_free
+EXPORT_SYMBOL vmlinux 0x3d17e431	request_key_async
+EXPORT_SYMBOL vmlinux 0x3d1e3cbe	skb_insert
+EXPORT_SYMBOL vmlinux 0x3d2126e6	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0x3d32d28b	kern_unmount
+EXPORT_SYMBOL vmlinux 0x3d5f6c1e	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x3d93ee61	posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3dfca733	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x3e02dc5c	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x3e038c8b	truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x3e0e9023	param_set_long
+EXPORT_SYMBOL vmlinux 0x3e3498f7	sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e4f64fc	alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x3e5b7aa6	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x3e680d16	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x3e82e7d4	simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x3e8315ce	path_is_under
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ef55e7d	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x3f00608b	consume_skb
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f406a3b	enable_kernel_altivec
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f557e19	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x3f618a8e	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x3f8c409c	make_EII_client
+EXPORT_SYMBOL vmlinux 0x3f9679a7	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x3fb18605	kobject_put
+EXPORT_SYMBOL vmlinux 0x3fc4c031	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x3fe0d1c0	slhc_free
+EXPORT_SYMBOL vmlinux 0x3fefa7b6	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffa4a5f	find_get_page
+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 0x403d4f05	pid_task
+EXPORT_SYMBOL vmlinux 0x4043c659	bio_init
+EXPORT_SYMBOL vmlinux 0x4047a771	inet_frags_init
+EXPORT_SYMBOL vmlinux 0x40480752	sget
+EXPORT_SYMBOL vmlinux 0x404fc1c2	skb_recycle
+EXPORT_SYMBOL vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144	get_seconds
+EXPORT_SYMBOL vmlinux 0x4069a86d	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x4085b715	call_usermodehelper_freeinfo
+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 0x40a9336a	tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL vmlinux 0x40cac3ec	napi_complete
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40f1ad10	tb_ticks_per_jiffy
+EXPORT_SYMBOL vmlinux 0x40fcabf1	blk_init_tags
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x412e006a	inet_listen
+EXPORT_SYMBOL vmlinux 0x41370ba6	of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x41543f4b	vlan_dev_real_dev
+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 0x4207699f	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x4208f1f8	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298	sscanf
+EXPORT_SYMBOL vmlinux 0x4229f8fa	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x422fd167	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x42501857	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x4265619b	security_path_chmod
+EXPORT_SYMBOL vmlinux 0x4266f7e1	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x4269a564	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a54611	dquot_transfer
+EXPORT_SYMBOL vmlinux 0x42bcaa67	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x42d3aaa6	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x42da6eac	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x42e99606	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x42f62cd9	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x430da95c	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x43199595	free_netdev
+EXPORT_SYMBOL vmlinux 0x43548da8	disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x435a5c54	poll_freewait
+EXPORT_SYMBOL vmlinux 0x436bb77d	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x437424fa	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x438c0c00	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x439254e5	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0x43970afe	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x439d67de	tty_check_change
+EXPORT_SYMBOL vmlinux 0x439d77a0	journal_blocks_per_page
+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 0x43cf5e26	netlink_ack
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x44098db6	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x44252dfb	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x44256f54	eth_header_cache
+EXPORT_SYMBOL vmlinux 0x442c181c	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x4430c75c	ida_pre_get
+EXPORT_SYMBOL vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x4440b3e2	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x44438b96	hex2bin
+EXPORT_SYMBOL vmlinux 0x4481987f	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x4481b37d	pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x448c96e1	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x4491ca01	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x44a031d0	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x44af6bf9	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x44b2dd08	blk_integrity_is_initialized
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44c3226e	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x44d26b68	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x44d6b5e3	dma_find_channel
+EXPORT_SYMBOL vmlinux 0x44d8b200	__mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x44da8db2	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x44e2a471	dev_change_flags
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x44eb192e	wait_for_completion
+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 0x4570bd59	thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x4596db6a	sys_sigreturn
+EXPORT_SYMBOL vmlinux 0x45a8c711	d_alloc
+EXPORT_SYMBOL vmlinux 0x45b2242e	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x45b446e9	sock_create_kern
+EXPORT_SYMBOL vmlinux 0x45bd9efd	dm_table_put
+EXPORT_SYMBOL vmlinux 0x45c2bda4	dm_get_device
+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 0x460c21ad	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x4612c59d	down_trylock
+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 0x46352ed4	follow_up
+EXPORT_SYMBOL vmlinux 0x463985bf	bio_endio
+EXPORT_SYMBOL vmlinux 0x464fee9c	put_disk
+EXPORT_SYMBOL vmlinux 0x465757c3	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x4657de22	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x46cb9788	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x46d12956	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x46f09fe6	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x4701f531	__get_user_pages
+EXPORT_SYMBOL vmlinux 0x47505fca	pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x476cf0bf	vfs_statfs
+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 0x47e5a1e7	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x47f55662	md_write_start
+EXPORT_SYMBOL vmlinux 0x48000553	mempool_create_node
+EXPORT_SYMBOL vmlinux 0x480ad3c1	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x481ce6ce	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x483e104c	netif_device_attach
+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 0x486235f7	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x486fefa2	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0x4881efab	pmac_get_partition
+EXPORT_SYMBOL vmlinux 0x489c7c69	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x48ab7707	con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x48b24601	dev_addr_add
+EXPORT_SYMBOL vmlinux 0x48bb6bb6	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x48ca9310	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x48ddcfd0	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x494a6886	cdev_add
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496ca0b3	bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x498167c4	sync_blockdev
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b42e1f	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x49b7681c	clear_user_page
+EXPORT_SYMBOL vmlinux 0x49b9b244	iget5_locked
+EXPORT_SYMBOL vmlinux 0x49da3aad	dcb_getapp
+EXPORT_SYMBOL vmlinux 0x49ddace4	misc_deregister
+EXPORT_SYMBOL vmlinux 0x49df56f1	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0x49e5bd45	__seq_open_private
+EXPORT_SYMBOL vmlinux 0x4a0f05a6	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x4a0f3697	pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x4a126289	arp_send
+EXPORT_SYMBOL vmlinux 0x4a290d4d	cur_cpu_spec
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a4119af	__alloc_skb
+EXPORT_SYMBOL vmlinux 0x4a434122	simple_statfs
+EXPORT_SYMBOL vmlinux 0x4a4795a6	ipv4_specific
+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 0x4ab1cbb5	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x4ac8d00c	netif_napi_del
+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 0x4b45821e	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL vmlinux 0x4b6003d6	key_alloc
+EXPORT_SYMBOL vmlinux 0x4b79dece	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x4b7ed27b	sleep_on
+EXPORT_SYMBOL vmlinux 0x4bb40890	inet_put_port
+EXPORT_SYMBOL vmlinux 0x4bd83049	key_unlink
+EXPORT_SYMBOL vmlinux 0x4bdb88e9	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x4be254ea	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x4be3d0fc	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x4bed99b3	__percpu_counter_add
+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 0x4c33b602	devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x4c8c7bb4	security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ce875dd	journal_destroy
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d03ba89	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d5f22c8	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x4d77e494	posix_lock_file
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4da7c931	rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4de4c0c9	i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfed71c	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL vmlinux 0x4e48aaca	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x4e5232b7	kill_anon_super
+EXPORT_SYMBOL vmlinux 0x4e621b3f	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x4e62c96c	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e713125	thaw_bdev
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4e853bc9	bio_map_user
+EXPORT_SYMBOL vmlinux 0x4e9dffb5	ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ea9b9d2	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x4eb2b593	notify_change
+EXPORT_SYMBOL vmlinux 0x4eef9e4c	simple_link
+EXPORT_SYMBOL vmlinux 0x4f00a7e0	pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0x4f037162	agp_backend_release
+EXPORT_SYMBOL vmlinux 0x4f04e87a	bio_copy_user
+EXPORT_SYMBOL vmlinux 0x4f0ab96d	blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x4f1745c1	genl_register_family
+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 0x4f63ecba	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x4f79af76	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x4fc30b39	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x4fc9418d	proc_dointvec
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe0e597	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4fe99583	atomic64_dec_if_positive
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x4ff3a848	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x4ff87224	skb_append
+EXPORT_SYMBOL vmlinux 0x5001690c	__blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5028651c	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x50384baf	vgacon_remap_base
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506b5d50	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x50718457	sock_create
+EXPORT_SYMBOL vmlinux 0x5084643e	dput
+EXPORT_SYMBOL vmlinux 0x508d93f1	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50e29080	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x50ee5f1c	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x50efb6dc	blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x510875ca	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511c52ce	contig_page_data
+EXPORT_SYMBOL vmlinux 0x514a26e7	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x515e24a7	flush_instruction_cache
+EXPORT_SYMBOL vmlinux 0x516c2b63	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x5184de20	dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x519b0da3	finish_wait
+EXPORT_SYMBOL vmlinux 0x519d26c1	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x519eaf48	uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x51ce5ad3	files_lglock_local_lock_cpu
+EXPORT_SYMBOL vmlinux 0x51cfe801	arp_tbl
+EXPORT_SYMBOL vmlinux 0x51d1d684	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x51dce73b	xfrm_state_walk_init
+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 0x520149ca	thaw_process
+EXPORT_SYMBOL vmlinux 0x52026cdf	security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x522d9090	twl6040_irq_exit
+EXPORT_SYMBOL vmlinux 0x5243a86a	read_cache_page
+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 0x52ada370	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x52bbd2a4	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52e106c2	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x52eeaca6	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x53100569	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x53112cee	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0x53193723	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x53326531	mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5357c619	do_SAK
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+EXPORT_SYMBOL vmlinux 0x53ca718d	proto_register
+EXPORT_SYMBOL vmlinux 0x53d9b7d5	devm_iounmap
+EXPORT_SYMBOL vmlinux 0x53dd4e4d	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x53e5ab54	find_vma
+EXPORT_SYMBOL vmlinux 0x53ebab1b	_outsl_ns
+EXPORT_SYMBOL vmlinux 0x53ed97d8	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x53f0b8d4	scsi_execute
+EXPORT_SYMBOL vmlinux 0x53f4853c	kmem_cache_alloc_trace
+EXPORT_SYMBOL vmlinux 0x53fe2706	write_one_page
+EXPORT_SYMBOL vmlinux 0x5412c7c7	up
+EXPORT_SYMBOL vmlinux 0x5414934b	simple_rename
+EXPORT_SYMBOL vmlinux 0x542a27b2	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544ace53	__break_lease
+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 0x549813a3	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x54a59011	pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54c9d31e	devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x54ddd39c	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54faefcd	pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x550a74e9	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+EXPORT_SYMBOL vmlinux 0x55467ede	fsl_upm_find
+EXPORT_SYMBOL vmlinux 0x5549f8cd	get_agp_version
+EXPORT_SYMBOL vmlinux 0x555b5a18	key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x5568c553	complete
+EXPORT_SYMBOL vmlinux 0x55752ed5	jbd2_journal_check_used_features
+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 0x55f644d6	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x5600904f	fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5614b010	xfrm_policy_walk_done
+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 0x564de088	agp_put_bridge
+EXPORT_SYMBOL vmlinux 0x565c4a23	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x56613669	do_splice_direct
+EXPORT_SYMBOL vmlinux 0x5671b3b2	powerpc_debugfs_root
+EXPORT_SYMBOL vmlinux 0x56790a3c	__nla_put
+EXPORT_SYMBOL vmlinux 0x56a10763	csum_tcpudp_magic
+EXPORT_SYMBOL vmlinux 0x56b08d7c	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x56b568ad	phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x56b8a69b	dump_seek
+EXPORT_SYMBOL vmlinux 0x56c2b95b	rtas_progress
+EXPORT_SYMBOL vmlinux 0x56c858eb	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56f607ab	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x57154c1e	phy_device_free
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+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 0x5777c788	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x5785384a	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x579bd2c6	dev_activate
+EXPORT_SYMBOL vmlinux 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x57ddef52	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x57e3e457	get_disk
+EXPORT_SYMBOL vmlinux 0x57fb990a	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0x580fbc2e	pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x5814a170	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x5825e1fc	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x582a4747	cacheable_memcpy
+EXPORT_SYMBOL vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x5840d0de	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0x5856c492	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x5857b225	ioread16_rep
+EXPORT_SYMBOL vmlinux 0x585fc4e0	pskb_copy
+EXPORT_SYMBOL vmlinux 0x58a47e5f	do_sync_write
+EXPORT_SYMBOL vmlinux 0x58ac528b	flush_hash_entry
+EXPORT_SYMBOL vmlinux 0x58b731e0	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x58c6a9f8	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x58cf761b	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x59137996	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x593aedc4	__napi_complete
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x594e5161	skb_copy
+EXPORT_SYMBOL vmlinux 0x595d0946	empty_zero_page
+EXPORT_SYMBOL vmlinux 0x5965b693	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x5969b3d0	set_disk_ro
+EXPORT_SYMBOL vmlinux 0x596f252d	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x5976a647	__lock_page
+EXPORT_SYMBOL vmlinux 0x598f2c80	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x59b3378a	completion_done
+EXPORT_SYMBOL vmlinux 0x59b9a4bc	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x59c7458e	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a	ioport_resource
+EXPORT_SYMBOL vmlinux 0x59db111b	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x5a3daf5e	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x5a61a763	noop_llseek
+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 0x5ab67931	do_IRQ
+EXPORT_SYMBOL vmlinux 0x5ac1e4d1	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b2bc848	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x5b39988e	ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x5b42901c	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x5b43f1f1	rtas_service_present
+EXPORT_SYMBOL vmlinux 0x5b480a95	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x5b6546a3	sk_stream_error
+EXPORT_SYMBOL vmlinux 0x5b9828c5	dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x5bb94eec	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x5bbae750	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x5bc7fa62	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x5bc8b685	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x5bcc00b8	input_mt_report_slot_state
+EXPORT_SYMBOL vmlinux 0x5be882bc	d_delete
+EXPORT_SYMBOL vmlinux 0x5bf2c1c8	xfrm_policy_delete
+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 0x5c3ad899	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x5c3d5c59	__quota_error
+EXPORT_SYMBOL vmlinux 0x5c4e1dd4	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c6c6a63	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x5cc9bb99	mmc_start_req
+EXPORT_SYMBOL vmlinux 0x5cd1b53d	pipe_lock
+EXPORT_SYMBOL vmlinux 0x5d26b365	stop_tty
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d6bdce1	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0x5d7b89b4	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x5dbd6dda	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x5df73517	proc_dostring
+EXPORT_SYMBOL vmlinux 0x5e0c6aa2	tty_port_close
+EXPORT_SYMBOL vmlinux 0x5e32b318	neigh_table_init
+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 0x5e9cd4fc	skb_split
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5ecf9c08	skb_trim
+EXPORT_SYMBOL vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eebd206	give_up_console
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f063e52	sock_wfree
+EXPORT_SYMBOL vmlinux 0x5f1a2fbe	generic_read_dir
+EXPORT_SYMBOL vmlinux 0x5f29db22	padata_do_serial
+EXPORT_SYMBOL vmlinux 0x5f3798dd	tcp_initialize_rcv_mss
+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 0x5fa0f6f9	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fac15b5	seq_open_private
+EXPORT_SYMBOL vmlinux 0x5fcab94f	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x604660a8	tty_vhangup
+EXPORT_SYMBOL vmlinux 0x6057911c	bdev_read_only
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x60743f43	kunmap_high
+EXPORT_SYMBOL vmlinux 0x6080050e	register_filesystem
+EXPORT_SYMBOL vmlinux 0x6086fae9	rwsem_wake
+EXPORT_SYMBOL vmlinux 0x60879983	module_layout
+EXPORT_SYMBOL vmlinux 0x60892825	twl6040_power
+EXPORT_SYMBOL vmlinux 0x608e14d1	__bread
+EXPORT_SYMBOL vmlinux 0x60973578	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60cbf95c	km_state_expired
+EXPORT_SYMBOL vmlinux 0x6104b487	__skb_warn_lro_forwarding
+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 0x61458c31	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x615867fa	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x616892fd	scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x61ae81d2	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c41773	__put_cred
+EXPORT_SYMBOL vmlinux 0x61d3597c	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x61ed1d9c	sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x61eef2c9	_insb
+EXPORT_SYMBOL vmlinux 0x61f5d4a7	dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x621d9203	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x6225637e	md5_transform
+EXPORT_SYMBOL vmlinux 0x6225f298	dev_load
+EXPORT_SYMBOL vmlinux 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL vmlinux 0x6237c41a	nf_afinfo
+EXPORT_SYMBOL vmlinux 0x623d7182	_chrp_type
+EXPORT_SYMBOL vmlinux 0x624142cd	pci_iounmap
+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 0x62c3ada5	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x62cd8754	__tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x62eaf026	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x63176a96	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL vmlinux 0x631e48d6	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x6331d99f	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x6332cc1a	audit_log_start
+EXPORT_SYMBOL vmlinux 0x6337dfce	ab8500_gpadc_convert
+EXPORT_SYMBOL vmlinux 0x633a31be	pipe_to_file
+EXPORT_SYMBOL vmlinux 0x635065f8	poll_initwait
+EXPORT_SYMBOL vmlinux 0x635dd48f	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x636227ec	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x636cb80b	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x637b66e4	inet_register_protosw
+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 0x63ac4f1d	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x63b5cd15	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x63baf77a	scsi_verify_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x63c5b55d	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x63cef1f7	proto_unregister
+EXPORT_SYMBOL vmlinux 0x63d1645f	elv_rb_del
+EXPORT_SYMBOL vmlinux 0x63d69f63	elevator_change
+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 0x645cffdb	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0x646cc6ab	pmu_poll
+EXPORT_SYMBOL vmlinux 0x646dc903	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x6472a778	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a1fe16	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x64b99bd1	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x64c28b8b	pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x64c597a0	pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x64ef0d66	jbd2_journal_dirty_metadata
+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 0x6585e310	alloc_pages_exact_nid
+EXPORT_SYMBOL vmlinux 0x6587497e	unregister_exec_domain
+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 0x65e19781	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x65ed0cc9	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x65ed21fb	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x65ee585a	kern_path
+EXPORT_SYMBOL vmlinux 0x65f52299	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x65f7be35	cpu_rmap_update
+EXPORT_SYMBOL vmlinux 0x662769bb	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x663c0a43	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x6649bd62	mdiobus_free
+EXPORT_SYMBOL vmlinux 0x66602700	netlink_broadcast
+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 0x66d0ee54	vfsmount_lock_global_unlock
+EXPORT_SYMBOL vmlinux 0x66dbea17	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x66dd9857	pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x66ddffea	input_set_keycode
+EXPORT_SYMBOL vmlinux 0x66df8035	input_free_device
+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 0x673099ab	abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x6737e067	register_con_driver
+EXPORT_SYMBOL vmlinux 0x67398162	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL vmlinux 0x6764494e	pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x67720f49	tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x6782ef66	set_page_dirty
+EXPORT_SYMBOL vmlinux 0x678a8cf5	pci_read_irq_line
+EXPORT_SYMBOL vmlinux 0x67b3e93e	of_get_mac_address
+EXPORT_SYMBOL vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67c83991	genphy_suspend
+EXPORT_SYMBOL vmlinux 0x67cfbec7	dcache_readdir
+EXPORT_SYMBOL vmlinux 0x67d11984	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x67f85e2a	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x6833c9c5	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x6849a15f	flex_array_clear
+EXPORT_SYMBOL vmlinux 0x68609857	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x687e9226	request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x68811ccc	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x688bcfb5	kernel_listen
+EXPORT_SYMBOL vmlinux 0x6898df33	filemap_fault
+EXPORT_SYMBOL vmlinux 0x68cfe9ea	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x68e0e289	idr_remove
+EXPORT_SYMBOL vmlinux 0x68f18c5d	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x690a84ef	i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0x691eb55f	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6971c3df	__any_online_cpu
+EXPORT_SYMBOL vmlinux 0x697a7ac6	km_query
+EXPORT_SYMBOL vmlinux 0x69a0ca7d	iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a44d02	pci_find_capability
+EXPORT_SYMBOL vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL vmlinux 0x69d38ed9	__scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69d7e5b8	__debugger_ipi
+EXPORT_SYMBOL vmlinux 0x69dd4a54	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x69e27c7a	bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69f527d1	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a055b60	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x6a39d295	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x6a3faf3b	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x6a43adf8	sock_create_lite
+EXPORT_SYMBOL vmlinux 0x6a4de418	journal_start_commit
+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 0x6a96611d	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0x6a987aa2	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x6aa0e4a7	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x6ab5f520	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ace3320	seq_write
+EXPORT_SYMBOL vmlinux 0x6aff7059	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x6b137fa9	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b2adabc	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b2ee260	journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x6b825ea5	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x6b9433cd	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x6baae653	cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc61cee	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x6bc62c96	mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x6bd5b75a	blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x6bdbc634	lookup_one_len
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6be2bd3b	seq_release_private
+EXPORT_SYMBOL vmlinux 0x6beba138	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x6c058637	input_register_device
+EXPORT_SYMBOL vmlinux 0x6c1a66e5	mntput
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL vmlinux 0x6c3ed2c7	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x6c42e3d1	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x6c5ce2ca	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x6c5ed483	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c63eebc	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x6c665691	flex_array_shrink
+EXPORT_SYMBOL vmlinux 0x6c6cc83f	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x6c6e8a19	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x6c702af7	sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c9300db	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x6c95d00a	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x6c99a300	pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x6c9dad9c	bdi_set_max_ratio
+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 0x6d0e2f1a	inet_proto_csum_replace4
+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 0x6d3909b3	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x6d464175	__sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d6c2a94	blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d6e8f1e	mdiobus_register
+EXPORT_SYMBOL vmlinux 0x6da928f4	_insw_ns
+EXPORT_SYMBOL vmlinux 0x6dbdd043	mnt_pin
+EXPORT_SYMBOL vmlinux 0x6dd197e5	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x6dd94aaa	i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x6deaa11b	scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6def5b64	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x6dfff786	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x6e130300	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x6e1ac7b2	scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x6e2f398f	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x6e321c34	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x6e3fc78c	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x6e59e2c2	tcf_em_register
+EXPORT_SYMBOL vmlinux 0x6e601be0	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x6e6fb0e3	dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e777c59	generic_write_end
+EXPORT_SYMBOL vmlinux 0x6e81b9e6	netdev_warn
+EXPORT_SYMBOL vmlinux 0x6e89faa6	lock_may_write
+EXPORT_SYMBOL vmlinux 0x6e8e9313	twl6040_get_sysclk
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ea1cf1a	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x6eb7bd41	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x6ec2171b	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x6ec21b20	vfs_readlink
+EXPORT_SYMBOL vmlinux 0x6ec2b354	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x6f0a5dee	unload_nls
+EXPORT_SYMBOL vmlinux 0x6f10eb4a	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x6f47786d	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x6f9e744a	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdac40e	scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x6fddaee4	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x6fe470e1	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x6fe711ed	swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x6ff7adbe	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x6ffdd2e4	mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x6fff393f	time_to_tm
+EXPORT_SYMBOL vmlinux 0x70255f4a	generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x7038eb02	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x703dce0c	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL vmlinux 0x70bc17d7	inode_wait
+EXPORT_SYMBOL vmlinux 0x70cad968	d_lookup
+EXPORT_SYMBOL vmlinux 0x70d053fd	try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x70d888b7	__debugger_fault_handler
+EXPORT_SYMBOL vmlinux 0x70ecc5eb	bdevname
+EXPORT_SYMBOL vmlinux 0x70ef4886	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x70f86c70	pmu_queue_request
+EXPORT_SYMBOL vmlinux 0x7106ff82	jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x711b816c	i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x7146203a	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x714ce3d7	serio_reconnect
+EXPORT_SYMBOL vmlinux 0x71528178	blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x716d308b	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x718e550e	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x71a445cc	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71b5082c	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL vmlinux 0x71d3b197	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x71e4da59	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x71f0b3d5	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x720c9564	blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x7210112e	submit_bio
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x7247e29e	pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x724ecd8a	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x725c3c82	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x727bf775	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x728be9f6	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x728dd5ac	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x729e8e2f	wireless_send_event
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72aef263	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL vmlinux 0x72bf0feb	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x72d1cccc	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x72d58de9	kstrtou8_from_user
+EXPORT_SYMBOL vmlinux 0x72e50086	vm_stat
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x730ff363	param_set_uint
+EXPORT_SYMBOL vmlinux 0x7315a4e9	twl6030_mmc_card_detect_config
+EXPORT_SYMBOL vmlinux 0x73181136	lookup_hash
+EXPORT_SYMBOL vmlinux 0x731d9cc5	pci_ltr_supported
+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 0x734154d3	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x735d8503	add_wait_queue
+EXPORT_SYMBOL vmlinux 0x7362dd1e	vfs_fstat
+EXPORT_SYMBOL vmlinux 0x7363b22f	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x736c79dc	param_get_byte
+EXPORT_SYMBOL vmlinux 0x736e945d	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x73710a3e	dqstats
+EXPORT_SYMBOL vmlinux 0x737de5e9	radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x738ebbe4	scsi_finish_command
+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 0x73ecc7ba	filemap_flush
+EXPORT_SYMBOL vmlinux 0x741e5aaa	journal_flush
+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 0x7496eda1	sk_common_release
+EXPORT_SYMBOL vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74cc1cbe	unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74ed5250	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x74fbb5a1	fb_pan_display
+EXPORT_SYMBOL vmlinux 0x74fe8730	sys_ctrler
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x7511c356	kernel_accept
+EXPORT_SYMBOL vmlinux 0x751b2247	param_get_bool
+EXPORT_SYMBOL vmlinux 0x751c2917	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0x7538b132	agp_off
+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 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 0x75db2069	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x76152aa4	init_net
+EXPORT_SYMBOL vmlinux 0x761fb071	release_sock
+EXPORT_SYMBOL vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL vmlinux 0x764ab346	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x767ba033	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x767eca88	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x768cde32	kmap_high
+EXPORT_SYMBOL vmlinux 0x76b7097a	xfrm_alloc_spi
+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 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7746192e	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x77722611	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x7792d55f	skb_clone
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77b69166	buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x77b851c4	cacheable_memzero
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77df0847	__set_personality
+EXPORT_SYMBOL vmlinux 0x77e562b1	skb_copy_datagram_from_iovec
+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 0x785454c7	skb_queue_tail
+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 0x78cc55c7	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e7b2e6	blk_end_request
+EXPORT_SYMBOL vmlinux 0x78ed3e5c	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x78f00a47	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x790df6ca	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x7914c68c	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x79301fb7	skb_add_rx_frag
+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 0x79759a73	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x79818859	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x7998400d	pci_request_region
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79c08215	netdev_notice
+EXPORT_SYMBOL vmlinux 0x79c7a71f	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x79f5634c	of_platform_device_create
+EXPORT_SYMBOL vmlinux 0x7a0960fe	pci_pme_active
+EXPORT_SYMBOL vmlinux 0x7a0d8a2a	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x7a0e3ea0	get_unmapped_area_prot
+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 0x7a4c1a55	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x7a4c486e	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a55c0bf	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x7a6f49ea	sock_register
+EXPORT_SYMBOL vmlinux 0x7a739d51	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x7a83b7bb	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x7a947509	tty_port_put
+EXPORT_SYMBOL vmlinux 0x7a9a43bf	scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x7ac492b8	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x7afa89fc	vsnprintf
+EXPORT_SYMBOL vmlinux 0x7b03848a	verify_mem_not_deleted
+EXPORT_SYMBOL vmlinux 0x7b0e9c69	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x7b119dac	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x7b16fee9	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x7b2e5bce	journal_restart
+EXPORT_SYMBOL vmlinux 0x7b32a0f9	__sock_create
+EXPORT_SYMBOL vmlinux 0x7b3512ac	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0x7b5fe887	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x7b6fecf4	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x7bbc26db	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x7bbc3b0c	iw_handler_get_spy
+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 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 0x7c53e600	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c65dc5b	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x7c6af413	ip_fragment
+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 0x7cbe36f8	udp_proc_register
+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 0x7d04c5d4	cap_netlink_recv
+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 0x7d3fb284	genphy_read_status
+EXPORT_SYMBOL vmlinux 0x7d4e2d05	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x7d56a43f	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x7d7f5fc6	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x7d848445	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x7d8c8750	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x7d95df3c	tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x7d99744e	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x7db72bc3	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x7dc97879	rtas_get_error_log_max
+EXPORT_SYMBOL vmlinux 0x7ddca5fb	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e394c4e	sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3e0574	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x7e46580a	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x7e64bd7c	cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x7e7b9c09	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x7e87227e	slhc_compress
+EXPORT_SYMBOL vmlinux 0x7eaf22d3	pci_clear_master
+EXPORT_SYMBOL vmlinux 0x7ee394b8	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0x7ee79ab1	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x7eff10d6	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f52ccbc	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x7f8c7ede	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0x7fa97f54	do_splice_from
+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 0x801ae971	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x801f5a3f	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x806052e1	elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x806d1390	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x806e0bba	__mutex_init
+EXPORT_SYMBOL vmlinux 0x80707893	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x807cb4b3	pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x808c4155	aio_complete
+EXPORT_SYMBOL vmlinux 0x80bbc42d	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x80d2046b	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x80e6373b	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x810b3618	param_ops_string
+EXPORT_SYMBOL vmlinux 0x810bfe21	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x8136192b	vfs_create
+EXPORT_SYMBOL vmlinux 0x8137400d	max8998_bulk_write
+EXPORT_SYMBOL vmlinux 0x814e7730	nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814f4849	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x815b5dd4	match_octal
+EXPORT_SYMBOL vmlinux 0x8172779c	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x81819480	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0x818c060e	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x81a07f4e	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x81b1babe	fb_show_logo
+EXPORT_SYMBOL vmlinux 0x81ba796d	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0x81c0a84f	rtas_set_indicator
+EXPORT_SYMBOL vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL vmlinux 0x81e05f5c	sg_miter_start
+EXPORT_SYMBOL vmlinux 0x82034bdc	posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL vmlinux 0x82431012	bioset_free
+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 0x8276d448	sk_receive_skb
+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 0x82b6c9a1	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x82e5a238	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x82e933dc	blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x83039cae	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x8305c36b	dquot_operations
+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 0x83531e2b	set_user_nice
+EXPORT_SYMBOL vmlinux 0x835a1f7b	lock_may_read
+EXPORT_SYMBOL vmlinux 0x8362c8f0	mount_subtree
+EXPORT_SYMBOL vmlinux 0x83641da3	del_gendisk
+EXPORT_SYMBOL vmlinux 0x8371550c	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x83761054	__scm_send
+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 0x83ac8276	console_stop
+EXPORT_SYMBOL vmlinux 0x83b741b2	dst_destroy
+EXPORT_SYMBOL vmlinux 0x83e246aa	padata_do_parallel
+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 0x845a9949	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL vmlinux 0x84bd69bf	dq_data_lock
+EXPORT_SYMBOL vmlinux 0x84cfcc67	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x84e74747	register_gifconf
+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 0x8555a971	current_fs_time
+EXPORT_SYMBOL vmlinux 0x855969af	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x8567f496	genphy_resume
+EXPORT_SYMBOL vmlinux 0x858e5273	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85dd6388	machine_id
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x85ec3880	vfs_readv
+EXPORT_SYMBOL vmlinux 0x8639ef0d	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x86a4889a	kmalloc_order_trace
+EXPORT_SYMBOL vmlinux 0x86b803f8	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x86bb4b5b	tcf_exts_destroy
+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 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x86fbc281	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x870bf928	radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x870eda0d	search_binary_handler
+EXPORT_SYMBOL vmlinux 0x871c0a7e	fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872ffc82	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x8749cd42	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x877f1024	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87903d95	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x87b13327	pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x87bb7141	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x87c02e24	fb_class
+EXPORT_SYMBOL vmlinux 0x87c7517a	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x87d0fd59	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x87e378fd	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x87ef52b3	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x880c9e40	pm860x_page_reg_write
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x882df2c6	security_path_chown
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x883e214e	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x885c4286	agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0x887e769d	cdrom_release
+EXPORT_SYMBOL vmlinux 0x88b2dc6a	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x88ed0505	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x89007483	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x89024e2f	mem_map
+EXPORT_SYMBOL vmlinux 0x8910d6e1	netif_set_real_num_tx_queues
+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 0x89d5538d	fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811	build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89da4432	of_iomap
+EXPORT_SYMBOL vmlinux 0x8a19fc61	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x8a28a7c4	of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0x8a2a1ae5	sk_reset_timer
+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 0x8a68b88b	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x8a6ac417	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a8181eb	noop_qdisc
+EXPORT_SYMBOL vmlinux 0x8a88dad6	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aad8f1a	pci_get_class
+EXPORT_SYMBOL vmlinux 0x8ab4079e	atomic64_add
+EXPORT_SYMBOL vmlinux 0x8aca01fb	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x8ad8d21c	soft_cursor
+EXPORT_SYMBOL vmlinux 0x8adec6ba	proc_symlink
+EXPORT_SYMBOL vmlinux 0x8b09dec6	d_find_alias
+EXPORT_SYMBOL vmlinux 0x8b17e53c	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x8b1a7a66	pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b1c6cb5	pci_dev_get
+EXPORT_SYMBOL vmlinux 0x8b29fff8	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x8b2bfc59	inet_sendpage
+EXPORT_SYMBOL vmlinux 0x8b3c5e0b	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x8b40acde	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x8b6c6d6a	swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x8b99de79	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x8bb61928	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x8bca0bd3	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x8bd73150	vc_cons
+EXPORT_SYMBOL vmlinux 0x8beb358a	macio_request_resource
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c284dfb	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x8c382ac4	ppc_md
+EXPORT_SYMBOL vmlinux 0x8c60fe3a	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x8c792c87	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x8c7a3757	of_get_named_gpio_flags
+EXPORT_SYMBOL vmlinux 0x8cb70c26	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccf2049	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x8cd2570f	mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x8ce04bdd	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x8cf1dd70	otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x8cf88db0	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x8cfff4ea	skb_pull
+EXPORT_SYMBOL vmlinux 0x8d024660	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x8d0291ad	generic_error_remove_page
+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 0x8d82c357	generic_writepages
+EXPORT_SYMBOL vmlinux 0x8d9e09aa	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x8de0b5ac	mempool_create
+EXPORT_SYMBOL vmlinux 0x8de78360	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x8df5da63	memstart_addr
+EXPORT_SYMBOL vmlinux 0x8df793b7	input_allocate_device
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e158eb9	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x8e18e0ff	uart_update_timeout
+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 0x8e7bbd21	__blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x8e827151	input_alloc_absinfo
+EXPORT_SYMBOL vmlinux 0x8e916c02	sock_no_accept
+EXPORT_SYMBOL vmlinux 0x8ec04552	_raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x8edd2838	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f0ba8e5	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f57e4af	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x8f69e82e	tcp_timewait_state_process
+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 0x8fcbb35c	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x8fd7d508	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x8fdbae4e	module_refcount
+EXPORT_SYMBOL vmlinux 0x8ff08e88	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x902283cb	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x9026fe4b	md_done_sync
+EXPORT_SYMBOL vmlinux 0x90428f63	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x90501868	transfer_to_handler
+EXPORT_SYMBOL vmlinux 0x905bba18	vm_event_states
+EXPORT_SYMBOL vmlinux 0x907369a8	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x9095d0de	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90d0408e	neigh_create
+EXPORT_SYMBOL vmlinux 0x90dd3721	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x90e146c2	trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x910be51a	__d_drop
+EXPORT_SYMBOL vmlinux 0x9117bb33	dev_err
+EXPORT_SYMBOL vmlinux 0x91180433	simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x912557ce	rtas_busy_delay
+EXPORT_SYMBOL vmlinux 0x91309613	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x9144e15e	vfs_open
+EXPORT_SYMBOL vmlinux 0x91463b1d	kstrtos16
+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 0x91943b51	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x919d1163	tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x91ad9583	padata_free
+EXPORT_SYMBOL vmlinux 0x91ae2a33	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x91d88e48	__debugger_dabr_match
+EXPORT_SYMBOL vmlinux 0x91dcd689	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x91ea0537	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x9207c82e	netdev_state_change
+EXPORT_SYMBOL vmlinux 0x922a6799	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x9237ac18	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x92454773	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x927bef67	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x928dc8b5	rename_lock
+EXPORT_SYMBOL vmlinux 0x92a2c46d	ida_get_new
+EXPORT_SYMBOL vmlinux 0x92adaa2e	scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x92e7fefd	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9309de94	cuda_request
+EXPORT_SYMBOL vmlinux 0x93214503	jbd2_journal_lock_updates
+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 0x9369c044	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x9372288c	writeback_inodes_sb_nr_if_idle
+EXPORT_SYMBOL vmlinux 0x9372e907	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x93997a20	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93b92a8e	ppp_input
+EXPORT_SYMBOL vmlinux 0x93b9f5af	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0x93bf9195	bio_put
+EXPORT_SYMBOL vmlinux 0x93c30b28	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x93c61997	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x93cdb309	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x93cfeee5	kthread_stop
+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 0x9419563a	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x94231694	mpage_readpage
+EXPORT_SYMBOL vmlinux 0x946c5bce	lease_modify
+EXPORT_SYMBOL vmlinux 0x947f351e	netdev_err
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x948b0614	mii_check_media
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94ed6a6c	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x94f29a40	padata_stop
+EXPORT_SYMBOL vmlinux 0x95064656	blk_put_request
+EXPORT_SYMBOL vmlinux 0x9514151a	_mcount
+EXPORT_SYMBOL vmlinux 0x951c0fcc	mmc_try_claim_host
+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 0x954a7227	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x95926c40	do_sync_read
+EXPORT_SYMBOL vmlinux 0x95995856	pci_disable_device
+EXPORT_SYMBOL vmlinux 0x95afb436	skb_find_text
+EXPORT_SYMBOL vmlinux 0x95cca5bc	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x95d463e8	blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x95e34125	udplite_prot
+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 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0x966c68dd	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x966e6fd3	journal_stop
+EXPORT_SYMBOL vmlinux 0x96786ced	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x9680e67c	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x9681bb91	aio_put_req
+EXPORT_SYMBOL vmlinux 0x9688254b	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x969dc368	pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x96b50775	d_invalidate
+EXPORT_SYMBOL vmlinux 0x96cd2b04	scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d1f2a7	mmc_assume_removable
+EXPORT_SYMBOL vmlinux 0x96dbcca2	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x96ffe000	pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x9704e93a	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x970c4173	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x97165546	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL vmlinux 0x9726ea98	splice_direct_to_actor
+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 0x97a27ae4	generic_fillattr
+EXPORT_SYMBOL vmlinux 0x97cc6d59	serio_interrupt
+EXPORT_SYMBOL vmlinux 0x97da08ff	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x97ed88a9	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x97f55603	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x97f5e2c7	seq_release
+EXPORT_SYMBOL vmlinux 0x982214c8	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x985d0d73	i2c_master_send
+EXPORT_SYMBOL vmlinux 0x986e6135	fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987ac016	vfs_mknod
+EXPORT_SYMBOL vmlinux 0x987c8661	touch_atime
+EXPORT_SYMBOL vmlinux 0x98860e74	user_revoke
+EXPORT_SYMBOL vmlinux 0x98874749	of_get_next_child
+EXPORT_SYMBOL vmlinux 0x9889a56a	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x9896d514	generic_cont_expand_simple
+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 0x98d09068	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x98df59b1	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0x98f0a302	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x98faa5b8	bdi_init
+EXPORT_SYMBOL vmlinux 0x98fe7882	DMA_MODE_READ
+EXPORT_SYMBOL vmlinux 0x993e9bcb	neigh_lookup
+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 0x996974ed	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x99812f98	drop_super
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99afe916	_raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x99bb8806	memmove
+EXPORT_SYMBOL vmlinux 0x99bfbe39	get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99cdc86b	sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ef84d3	mmc_free_host
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a31e67d	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x9a368f43	devm_ioremap_prot
+EXPORT_SYMBOL vmlinux 0x9a3b356d	pci_release_regions
+EXPORT_SYMBOL vmlinux 0x9a4962ae	of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x9a626734	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x9a65dde2	of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9acdfd72	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x9af8e0ae	__f_setown
+EXPORT_SYMBOL vmlinux 0x9b0c4bc9	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0x9b2d4fda	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x9b2fe2bd	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b68e095	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL vmlinux 0x9b76421f	block_is_partially_uptodate
+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 0x9c13601e	icmp_send
+EXPORT_SYMBOL vmlinux 0x9c251f06	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x9c26bc65	__napi_schedule
+EXPORT_SYMBOL vmlinux 0x9c291e48	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0x9c38b3a2	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x9c48cd64	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c7702bb	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x9cb173c6	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cca1e8c	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x9cd5888e	__get_page_tail
+EXPORT_SYMBOL vmlinux 0x9cdf0ec5	vfsmount_lock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x9ce3f83f	nvram_write_byte
+EXPORT_SYMBOL vmlinux 0x9ceae7eb	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x9ceb163c	memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cf1d957	jbd2_journal_unlock_updates
+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 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d5347ca	dquot_commit
+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 0x9d7fd55d	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x9d9c9597	idr_init
+EXPORT_SYMBOL vmlinux 0x9da092bf	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x9dd02b7f	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x9ddccdac	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x9dded565	i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e1cfc90	ioremap_wc
+EXPORT_SYMBOL vmlinux 0x9e2000a7	memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e27c44d	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x9e5434e5	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x9e607910	audit_log
+EXPORT_SYMBOL vmlinux 0x9e672ff6	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x9e82db74	register_netdevice
+EXPORT_SYMBOL vmlinux 0x9e97375d	rtas_busy_delay_time
+EXPORT_SYMBOL vmlinux 0x9e9b5e59	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ecd79ab	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9ef60f12	input_close_device
+EXPORT_SYMBOL vmlinux 0x9eff1568	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x9f0220df	update_region
+EXPORT_SYMBOL vmlinux 0x9f046671	of_match_device
+EXPORT_SYMBOL vmlinux 0x9f14b934	scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x9f1e0bfd	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f414638	arp_find
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f5ed489	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x9f7f88da	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL vmlinux 0x9fb3dd30	memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9ffa57e2	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xa02473d1	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xa035885b	simple_fill_super
+EXPORT_SYMBOL vmlinux 0xa03dac03	xfrm_policy_walk
+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 0xa0745e30	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa08cae13	blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0xa098471a	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xa0ae37c4	__cleancache_flush_fs
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51	out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d072f1	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa11af587	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1415618	twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa162ed66	arp_invalidate
+EXPORT_SYMBOL vmlinux 0xa17e70bc	journal_load
+EXPORT_SYMBOL vmlinux 0xa1884089	i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0xa188802c	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xa1a69cec	names_cachep
+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 0xa1eaa8fe	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xa1f757c5	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xa1f8fe75	wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xa20b9dfd	ll_rw_block
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa215c48d	of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0xa2647a16	nla_reserve
+EXPORT_SYMBOL vmlinux 0xa269223e	pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0xa26b3997	agp_bridge
+EXPORT_SYMBOL vmlinux 0xa2711146	create_proc_entry
+EXPORT_SYMBOL vmlinux 0xa2794d7a	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2a9c3d2	mdiobus_unregister
+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 0xa2e39fc3	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa2eef8ae	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xa2ef34d7	rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f0898b	scm_detach_fds
+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 0xa320eca9	ip_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 0xa3bf4a85	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xa3dd69cb	blk_register_region
+EXPORT_SYMBOL vmlinux 0xa3e75545	flush_tlb_kernel_range
+EXPORT_SYMBOL vmlinux 0xa40422b5	log_wait_commit
+EXPORT_SYMBOL vmlinux 0xa42232b4	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xa42d57f1	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44fc028	write_cache_pages
+EXPORT_SYMBOL vmlinux 0xa484f9d1	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xa4976b10	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xa4a94d26	find_next_bit_le
+EXPORT_SYMBOL vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c5c0bc	dentry_unhash
+EXPORT_SYMBOL vmlinux 0xa4d4f0e6	global_cache_flush
+EXPORT_SYMBOL vmlinux 0xa4e7ffe2	kobject_add
+EXPORT_SYMBOL vmlinux 0xa51c6ef3	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0xa570ff4a	bio_alloc
+EXPORT_SYMBOL vmlinux 0xa5841186	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a633b9	sg_last
+EXPORT_SYMBOL vmlinux 0xa5a81600	tcp_syn_ack_timeout
+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 0xa61ac58c	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xa61eb210	netif_napi_add
+EXPORT_SYMBOL vmlinux 0xa629ae01	generic_file_open
+EXPORT_SYMBOL vmlinux 0xa647f155	journal_revoke
+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 0xa675804c	utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0xa681fe88	generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL vmlinux 0xa6d0e802	abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa70ffa0c	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xa7175fef	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xa717fae3	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0xa719ad38	override_creds
+EXPORT_SYMBOL vmlinux 0xa74f36ac	pci_back_from_sleep
+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 0xa7d359ef	input_mt_report_finger_count
+EXPORT_SYMBOL vmlinux 0xa7d9643c	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xa81184fe	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa835c878	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xa860d5d7	__dst_free
+EXPORT_SYMBOL vmlinux 0xa861ab6e	__ioremap
+EXPORT_SYMBOL vmlinux 0xa88943f0	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xa89464b7	__ashldi3
+EXPORT_SYMBOL vmlinux 0xa8ce6266	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xa8f8b976	task_nice
+EXPORT_SYMBOL vmlinux 0xa8f9eefe	dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xa8fef7bb	security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa921c0fe	tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xa93196fd	submit_bh
+EXPORT_SYMBOL vmlinux 0xa93e74b9	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xa9571d6d	DMA_MODE_WRITE
+EXPORT_SYMBOL vmlinux 0xa957287b	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xa95f7d72	phy_detach
+EXPORT_SYMBOL vmlinux 0xa98faca5	led_brightness_set
+EXPORT_SYMBOL vmlinux 0xa997bc7f	bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xa9b99d87	agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0xa9d205e5	register_cdrom
+EXPORT_SYMBOL vmlinux 0xa9e02883	mmc_can_reset
+EXPORT_SYMBOL vmlinux 0xa9e84dc7	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xa9effda5	__first_cpu
+EXPORT_SYMBOL vmlinux 0xa9fc66a8	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xaa23a1ab	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xaa347f9c	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xaa3a06d8	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0xaa468b4a	cfb_fillrect
+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 0xaa83c947	wake_up_process
+EXPORT_SYMBOL vmlinux 0xaa9148f5	cont_write_begin
+EXPORT_SYMBOL vmlinux 0xaaa286ec	kobject_init
+EXPORT_SYMBOL vmlinux 0xaaa8edb3	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xaab8f95e	dump_write
+EXPORT_SYMBOL vmlinux 0xaab9f7e7	node_states
+EXPORT_SYMBOL vmlinux 0xaace3e0a	dmam_alloc_coherent
+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 0xab41566b	get_gendisk
+EXPORT_SYMBOL vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL vmlinux 0xab6bde28	sysctl_max_syn_backlog
+EXPORT_SYMBOL vmlinux 0xab71205f	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0xab76e398	blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xab8d09f8	skb_put
+EXPORT_SYMBOL vmlinux 0xaba50962	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xabace1f9	vfs_follow_link
+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 0xabecf982	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0xabfd2ae0	block_read_full_page
+EXPORT_SYMBOL vmlinux 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac26b820	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0xac5394cf	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xac6855b0	gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac68e010	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0xac69345e	dev_warn
+EXPORT_SYMBOL vmlinux 0xac6f5509	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xac74199d	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xac8f3ff9	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xacbcdd53	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0xacbe7487	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad0a6e0a	flex_array_prealloc
+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 0xad594ed6	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad8c66ec	agp_bind_memory
+EXPORT_SYMBOL vmlinux 0xad8ca5fa	of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0xada3343c	__dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadc311c9	tcf_generic_walker
+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 0xadfb9e1c	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xae07f744	kthread_bind
+EXPORT_SYMBOL vmlinux 0xae545f06	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xae798235	dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xaea7b652	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xaeb2b694	may_umount
+EXPORT_SYMBOL vmlinux 0xaec4e01b	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaeedc6ef	input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xaf020eaf	scsi_allocate_command
+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 0xaf5f7994	remove_conflicting_framebuffers
+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 0xafaabbd5	brioctl_set
+EXPORT_SYMBOL vmlinux 0xafafe241	phy_connect
+EXPORT_SYMBOL vmlinux 0xafb3f7d8	seq_read
+EXPORT_SYMBOL vmlinux 0xafb7cedc	macio_release_resource
+EXPORT_SYMBOL vmlinux 0xafd68c33	flex_array_free
+EXPORT_SYMBOL vmlinux 0xafd8df65	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xafe51093	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xafe7c46e	follow_down
+EXPORT_SYMBOL vmlinux 0xafff3d1d	mempool_alloc
+EXPORT_SYMBOL vmlinux 0xb0016c61	generic_write_sync
+EXPORT_SYMBOL vmlinux 0xb0054556	mmc_can_secure_erase_trim
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb02ae15d	complete_request_key
+EXPORT_SYMBOL vmlinux 0xb0590af3	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xb06ae4b6	agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0xb072049f	flush_tlb_mm
+EXPORT_SYMBOL vmlinux 0xb08ae7a5	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0xb09829d3	alloc_trdev
+EXPORT_SYMBOL vmlinux 0xb0a65f8c	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0bf2bdd	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xb0bfabca	keyring_search
+EXPORT_SYMBOL vmlinux 0xb0cc3fe9	tcf_register_action
+EXPORT_SYMBOL vmlinux 0xb0d9b150	pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0xb0da9a4d	blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xb0dde906	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xb0dff4db	of_create_pci_dev
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0e7227f	path_get
+EXPORT_SYMBOL vmlinux 0xb0f7ab0f	mmc_erase
+EXPORT_SYMBOL vmlinux 0xb0fa499b	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xb125c2ad	freeze_super
+EXPORT_SYMBOL vmlinux 0xb1284bac	setup_new_exec
+EXPORT_SYMBOL vmlinux 0xb15bd8fa	tb_ticks_per_sec
+EXPORT_SYMBOL vmlinux 0xb1748664	skb_pad
+EXPORT_SYMBOL vmlinux 0xb1799c98	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xb19760c3	bitmap_onto
+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 0xb1ec70b1	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xb1edacbe	bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xb233762c	atomic64_set
+EXPORT_SYMBOL vmlinux 0xb241fa0b	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0xb24c2db9	idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xb258a731	ps2_command
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb269cafe	__xfrm_init_state
+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 0xb2bc1c26	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xb2dd48dd	__invalidate_device
+EXPORT_SYMBOL vmlinux 0xb2ea4753	pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xb2f44363	blk_get_request
+EXPORT_SYMBOL vmlinux 0xb30ce8c0	__bforget
+EXPORT_SYMBOL vmlinux 0xb31526ee	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0xb316e4a1	dev_alert
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb34409ac	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xb357869e	devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xb35facec	journal_extend
+EXPORT_SYMBOL vmlinux 0xb37da758	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xb38873ea	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a33b1e	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xb3a77de0	d_path
+EXPORT_SYMBOL vmlinux 0xb3d6adfb	mutex_unlock
+EXPORT_SYMBOL vmlinux 0xb3e36d47	alloc_file
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb4405fd6	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xb4451e1f	blk_start_request
+EXPORT_SYMBOL vmlinux 0xb4453658	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xb451a0aa	generic_mii_ioctl
+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 0xb471cf3f	page_readlink
+EXPORT_SYMBOL vmlinux 0xb4a2f6f1	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xb4aceaf9	journal_set_features
+EXPORT_SYMBOL vmlinux 0xb4bb400a	file_open_root
+EXPORT_SYMBOL vmlinux 0xb4ccf6d3	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xb4e9ab0c	dm_kcopyd_zero
+EXPORT_SYMBOL vmlinux 0xb4ea6cd4	pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xb4eab355	key_put
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb50a6de1	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb50c1455	agp_generic_enable
+EXPORT_SYMBOL vmlinux 0xb5242ff6	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xb5333275	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xb537027f	mpage_readpages
+EXPORT_SYMBOL vmlinux 0xb53a4336	kmap_pte
+EXPORT_SYMBOL vmlinux 0xb53ebe9d	giveup_fpu
+EXPORT_SYMBOL vmlinux 0xb53f2c1c	nf_log_packet
+EXPORT_SYMBOL vmlinux 0xb54533f7	usecs_to_jiffies
+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 0xb5993dde	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a74342	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5d181c9	dev_notice
+EXPORT_SYMBOL vmlinux 0xb611cde1	page_address
+EXPORT_SYMBOL vmlinux 0xb615059e	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xb61b20e6	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xb62601e5	inet6_getname
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb64dd9a6	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0xb64e1650	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xb6592654	bdget_disk
+EXPORT_SYMBOL vmlinux 0xb6599b9a	machine_check_exception
+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 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6aed746	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6d01114	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xb6d806f5	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xb6f8f5ee	mpage_writepages
+EXPORT_SYMBOL vmlinux 0xb71b5b3d	block_write_end
+EXPORT_SYMBOL vmlinux 0xb7332ff0	adb_client_list
+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 0xb7952b04	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xb79ba2ab	dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xb79e3739	mapping_tagged
+EXPORT_SYMBOL vmlinux 0xb7a99781	__irq_regs
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7e0771c	input_inject_event
+EXPORT_SYMBOL vmlinux 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb857da73	ida_destroy
+EXPORT_SYMBOL vmlinux 0xb86e4ab9	random32
+EXPORT_SYMBOL vmlinux 0xb871accc	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xb8759454	__tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0xb884c8db	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0xb890055a	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xb894926d	schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb89deec8	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xb8aa2342	__check_region
+EXPORT_SYMBOL vmlinux 0xb8b8fd0b	macio_dev_put
+EXPORT_SYMBOL vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL vmlinux 0xb8f18812	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xb94374d3	free_inode_nonrcu
+EXPORT_SYMBOL vmlinux 0xb9793405	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9917872	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xb9a39643	pci_dev_put
+EXPORT_SYMBOL vmlinux 0xb9b6441f	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xb9f97a00	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0xba0eaf1f	jbd2_inode_cache
+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 0xba68bb1b	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaba21c2	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xbac3008c	of_dev_put
+EXPORT_SYMBOL vmlinux 0xbad29774	mount_ns
+EXPORT_SYMBOL vmlinux 0xbaee0ea1	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0xbaf1a89e	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0xbb143356	set_bh_page
+EXPORT_SYMBOL vmlinux 0xbb14dbe9	dm_io
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb28ae93	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xbb3a08c3	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb6ed87f	set_binfmt
+EXPORT_SYMBOL vmlinux 0xbb74d7d0	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xbb7934b9	cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0xbb98f2f0	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xbb99125c	get_default_font
+EXPORT_SYMBOL vmlinux 0xbba159e0	files_lglock_local_unlock
+EXPORT_SYMBOL vmlinux 0xbbb51da3	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xbbe5cb37	mddev_congested
+EXPORT_SYMBOL vmlinux 0xbc05bd12	napi_frags_skb
+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 0xbc423604	netdev_alert
+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 0xbca9829d	tty_mutex
+EXPORT_SYMBOL vmlinux 0xbcb2377c	__free_pages
+EXPORT_SYMBOL vmlinux 0xbccdc2f6	flex_array_put
+EXPORT_SYMBOL vmlinux 0xbcffe639	idr_pre_get
+EXPORT_SYMBOL vmlinux 0xbd081588	sk_wait_data
+EXPORT_SYMBOL vmlinux 0xbd0ccf37	should_remove_suid
+EXPORT_SYMBOL vmlinux 0xbd4207d9	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xbd4d6cb7	max8998_write_reg
+EXPORT_SYMBOL vmlinux 0xbd6edd2f	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0xbd803510	tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0xbd8d541d	flush_hash_pages
+EXPORT_SYMBOL vmlinux 0xbd912472	mii_check_link
+EXPORT_SYMBOL vmlinux 0xbd9e5d49	__lshrdi3
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0xbdc1f049	pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0xbdc3dc59	bioset_create
+EXPORT_SYMBOL vmlinux 0xbdc63817	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xbddb26a2	da903x_query_status
+EXPORT_SYMBOL vmlinux 0xbdf41799	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xbdf5c25c	rb_next
+EXPORT_SYMBOL vmlinux 0xbdfea506	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe0f6e20	flush_old_exec
+EXPORT_SYMBOL vmlinux 0xbe17640c	security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe63ee40	request_resource
+EXPORT_SYMBOL vmlinux 0xbe6f064d	idr_for_each
+EXPORT_SYMBOL vmlinux 0xbe7634bf	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0xbe77aebe	down_write_trylock
+EXPORT_SYMBOL vmlinux 0xbe797935	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xbe7b0e78	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xbe820b84	writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xbe94909b	free_buffer_head
+EXPORT_SYMBOL vmlinux 0xbea44d91	inode_init_always
+EXPORT_SYMBOL vmlinux 0xbece327d	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xbed5eb7b	pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf13827c	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xbf32a112	fb_get_mode
+EXPORT_SYMBOL vmlinux 0xbf425e1b	agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0xbf43719a	journal_forget
+EXPORT_SYMBOL vmlinux 0xbf556c3a	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xbf6213e7	tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xbf6abb58	blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xbf77875c	ppp_unit_number
+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 0xbfdff814	of_get_address
+EXPORT_SYMBOL vmlinux 0xbfe05369	nobh_write_end
+EXPORT_SYMBOL vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff9324e	dev_uc_init
+EXPORT_SYMBOL vmlinux 0xc011a384	otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xc01eeaf8	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xc01f06ab	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xc04a61df	security_file_permission
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc068440e	__kfifo_alloc
+EXPORT_SYMBOL vmlinux 0xc07034a5	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xc07568a8	thaw_super
+EXPORT_SYMBOL vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xc0768001	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0xc07d469c	mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xc081a532	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xc0823e4c	twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc097e6ec	register_qdisc
+EXPORT_SYMBOL vmlinux 0xc0a3d105	find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0a8896c	phy_device_register
+EXPORT_SYMBOL vmlinux 0xc0b2494c	vfsmount_lock_lock_init
+EXPORT_SYMBOL vmlinux 0xc0bd548b	kern_path_create
+EXPORT_SYMBOL vmlinux 0xc0d84ced	cuda_poll
+EXPORT_SYMBOL vmlinux 0xc0fd6b6e	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xc0ff9fc2	igrab
+EXPORT_SYMBOL vmlinux 0xc114dcd1	pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc12efd2d	truncate_setsize
+EXPORT_SYMBOL vmlinux 0xc141f3a0	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0xc15f61f9	pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xc17a0b3b	sock_init_data
+EXPORT_SYMBOL vmlinux 0xc196ef7d	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xc19ce467	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0xc1a72912	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0xc1b69f3d	find_or_create_page
+EXPORT_SYMBOL vmlinux 0xc1c2dd09	__hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1dd4a7f	adb_request
+EXPORT_SYMBOL vmlinux 0xc1dfa14a	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xc1eba8d9	of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0xc1ef1e86	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xc2128b8c	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xc21acb0b	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xc2321d8a	of_device_register
+EXPORT_SYMBOL vmlinux 0xc233c2d0	__tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc2576140	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xc2882ea4	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xc2932b75	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0xc296ab7d	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc2a68ff3	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0xc2bf691c	i2c_transfer
+EXPORT_SYMBOL vmlinux 0xc2cc9557	console_start
+EXPORT_SYMBOL vmlinux 0xc2d711e1	krealloc
+EXPORT_SYMBOL vmlinux 0xc2e2a6d9	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc30ccbe8	qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xc311e196	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc317096a	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xc32f4f11	dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0xc33c9a9c	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xc33f6e80	lock_rename
+EXPORT_SYMBOL vmlinux 0xc34c9aac	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xc34cf8e6	uart_resume_port
+EXPORT_SYMBOL vmlinux 0xc34e7acc	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xc34ff0bb	clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xc35e28f7	llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xc365c7f0	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xc368849f	nvram_sync
+EXPORT_SYMBOL vmlinux 0xc3752b7d	kick_iocb
+EXPORT_SYMBOL vmlinux 0xc38d1416	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xc3a1805e	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xc3bcd273	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3daf1c4	dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xc3dce53e	generic_setlease
+EXPORT_SYMBOL vmlinux 0xc3e74eb5	register_8022_client
+EXPORT_SYMBOL vmlinux 0xc3fe87c8	param_ops_uint
+EXPORT_SYMBOL vmlinux 0xc41b3f7b	sg_miter_next
+EXPORT_SYMBOL vmlinux 0xc43b4594	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0xc44f8d9c	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0xc45755de	find_next_zero_bit_le
+EXPORT_SYMBOL vmlinux 0xc45cb892	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0xc465488d	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc469146f	of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0xc46940c3	log_start_commit
+EXPORT_SYMBOL vmlinux 0xc472a3f9	security_file_mmap
+EXPORT_SYMBOL vmlinux 0xc47cdf9c	_raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc4d68fd5	generic_make_request
+EXPORT_SYMBOL vmlinux 0xc4edc7e1	fget
+EXPORT_SYMBOL vmlinux 0xc4efd7ad	dev_deactivate
+EXPORT_SYMBOL vmlinux 0xc4f59692	vfs_link
+EXPORT_SYMBOL vmlinux 0xc50a103a	deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc55c2a9d	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0xc55de23c	percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xc5718627	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0xc58a3a39	find_lock_page
+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 0xc61b5bf1	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xc61be59c	ida_remove
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc647fe5d	serio_rescan
+EXPORT_SYMBOL vmlinux 0xc65abeb7	agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc66208e7	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xc6a27eb6	kill_pid
+EXPORT_SYMBOL vmlinux 0xc6b22c71	__percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xc6c96ef9	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+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 0xc735a025	eth_type_trans
+EXPORT_SYMBOL vmlinux 0xc76223e1	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xc777091a	noop_fsync
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc7959196	sock_rfree
+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 0xc7b97c53	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xc7bd7977	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xc7be9f66	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xc7bf1026	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xc7d4a892	agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc7f5f32d	pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xc7fef722	dentry_open
+EXPORT_SYMBOL vmlinux 0xc8126e8b	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xc81919d8	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0xc81d71a3	blkdev_get_by_dev
+EXPORT_SYMBOL vmlinux 0xc81d7bf8	force_sig
+EXPORT_SYMBOL vmlinux 0xc82372db	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0xc83eb08b	__ps2_command
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc85aa6e6	tcp_prot
+EXPORT_SYMBOL vmlinux 0xc872951a	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xc87615a2	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xc87823bf	twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc88fc0a3	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xc8a77206	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8f3310e	vfs_write
+EXPORT_SYMBOL vmlinux 0xc8f568e8	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xc9001976	journal_start
+EXPORT_SYMBOL vmlinux 0xc90a13c2	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xc9137a01	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xc91fc8f3	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0xc91ff664	down_read_trylock
+EXPORT_SYMBOL vmlinux 0xc944c767	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xc987d7c0	blk_rq_init
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc99bae4e	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL vmlinux 0xc9b8c308	__kfifo_dma_out_prepare
+EXPORT_SYMBOL vmlinux 0xc9e7ba11	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xca30730b	unlink_framebuffer
+EXPORT_SYMBOL vmlinux 0xca391a4a	f_setown
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca637ab3	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xca75e99c	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xca78924f	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xca8140ef	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xca825895	pmu_suspend
+EXPORT_SYMBOL vmlinux 0xcaa91228	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xcac65b9b	udp_prot
+EXPORT_SYMBOL vmlinux 0xcacd272d	atomic64_sub_return
+EXPORT_SYMBOL vmlinux 0xcad08e48	mmu_hash_lock
+EXPORT_SYMBOL vmlinux 0xcad1524c	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xcae10223	led_blink_set
+EXPORT_SYMBOL vmlinux 0xcae271cc	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xcae55420	tcp_poll
+EXPORT_SYMBOL vmlinux 0xcaed6903	pci_enable_ido
+EXPORT_SYMBOL vmlinux 0xcaf0142f	pmac_register_agp_pm
+EXPORT_SYMBOL vmlinux 0xcaf8f593	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xcb0ca741	bio_pair_release
+EXPORT_SYMBOL vmlinux 0xcb0ea462	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xcb19d111	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xcb3ebb71	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xcb7131fb	fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb99edb0	posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0xcba2f422	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xcbafcc72	d_splice_alias
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcc154b65	thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0xcc166c6c	phy_find_first
+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 0xcc4f6bc2	twl6040_irq_init
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc6791e0	release_pages
+EXPORT_SYMBOL vmlinux 0xcc70c9b4	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc918fad	genphy_update_link
+EXPORT_SYMBOL vmlinux 0xcc93ff84	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xcca6883b	generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0xccc7c400	tty_shutdown
+EXPORT_SYMBOL vmlinux 0xccddf8fe	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0xccfbedf3	revalidate_disk
+EXPORT_SYMBOL vmlinux 0xcd02daf3	fb_blank
+EXPORT_SYMBOL vmlinux 0xcd0529c7	_raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd591d48	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xcd7952f7	file_remove_suid
+EXPORT_SYMBOL vmlinux 0xcd8495c3	tty_kref_put
+EXPORT_SYMBOL vmlinux 0xcd86c87f	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0xcda3f674	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0xcdc5e4d9	register_quota_format
+EXPORT_SYMBOL vmlinux 0xcdcaea57	md_write_end
+EXPORT_SYMBOL vmlinux 0xcdd74f3e	phy_stop_interrupts
+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 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 0xce9e74ba	page_put_link
+EXPORT_SYMBOL vmlinux 0xceaabdc8	bdi_destroy
+EXPORT_SYMBOL vmlinux 0xcebec9ab	do_munmap
+EXPORT_SYMBOL vmlinux 0xcef51982	kstrtou16
+EXPORT_SYMBOL vmlinux 0xcf015f7b	do_settimeofday
+EXPORT_SYMBOL vmlinux 0xcf2f736d	udp_ioctl
+EXPORT_SYMBOL vmlinux 0xcf4d9061	__block_write_begin
+EXPORT_SYMBOL vmlinux 0xcf901697	__strnlen_user
+EXPORT_SYMBOL vmlinux 0xcfa5ed9c	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xd010d038	d_genocide
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd03c250e	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xd04ce54d	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xd064c538	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xd06ce1d8	tty_unthrottle
+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 0xd0b50aea	tcp_child_process
+EXPORT_SYMBOL vmlinux 0xd0bba6db	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xd0d42c42	mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xd0e02dae	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0xd0ee38b8	schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f36f0d	audit_log_format
+EXPORT_SYMBOL vmlinux 0xd0f76192	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xd0f8b5c5	vfs_read
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4	__tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL vmlinux 0xd10a2d4c	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xd11c0dc1	__kernel_param_unlock
+EXPORT_SYMBOL vmlinux 0xd1262886	rtas_data_buf
+EXPORT_SYMBOL vmlinux 0xd16c3c76	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd196c9be	kstrtos16_from_user
+EXPORT_SYMBOL vmlinux 0xd1c35adf	__cleancache_init_fs
+EXPORT_SYMBOL vmlinux 0xd1d6e120	journal_update_format
+EXPORT_SYMBOL vmlinux 0xd1e10006	bdget
+EXPORT_SYMBOL vmlinux 0xd205407b	pci_disable_link_state_locked
+EXPORT_SYMBOL vmlinux 0xd216bcc7	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xd2197f71	udp_seq_open
+EXPORT_SYMBOL vmlinux 0xd227e911	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xd251d7b0	security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2520dc3	dev_uc_flush
+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 0xd276f795	param_ops_invbool
+EXPORT_SYMBOL vmlinux 0xd2841dd8	__dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xd28868a2	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xd28d1da5	pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0xd29621e2	posix_lock_file_wait
+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 0xd2d06894	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xd2d51180	of_gpio_count
+EXPORT_SYMBOL vmlinux 0xd309fbe9	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xd3187da4	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0xd31c00ba	agp_copy_info
+EXPORT_SYMBOL vmlinux 0xd31c4bec	generic_show_options
+EXPORT_SYMBOL vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd3385418	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0xd3417ec5	xfrm_stateonly_find
+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 0xd39230da	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xd3956418	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xd3c07d4d	pci_match_id
+EXPORT_SYMBOL vmlinux 0xd3d1811f	scsi_setup_fs_cmnd
+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 0xd41e337a	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xd437c681	tr_type_trans
+EXPORT_SYMBOL vmlinux 0xd43a3da0	user_path_at
+EXPORT_SYMBOL vmlinux 0xd45fa06c	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0xd47493fa	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xd475277a	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xd479d615	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0xd483378b	tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0xd4852e54	dqput
+EXPORT_SYMBOL vmlinux 0xd48e3409	pci_get_device
+EXPORT_SYMBOL vmlinux 0xd4f1a64b	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xd50746d0	unregister_console
+EXPORT_SYMBOL vmlinux 0xd53137df	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xd53ead5e	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xd54ddca3	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xd56a5ca5	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xd57b682c	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xd58f6657	ilookup5
+EXPORT_SYMBOL vmlinux 0xd59627d9	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5b1376d	register_shrinker
+EXPORT_SYMBOL vmlinux 0xd5b2e52a	single_step_exception
+EXPORT_SYMBOL vmlinux 0xd5c7460f	sk_filter
+EXPORT_SYMBOL vmlinux 0xd5cd08d7	journal_wipe
+EXPORT_SYMBOL vmlinux 0xd5e8444a	__div64_32
+EXPORT_SYMBOL vmlinux 0xd5f2172f	del_timer_sync
+EXPORT_SYMBOL vmlinux 0xd616683a	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL vmlinux 0xd627480b	strncat
+EXPORT_SYMBOL vmlinux 0xd62c833f	schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd6415db5	mach_powermac
+EXPORT_SYMBOL vmlinux 0xd6417c37	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0xd67800d0	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0xd69b30e0	atomic64_add_unless
+EXPORT_SYMBOL vmlinux 0xd6a6cfa1	of_get_parent
+EXPORT_SYMBOL vmlinux 0xd6d40daf	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0xd6e5c205	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xd6e64779	of_device_unregister
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd6eee3ed	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xd73f5657	i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xd74b746c	generic_getxattr
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd771f013	dcb_ieee_delapp
+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 0xd7a31d28	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xd7bf620e	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xd7e19e5c	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f29513	set_device_ro
+EXPORT_SYMBOL vmlinux 0xd80f8b36	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0xd8511744	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xd86ed46d	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xd86ed86f	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xd8895038	journal_get_write_access
+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 0xd8e6b59a	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xd8fba643	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xd92514ca	agp_special_page
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd95f106a	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xd969eb9a	uart_register_driver
+EXPORT_SYMBOL vmlinux 0xd980b4f7	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd98675c4	sock_i_ino
+EXPORT_SYMBOL vmlinux 0xd99521bf	generic_permission
+EXPORT_SYMBOL vmlinux 0xd9a4706b	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xd9b1f52b	mii_link_ok
+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 0xd9d1310a	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0xd9d51f45	would_dump
+EXPORT_SYMBOL vmlinux 0xd9e66065	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xda3f5afb	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xda4a6cc4	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0xda551140	nonseekable_open
+EXPORT_SYMBOL vmlinux 0xda5e65ad	__dev_remove_pack
+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 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 0xdacf070b	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xdafa64aa	migrate_page
+EXPORT_SYMBOL vmlinux 0xdb01ab7a	pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xdb091c5a	pci_enable_ltr
+EXPORT_SYMBOL vmlinux 0xdb132f6d	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xdb170f1b	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0xdb25be66	flush_dcache_page
+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 0xdb91b5ee	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xdb9e2c22	posix_acl_create
+EXPORT_SYMBOL vmlinux 0xdbb24fc2	down_write
+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 0xdbe7d99a	module_put
+EXPORT_SYMBOL vmlinux 0xdbf6ff5d	skb_dequeue_tail
+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 0xdc1b6304	of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0xdc229fef	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xdc2519e0	param_set_ulong
+EXPORT_SYMBOL vmlinux 0xdc2adb35	add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc430840	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xdc43a9c8	daemonize
+EXPORT_SYMBOL vmlinux 0xdc5c6439	inet_getname
+EXPORT_SYMBOL vmlinux 0xdc5ca500	nf_reinject
+EXPORT_SYMBOL vmlinux 0xdc732024	irq_stat
+EXPORT_SYMBOL vmlinux 0xdc77473c	pci_domain_nr
+EXPORT_SYMBOL vmlinux 0xdc7af1bc	softnet_data
+EXPORT_SYMBOL vmlinux 0xdc898bc7	unlock_rename
+EXPORT_SYMBOL vmlinux 0xdc9498dd	down
+EXPORT_SYMBOL vmlinux 0xdca1bce8	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdcb33031	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xdcc021ff	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xdcda6473	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xdcefb9a5	pmu_resume
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL vmlinux 0xdd0d1d99	blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL vmlinux 0xdd670f31	ps2_begin_command
+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 0xde2168a1	of_i2c_register_devices
+EXPORT_SYMBOL vmlinux 0xde223ea7	inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xde2f17d0	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0xde323b58	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0xde3bc8d9	unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xde48e9ca	_raw_spin_lock
+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 0xded8c391	unregister_snap_client
+EXPORT_SYMBOL vmlinux 0xdee199d9	pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0xdeeb18b7	key_link
+EXPORT_SYMBOL vmlinux 0xdef3c5ad	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xdeff5cf4	napi_get_frags
+EXPORT_SYMBOL vmlinux 0xdf0552ee	__bio_clone
+EXPORT_SYMBOL vmlinux 0xdf289201	d_alloc_root
+EXPORT_SYMBOL vmlinux 0xdf4c8767	ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf5c6bb7	__breadahead
+EXPORT_SYMBOL vmlinux 0xdf60cc27	__print_symbol
+EXPORT_SYMBOL vmlinux 0xdf849df0	sk_dst_check
+EXPORT_SYMBOL vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfe39c7c	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xdff43ed4	__debugger
+EXPORT_SYMBOL vmlinux 0xdff56e64	adb_poll
+EXPORT_SYMBOL vmlinux 0xe002a972	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0xe00a1aac	i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xe03eccce	blk_sync_queue
+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 0xe07766ff	mmc_host_disable
+EXPORT_SYMBOL vmlinux 0xe094ef39	sg_next
+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 0xe0c53971	xfrm_user_policy
+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 0xe1331cc7	framebuffer_release
+EXPORT_SYMBOL vmlinux 0xe158582b	vfs_path_lookup
+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 0xe1af7565	md_register_thread
+EXPORT_SYMBOL vmlinux 0xe1ba6dac	blk_peek_request
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe20e7af1	pci_save_state
+EXPORT_SYMBOL vmlinux 0xe21a2b17	__dev_getfirstbyhwtype
+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 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 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe3059179	flush_signals
+EXPORT_SYMBOL vmlinux 0xe305b313	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xe31163e8	scsi_register
+EXPORT_SYMBOL vmlinux 0xe332babc	kset_register
+EXPORT_SYMBOL vmlinux 0xe351ee8b	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xe35c12e4	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xe3871a85	fasync_helper
+EXPORT_SYMBOL vmlinux 0xe3b28331	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe4038bc9	set_create_files_as
+EXPORT_SYMBOL vmlinux 0xe4201614	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xe43b5705	padata_alloc
+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 0xe4a895fa	up_write
+EXPORT_SYMBOL vmlinux 0xe4b442b2	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xe4d62f83	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xe4f245a0	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xe4fe8ca1	_raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xe5047f2f	inet_shutdown
+EXPORT_SYMBOL vmlinux 0xe5122890	flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe5145cea	starget_for_each_device
+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 0xe54cb612	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xe576ddca	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe59c1ed1	swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5e4def6	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xe5e98c79	dqget
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe6045824	tty_set_operations
+EXPORT_SYMBOL vmlinux 0xe6091f37	neigh_update
+EXPORT_SYMBOL vmlinux 0xe612e078	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xe6816503	__blk_end_request_cur
+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 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe7073d3e	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xe70d6d74	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0xe73e1ef7	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xe7548206	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xe75b0c9c	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xe75d21f8	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xe7609b0d	generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe7679e88	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xe7a49451	switch_mmu_context
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7bf317d	fsl_lbc_addr
+EXPORT_SYMBOL vmlinux 0xe7cc398e	skb_free_datagram_locked
+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 0xe7e27b55	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xe7eb8b96	inet6_bind
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe80ed968	no_llseek
+EXPORT_SYMBOL vmlinux 0xe823fdfa	sk_alloc
+EXPORT_SYMBOL vmlinux 0xe82cc752	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0xe835e2e7	of_device_is_available
+EXPORT_SYMBOL vmlinux 0xe86cc138	writeback_in_progress
+EXPORT_SYMBOL vmlinux 0xe877a762	is_container_init
+EXPORT_SYMBOL vmlinux 0xe8946b98	swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xe8b01895	tc_classify
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8b81643	rtas
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe8f96a1d	of_phy_connect
+EXPORT_SYMBOL vmlinux 0xe90b218f	textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe9217df8	single_open
+EXPORT_SYMBOL vmlinux 0xe92341c9	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xe93110c6	netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xe932fbf6	tty_register_device
+EXPORT_SYMBOL vmlinux 0xe9368dae	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0xe936d4e5	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xe9400877	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe958971a	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xe96b9c26	twl6030_mmc_card_detect
+EXPORT_SYMBOL vmlinux 0xe98d4e0d	simple_empty
+EXPORT_SYMBOL vmlinux 0xe9ac60ab	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0xea054b22	nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea0de01c	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xea0ff253	padata_set_cpumasks
+EXPORT_SYMBOL vmlinux 0xea10212a	int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a	__bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea1b5f00	register_console
+EXPORT_SYMBOL vmlinux 0xea2a0695	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xea58f9fe	uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xea6b8c81	mount_nodev
+EXPORT_SYMBOL vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL vmlinux 0xea7aeff3	simple_write_end
+EXPORT_SYMBOL vmlinux 0xea8a6c75	param_ops_long
+EXPORT_SYMBOL vmlinux 0xea968c96	___ratelimit
+EXPORT_SYMBOL vmlinux 0xea9855ae	blk_limits_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeaf16558	ida_init
+EXPORT_SYMBOL vmlinux 0xeafab22b	inet_bind
+EXPORT_SYMBOL vmlinux 0xeb07e125	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xeb12eb72	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb887b1f	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0xeb8fcff2	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xeba2a1f7	rtas_indicator_present
+EXPORT_SYMBOL vmlinux 0xeba677bd	posix_acl_chmod
+EXPORT_SYMBOL vmlinux 0xebc0475c	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xebcf6bb8	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0xebd7d307	dev_mc_del
+EXPORT_SYMBOL vmlinux 0xebdbe48c	radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0xec15f00a	tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec31dfd5	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0xec3cfd13	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0xec3ec18f	tcp_close
+EXPORT_SYMBOL vmlinux 0xec4e50df	free_user_ns
+EXPORT_SYMBOL vmlinux 0xec5bf84d	key_type_keyring
+EXPORT_SYMBOL vmlinux 0xec73caa1	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xec73fcdd	dev_emerg
+EXPORT_SYMBOL vmlinux 0xec95bb73	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0xec95bbde	get_phy_id
+EXPORT_SYMBOL vmlinux 0xeca6b8a6	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0xecb6deff	get_pci_dma_ops
+EXPORT_SYMBOL vmlinux 0xecead220	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xed04c1e7	__pagevec_release
+EXPORT_SYMBOL vmlinux 0xed29b625	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed7369f9	tcp_connect
+EXPORT_SYMBOL vmlinux 0xed744cd7	fifo_create_dflt
+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 0xeda8323f	register_snap_client
+EXPORT_SYMBOL vmlinux 0xeda88d6f	default_llseek
+EXPORT_SYMBOL vmlinux 0xedb605a3	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL vmlinux 0xedc410d0	udplite_table
+EXPORT_SYMBOL vmlinux 0xeddac04d	padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xee030b11	dev_addr_add_multiple
+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 0xee356f90	nla_append
+EXPORT_SYMBOL vmlinux 0xee36923e	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xee47d2ad	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0xee4b6ac9	pci_dev_driver
+EXPORT_SYMBOL vmlinux 0xee4f12dd	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xee59412f	adb_try_handler_change
+EXPORT_SYMBOL vmlinux 0xee9c1a90	d_validate
+EXPORT_SYMBOL vmlinux 0xeea9dbaf	bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeb4fc48	skb_unlink
+EXPORT_SYMBOL vmlinux 0xeeb8daf0	bmap
+EXPORT_SYMBOL vmlinux 0xeec61edd	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xeed1a73d	vc_resize
+EXPORT_SYMBOL vmlinux 0xeef7d7d5	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xef092152	ip_defrag
+EXPORT_SYMBOL vmlinux 0xef109449	interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xef253b4c	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xef29f022	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xef30b9b3	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xef3c5826	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xef4a035e	nf_log_register
+EXPORT_SYMBOL vmlinux 0xef4e2ac1	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xef53dd20	swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0xef9047ca	pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xefab8beb	sock_release
+EXPORT_SYMBOL vmlinux 0xefc9a32e	validate_sp
+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 0xf00ad474	mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xf01bf9e0	scsi_init_io
+EXPORT_SYMBOL vmlinux 0xf04ae1ba	idr_remove_all
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf06709ac	dquot_release
+EXPORT_SYMBOL vmlinux 0xf06e44df	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xf0983274	netpoll_setup
+EXPORT_SYMBOL vmlinux 0xf0be2f81	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xf0bfe33f	seq_escape
+EXPORT_SYMBOL vmlinux 0xf0d8c6a7	jbd2_journal_invalidatepage
+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 0xf1098662	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xf10de535	ioread8
+EXPORT_SYMBOL vmlinux 0xf1172b51	blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xf11cd6ce	down_interruptible
+EXPORT_SYMBOL vmlinux 0xf11e56f8	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xf1216c75	prandom32
+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 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 0xf1fca63a	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xf1fe9211	jbd2_journal_get_create_access
+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 0xf2b2b497	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0xf2b86d2d	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xf2c1847b	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xf2cb81cc	unregister_con_driver
+EXPORT_SYMBOL vmlinux 0xf2d04be7	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xf2d7a10a	dquot_resume
+EXPORT_SYMBOL vmlinux 0xf2f6880c	pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0xf2fc5635	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0xf30f4cea	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf31786e3	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0xf322a206	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL vmlinux 0xf334e469	vm_insert_page
+EXPORT_SYMBOL vmlinux 0xf338d4c3	netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33c6b33	save_mount_options
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3605f62	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xf36c4375	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xf37d043d	ethtool_op_get_flags
+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 0xf3c63265	unlock_page
+EXPORT_SYMBOL vmlinux 0xf405f0cd	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xf42d2275	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4449388	timer_interrupt
+EXPORT_SYMBOL vmlinux 0xf45c1434	ida_simple_get
+EXPORT_SYMBOL vmlinux 0xf460ef69	eth_header
+EXPORT_SYMBOL vmlinux 0xf48276fb	vga_client_register
+EXPORT_SYMBOL vmlinux 0xf494f618	mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f4f074	pci_enable_obff
+EXPORT_SYMBOL vmlinux 0xf517808f	rt6_lookup
+EXPORT_SYMBOL vmlinux 0xf5222143	_raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xf52321e0	atomic64_sub
+EXPORT_SYMBOL vmlinux 0xf53b974a	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf54c51a2	dma_pool_free
+EXPORT_SYMBOL vmlinux 0xf5502bc2	iget_failed
+EXPORT_SYMBOL vmlinux 0xf550b41e	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0xf57908b6	netdev_update_features
+EXPORT_SYMBOL vmlinux 0xf58cee22	get_phy_device
+EXPORT_SYMBOL vmlinux 0xf598bb75	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xf5a62ecc	_memset_io
+EXPORT_SYMBOL vmlinux 0xf5c05914	generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e	timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cf326a	param_ops_short
+EXPORT_SYMBOL vmlinux 0xf5e1558d	crash_shutdown_unregister
+EXPORT_SYMBOL vmlinux 0xf5eb86ea	blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf60d0ff0	ping_prot
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+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 0xf6859e8c	of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xf68d6d14	tcp_check_req
+EXPORT_SYMBOL vmlinux 0xf6afcf3d	eth_header_parse
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+EXPORT_SYMBOL vmlinux 0xf6dfb806	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xf6e72a34	tty_name
+EXPORT_SYMBOL vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf70384d7	__debugger_sstep
+EXPORT_SYMBOL vmlinux 0xf71521ba	atomic64_add_return
+EXPORT_SYMBOL vmlinux 0xf739a742	vfs_writev
+EXPORT_SYMBOL vmlinux 0xf73a6147	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf75455ee	journal_ack_err
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf75d7164	phy_driver_register
+EXPORT_SYMBOL vmlinux 0xf773efaf	locks_init_lock
+EXPORT_SYMBOL vmlinux 0xf7785b5b	mount_single
+EXPORT_SYMBOL vmlinux 0xf77bcfdd	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7a3f015	may_umount_tree
+EXPORT_SYMBOL vmlinux 0xf7a85470	posix_test_lock
+EXPORT_SYMBOL vmlinux 0xf7b12aee	__next_cpu
+EXPORT_SYMBOL vmlinux 0xf7bae844	___pskb_trim
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf807bd17	sk_free
+EXPORT_SYMBOL vmlinux 0xf807c125	agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0xf8089736	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xf80afab2	dst_alloc
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81c8631	sock_no_poll
+EXPORT_SYMBOL vmlinux 0xf82970cb	phy_print_status
+EXPORT_SYMBOL vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf844a2d8	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xf84a67fc	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xf8573ac0	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xf85f4892	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xf897d02b	macio_register_driver
+EXPORT_SYMBOL vmlinux 0xf8be54b4	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0xf9037c43	dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xf908f4e4	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xf9279b1f	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xf9348cbc	xz_dec_run
+EXPORT_SYMBOL vmlinux 0xf94caa80	mmc_release_host
+EXPORT_SYMBOL vmlinux 0xf98f0fea	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9a9acc4	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0xf9b366d8	fb_find_mode
+EXPORT_SYMBOL vmlinux 0xf9c225a7	scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0xf9ccf52f	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xf9eb473e	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xf9fa648e	vfs_rename
+EXPORT_SYMBOL vmlinux 0xfa0cc040	prepare_creds
+EXPORT_SYMBOL vmlinux 0xfa13b1e1	bio_clone
+EXPORT_SYMBOL vmlinux 0xfa1e37a3	input_mt_init_slots
+EXPORT_SYMBOL vmlinux 0xfa3a2cef	arp_create
+EXPORT_SYMBOL vmlinux 0xfa4470af	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xfa7a1996	follow_down_one
+EXPORT_SYMBOL vmlinux 0xfa8976bc	km_report
+EXPORT_SYMBOL vmlinux 0xfa8e8a84	kill_block_super
+EXPORT_SYMBOL vmlinux 0xfaccd200	unregister_cdrom
+EXPORT_SYMBOL vmlinux 0xfad52d49	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0xfadb5750	pmu_unlock
+EXPORT_SYMBOL vmlinux 0xfaf39d9e	llc_sap_open
+EXPORT_SYMBOL vmlinux 0xfaf7bebb	seq_path
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb051fd3	elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb7d26f4	files_lglock_lock_init
+EXPORT_SYMBOL vmlinux 0xfba142f9	generic_block_bmap
+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 0xfbf5ba86	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xfbf76f29	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xfc02b7ad	sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc209068	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xfc326e6a	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc3d1ed3	kill_pgrp
+EXPORT_SYMBOL vmlinux 0xfc45c9ea	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL vmlinux 0xfcaa04a0	out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcafe081	commit_creds
+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 0xfceac4ec	kernel_bind
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfceed31e	skb_make_writable
+EXPORT_SYMBOL vmlinux 0xfcefbb1c	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xfcf41b08	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd0c5038	adb_unregister
+EXPORT_SYMBOL vmlinux 0xfd1559c7	fput
+EXPORT_SYMBOL vmlinux 0xfd1eaf41	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0xfd56e73a	netlink_dump_start
+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 0xfdb32830	inet6_release
+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 0xfdfc0b3b	fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe5cb3d0	phy_attach
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe6180ab	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xfe62a2f0	journal_create
+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 0xfe7be668	generic_listxattr
+EXPORT_SYMBOL vmlinux 0xfe7c4287	nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfec3c2f2	bcd2bin
+EXPORT_SYMBOL vmlinux 0xfec426b3	dev_close
+EXPORT_SYMBOL vmlinux 0xfedd35fc	console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfedfa890	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0xfee51f75	__rta_fill
+EXPORT_SYMBOL vmlinux 0xfef96e23	__scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff041490	send_sig_info
+EXPORT_SYMBOL vmlinux 0xff12d519	kfree_skb
+EXPORT_SYMBOL vmlinux 0xff1765c7	rtas_call
+EXPORT_SYMBOL vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL vmlinux 0xff271a8a	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xff2c3263	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xff48a621	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xff492f6b	path_put
+EXPORT_SYMBOL vmlinux 0xff4f9c49	sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff6dea25	smp_hw_index
+EXPORT_SYMBOL vmlinux 0xff97ed96	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffd5a395	default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdb82bc	sg_free_table
+EXPORT_SYMBOL vmlinux 0xfff04384	agp_unbind_memory
+EXPORT_SYMBOL_GPL crypto/af_alg 0x1307f48d	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x1dcfe9f4	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x56e6483c	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0x77d7b3d2	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0x8dc9d874	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xa7c0ed3e	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde	af_alg_cmsg_send
+EXPORT_SYMBOL_GPL crypto/af_alg 0xee3d3a42	af_alg_release
+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 0x18d99a51	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x3d1f4524	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x43e0c318	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7dcdb29b	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb9afb8ed	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbfe3de04	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe3e15100	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe9d952e1	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xebcf5460	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf9be324b	cryptd_free_ablkcipher
+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 0x3e3da166	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3ef87c89	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x60b7589c	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x65cdea26	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb908855d	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcc5e54ad	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd0b06637	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xead5c5eb	btmrvl_enable_ps
+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 0x1622c3cc	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x22202b5f	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x26730ff1	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3e3baaea	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3ee1efd6	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d0b4025	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6081ec28	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d472c51	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71ef458c	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7cf70d2a	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3ec4bbb	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5aff621	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa80655a5	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc6905cb4	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcb1f57ab	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd30e04c8	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xffb3f65d	gigaset_fill_inbuf
+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 0x19e9027b	dm_region_hash_create
+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 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 0xdfacc009	dm_rh_dirty_log
+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 0xd03aabac	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x5155ca6c	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0xce1009b9	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0c33346a	mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0c44bba1	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x38aa24bc	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x39b6b6f5	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3e6b3b85	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4333dd89	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x44dfcfde	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x76c55739	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x854e5be7	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x90a52da7	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9b04430c	mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9ce8515b	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa17a264d	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb1aa0e58	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcd7a292f	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd3e8b8b8	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf6b0f777	mantis_get_mac
+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 0x1335094b	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3956e226	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x522e06a7	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 0xe18ccbc2	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf8aaa0d8	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 0x01e801e4	st_unregister
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x1940e460	st_register
+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 0x35f1a60d	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x37cdf3f3	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x694da909	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7846b462	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x16a375b3	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1e53b374	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x24a809bb	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x24dd832a	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x52427aab	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x69fa0e90	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x79697a6f	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7b1f9357	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8a815ba7	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb2725d90	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd93a9adf	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfdf50566	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x35a495d8	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x68920e80	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd9bacf0c	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xefd52615	unregister_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 0xc4b496bc	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc9574a0d	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcfac4926	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd0c7e0ab	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf3e01dc9	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0xede2796b	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x03125e29	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1b507bfa	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x6858d64a	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xb386ac68	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1e8ae36d	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4f744d8b	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x699d5225	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8e2dfc8f	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcd5b0ed8	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf55a68e8	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15256254	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1888adaa	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2873bef9	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cb71b49	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38401cf4	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ba3638e	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x476e7a13	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55d1c706	usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5dd45020	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x74ca66ae	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7b9d0d85	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x852ef4af	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8fb75ad3	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x96dcb6fa	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x979fb8da	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xafc18cbd	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb0532f77	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb56562bf	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc78bc76b	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd30bec9e	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd387013e	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd79d5bc7	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdeed030c	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe081f80b	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0dfa686d	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0f1c091f	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x275c6d97	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30a2f34e	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36022a2e	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x559f1c24	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x58c1e11a	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5a9ae0d6	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x63038e06	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7d801044	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x80b5b248	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x860934fe	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x93f58f3b	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab20904a	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd347a493	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2e55c2d	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xb28b044a	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x1324e674	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x4447f4b3	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xbc2e3303	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xf989bf9d	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2070a497	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x21abb276	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x25a5dc5a	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4495d9f7	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9acb5f40	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa90afcd0	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb234dd8d	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbade1f2d	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbae5efd5	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc06b4c23	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc261c79a	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdc9d2484	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeb501a8b	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xede39496	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf09507c7	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1f8f5bc7	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x21aad90d	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2e908091	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x53c94066	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x646fe6f7	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6d45eac0	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc2aef19f	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 0xe5ccbc70	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x0bd49920	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x2cbd29cb	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x013f1d91	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3d3b6472	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x78aad682	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8c4c7f1f	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8fa353c3	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9306fb48	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xafa88849	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc1d3cde2	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xca03a0c4	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd1fff47a	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdec546c7	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5840c9c5	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5a37704b	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5b479e18	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6b5326b8	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7be768a3	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7d3681bc	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xacb26987	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc32dbd28	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xed8ebce9	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x017723f3	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x056938e6	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0b1f1e06	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x13bca708	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x256a79f0	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x307767f2	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3e72d077	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3efc854c	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47c4f37d	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4888d690	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a18affe	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4b56a07e	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5237ef9a	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58f77268	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5c15bd77	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ee76688	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6734101f	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b14b4ed	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6d28dc93	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x76fb1be7	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x76fd1b3a	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7978efb5	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ab0e872	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e93f7b4	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84af4a4c	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f4d1df4	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9256ff60	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x98012830	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa61bb673	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaec6c5da	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb680150d	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9ec5079	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb456764	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd3bfc700	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd02a774	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5eadf5a	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf756fd23	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x041fcf4e	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x054c390b	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x07618858	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11271c24	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x19ff10a7	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1eac8f21	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a71789a	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2cb12de8	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d6547ae	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3294565a	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3657a125	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3920947a	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a9de20e	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43558946	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4bb62b31	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ed975ef	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5462a975	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ad97686	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5cf254c0	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x606f8076	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a9f81af	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b292cbf	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6bec16d6	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6cca46e0	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7bac8670	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ccea59b	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x832b826b	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x852ac1d1	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9db6175c	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa9463fe4	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb29a16e5	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6643c07	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5b3e114	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc84965d6	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8900aa1	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcbe4bdca	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd76b75c8	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3455379	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe50b7e4e	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee61bf62	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf162ff1f	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf38914dd	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf448c0c8	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf82da656	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9858bfa	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfba48602	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x080a6b32	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x177d4477	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1f4e8ab4	rt2x00pci_flush_queue
+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 0x71d51343	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xafe8d072	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc70c3c03	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd67aa56b	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x14012119	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x44ab06e9	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x51efd148	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5c8d3ecf	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76f913e0	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x85d88f37	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9897affa	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9dea40dc	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb168ab2a	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb80801d5	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc067c5df	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc203e5b6	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd15eda41	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xddaf8737	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xee09a991	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf632da76	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x0c360bac	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x57f99620	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xa3dacf3d	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x15cb1493	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3d796980	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x4dbd6279	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x62a7cf3d	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x840c5ee5	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xb231e380	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc5e1509f	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 0x04bbfa6f	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04d43fdf	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x05c5a059	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1629b875	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22d5d615	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x239bdbe0	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x25fc3e62	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x320d1d93	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x35412bc3	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3574c393	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x35c22c95	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4704f45b	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4cafdc10	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4df0cbf8	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x51e62c8c	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x577756c0	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60c2b337	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x61744df3	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x644e5ff0	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x682780c2	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x691f7233	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e86f204	cxgbi_ddp_ppod_set
+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 0x8f413a2c	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ccc9143	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa180c0a7	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2167d27	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa728703c	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae3aa8f9	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb224feba	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb4b2743e	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb50ed78c	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5b76517	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9facd67	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd7f38bee	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc77e972	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdcd62c8a	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe32e27e4	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3ce0f73	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed68903c	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee0e92fa	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf14a4704	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8b572a8	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfb318225	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff2b59cb	cxgbi_iscsi_init
+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 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1fd5a3e7	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f1295ae	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x50d04026	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x63d0282a	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8277de3c	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x99dadd62	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xaa87395f	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xedcdbcf1	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf266065d	fcoe_start_io
+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 0x033cfe37	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03e148ec	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x043050b3	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a8f8464	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f419bc3	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x140784c5	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17104b87	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x189ae568	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c16172a	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x322e6c6d	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33cad08c	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39fb2149	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f68a566	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x407c41c3	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47767db2	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d0c64f8	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5116921a	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52303c53	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52bcb030	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5543a138	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58bd5958	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x597b06f1	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c5c7c23	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a02f03e	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x807e9521	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x94804578	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9860ee33	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b02594a	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1621bb6	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1bc6e9d	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb57c0205	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc03d0bf	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcee9dc85	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdafec7c3	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2d12304	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe36131b7	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8954580	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea880914	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf80138f5	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf85c8e21	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf89b8676	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfee917ea	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffce3c54	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x02721ade	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c1b8b24	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2daf0eeb	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x48f7bffc	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e8aedf4	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58fba96a	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69f4c038	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69fc3109	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x861c0378	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x958a3c54	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x981ad94b	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc418eff2	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc9b06c8c	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdc106c37	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdf8f399d	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe32fe42e	iscsi_tcp_conn_teardown
+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 0x06d5a099	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x10108251	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x113dc71a	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16e75438	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b6feb6c	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21d71a2c	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b8db541	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33a5dd78	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e6cd1e6	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x442a370d	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x47a9810b	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6887bd85	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b88bb04	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e248b0a	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8878ff40	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96a63d3d	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b771a22	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac7d42b1	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd3e7a99	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8dcc377	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc36c71e	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdacfd541	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdad1cc29	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe1783450	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3d80992	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xecf69b3e	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfdc4ac3e	iscsi_create_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 0x1756725b	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x177dd32c	sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x31b36279	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3a47d151	usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3c0204f0	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x490ec8f4	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x49a64232	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x704fbdfc	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8ed9e8ae	usbip_alloc_iso_desc_pdu
+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 0xb489a0bb	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/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 0xae27e17e	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb25adf80	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 0x17a28672	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2ec33f03	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x316bf74d	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d191b05	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x590a7157	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6bc557ab	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7823d427	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x83addce4	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x880abc5a	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8883e610	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c23a787	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4327b68	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb537e094	usb_serial_generic_write_bulk_callback
+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 0xd3283138	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd99f1435	usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec97f2e9	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf17e5728	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/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 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 0x00019eb0	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4137927b	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 0xb04d7ca2	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xde18a9fb	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfb0ff3fe	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11550956	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21820771	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x388dcd26	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5147e4d8	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x522a023c	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x592583a8	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85680e02	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88664a0d	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92d1aa39	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf15a28e	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc0dbe240	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd7eb3b2	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdeae7512	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5602cf2	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa0ecaf7	nfs4_reset_write
+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 0x3a9f9b38	o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4be51441	o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x614c107f	o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8bdeb5e4	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa09d56ac	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 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 0xc49620da	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 0xd859ac8c	o2net_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe4dd8599	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x187d110d	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x592919aa	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 0x7dcb8a37	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x83b01db4	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x877bac67	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfc286c1c	dlm_register_eviction_cb
+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 0x4b9bb2f8	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x90230d87	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x99ff8c84	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc20ebd08	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xdcb39bf8	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xe635ee2a	garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x32075822	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xd5aeed1a	stp_proto_register
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x90b92919	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xf1cf8e88	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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xb30f690c	ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x0a4c540c	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x001cbd15	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x01975aa3	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x021eb30f	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x02cd91ac	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x041a2b0f	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x04243576	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x048b4e74	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x122709b3	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x125d3fe6	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x12884ec4	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x151bc948	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b4046eb	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x218fb9a2	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x454e5f30	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b551114	dccp_recvmsg
+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 0x559d6477	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6fc07cf4	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x708e1c47	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x70e0d5ff	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x75cf51f1	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x814472bd	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x88be58cc	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaad325ed	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe916d8d	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc76c4c03	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca6076d0	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd00f571e	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1525168	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd94f77d1	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9d7afac	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xea912bf3	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xed5c766b	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8ac1b30	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xff9b572c	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0ed7f37a	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28fd0562	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x39f70a4d	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3c52891b	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf7ac5606	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf952a304	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x434688e5	register_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb7adfd58	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x5f6729bb	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0xed30ed53	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3ec682fb	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x773de8de	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4b2a6b22	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x6625a887	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x2d160dfa	nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921	need_ipv4_conntrack
+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 0x353c58bc	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3972afb0	nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4f60b8f4	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8c5d7601	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 0xdcae6f4c	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfdc9b559	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8	nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa77bdc8f	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbceb7120	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xced6d563	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd4511ce0	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf0b8c132	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf77d1c74	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 0x05a9f1e8	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x08302952	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2f96a9b8	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6833c16f	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa353b59c	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb8004dc0	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcf80a133	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe9d39d10	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee0c3dd5	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf088b5f0	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf26af26e	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf532cc3c	l2tp_session_create
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1d4ca89e	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x468a13e2	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x97edd5ab	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc5ccf5e2	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc7612130	ieee80211_ready_on_channel
+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 0x1c76da5e	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 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6a0394b0	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x72cd5e33	ip_set_type_register
+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 0x8882b0a3	ip_set_del
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8aafdef9	ip_set_nfnl_get_byindex
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8c82658e	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9015f2cb	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x934691d9	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x939a11d5	ip_set_add
+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 0xb740dd8a	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f	ip_set_put_byindex
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2ddd2b0c	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x35830a28	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd5a22645	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xdcfb55f2	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00e93d9c	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0575f1f7	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08230f50	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fcb1314	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191936fc	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d305860	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e6dab68	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24f57775	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x258e0906	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26e856ae	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a059d32	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3452b685	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36aae74d	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ff4d0fd	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x417138cc	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44bbf29b	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45ea4c60	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58a01a76	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6283221c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64d07609	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6898bbe9	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68f8eedc	nf_ct_l3proto_put
+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 0x73475a4e	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74a90f07	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710	nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c48ea0d	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e64def0	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80fc10b5	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x817bdf77	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85dce19f	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8617ed47	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c374bea	nf_ct_expect_put
+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 0x95ccde6d	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96604fa6	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96c0b6cf	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3fb4c	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4f6d44d	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9743828	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9fe1ed3	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95	nf_ct_untracked_status_or
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xabc261e6	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027	nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1e1b36b	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6109748	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb61633b7	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb866180f	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd5016c8	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf30828c	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0a3fd3d	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41bd530	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8981d44	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8a811e7	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xccc710e6	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4bd320b	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb37f252	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf1145bb	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe56853e5	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe8a9c411	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1d4771f	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf39a8ff6	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfedcc614	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x49319ce8	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x9ab6b572	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x7532679c	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3439cc0e	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x39896d41	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4fe10b0e	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x538d5109	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5ab48b7d	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x815bfd8a	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9549fb8d	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc5ac9d4e	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc8bd8209	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfa527924	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x29f883e8	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3aa35eb7	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7ef610ef	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeec6196f	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf42a88cf	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x071313d9	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x3ebf01dd	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2f67c5ce	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3cbf2a8f	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x56a654f3	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6a9acfb4	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77b8b347	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x91b2263a	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ec92f10	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb34313f5	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb815dd8c	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe68baf74	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xedadfa01	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfc55901b	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfe3191d3	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x16e868ba	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xb6be2cc2	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xab31c4d5	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x043d4b35	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0d18771f	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x20665292	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x523a896a	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xafaea93a	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfcef991c	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xd8fcf3e4	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e215756	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x42382eab	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x57de7f51	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61e794fb	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x76e08689	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7cc9dfa3	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8609f095	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94b2c0d6	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa0cc1131	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda0567ab	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xde113638	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe057d2ae	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf321a455	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 0x1260cda1	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x18f75533	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x1cb88a86	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x223a37f6	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514	rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x2ce61807	rds_send_get_message
+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 0x4b841c53	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x4c6aca8f	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x703ffb29	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x70a1b078	rds_for_each_conn_info
+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 0x765a355f	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x7a13ddbe	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x903564c5	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x93654ddf	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x9d4d01ba	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xa0f74828	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xa3aa3f65	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xbd65dac4	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc4449542	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0xd2ac9837	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0xe960646b	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0xf102b37f	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0xff1f9858	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x71dd4599	rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd57f93d0	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 0x3634f78b	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4685a49a	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x52469ca3	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x52d5262f	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6271c0c1	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6f2477e8	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6fb8c4a0	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x744529cb	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7a19c657	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc545c296	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc9227ad0	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf6fe803c	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04cdcd9a	put_rpccred
+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 0x073121ba	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a8f214f	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ddc8c88	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9	svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10d5b087	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1197b7b0	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13a4a37a	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14b42dfd	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16d01e75	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1874c3f6	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bc59eb4	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d75bc70	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ec6630c	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ff4a166	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206efab3	xdr_terminate_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22c063ba	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23a193d3	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x259f32d5	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27d77ac4	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x281f62d9	rpc_setbufsize
+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 0x298f874a	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c69deda	xprt_set_retrans_timeout_rtt
+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 0x31a6b025	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3210401c	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32b8aa67	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x333309cf	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361f3a74	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4c7f14	svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3de5541c	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3faa95a3	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x402cbb68	xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4523fc8a	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a7b22c	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4901bfcb	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b4a5533	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f2cd321	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ea4f51	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x517cebf5	xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52215397	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55aa465a	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5732b011	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57cb0093	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5aff7297	svc_proc_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 0x5d5ebb70	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d65726b	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6003418a	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6472f3d1	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6668f731	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67984cbb	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a782a7a	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b9688d3	rpc_force_rebind
+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 0x6d93e069	rpc_wake_up_next
+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 0x71a976b5	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x729630eb	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7459b60e	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x752a92e8	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x776982ac	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x778963e0	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x783c7518	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a821f5a	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b542eab	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b5c3784	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ee2123d	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fc6a54b	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8220300b	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84dd63a4	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x878d32b2	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87a0753b	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x897c80a3	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x898a7a2e	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a0549b2	xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c7e6584	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb36bb0	rpc_clone_client
+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 0x92a4cec3	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9350261b	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94adc00c	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95088cf1	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97a85e2a	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98dea556	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a35be20	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a60621f	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bdf2e83	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c4c3df1	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f8381a0	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa02d3ebb	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0a3b4a0	svc_auth_register
+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 0xa670c201	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7ceaaac	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa81002b1	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8525e1f	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa97e4ada	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa0e5886	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa6af5fe	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab2ea7aa	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab5351be	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab8bb6e5	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacea1e70	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad4b3b32	cache_check
+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 0xafbb6207	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0d8e496	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3e70f62	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4cae643	xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4fb0deb	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6ffa796	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7915d8d	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc9d7cf0	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd16d30a	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbefbf3a4	svc_xprt_enqueue
+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 0xc2ff6484	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30b1935	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc855bb63	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9200bd5	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc95b2393	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcba0be0d	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd81cb9fb	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde836f34	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe05e7333	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe596b442	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ffad3a	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7809ab3	rpcauth_init_cred
+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 0xeca852f6	rpc_exit
+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 0xeed60200	xprt_release_xprt
+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 0xf074d807	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0daa2b7	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf158ab83	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c138d9	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6601f80	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f68fbc	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9faba1b	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc04c970	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdc8f395	rpc_alloc_iostats
+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 0x0f78abb8	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1950f959	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1e679edf	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3d05f2b7	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4791eb47	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x58f10ca7	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x63fd3db9	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7527cbfd	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7fc45178	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x92fb0047	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x982e7640	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xd7aa0e27	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf653206a	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0aa8b2c6	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x185b89e4	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ba961f8	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x49f5d273	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5f7f3fcf	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6769f52d	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x707e8bbf	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8079b91f	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa874db2b	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbacac3cf	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf6725fed	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x235738fb	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x32a23e5c	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7ccff1e7	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9d88b2d6	ipcomp_output
+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 0x02265bb4	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04f5f3f1	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x052ee897	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05621059	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x056adbcf	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x062f057d	snd_hda_mixer_amp_switch_put
+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 0x08853905	snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d1da110	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f6ceb7e	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x143ad575	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1567341a	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x194e9efc	snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a281583	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b0700ab	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1cf6de23	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d56430e	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d96e27e	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ea5f5ff	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22b0bca6	snd_hda_shutup_pins
+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 0x23c8e2b7	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2867f4ac	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a8b0cb4	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e362c59	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2eb6d729	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x323f6a8b	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x363df874	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x364aa375	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40043063	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41781c29	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46f24046	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48a22eec	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49503ee4	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bbe3ddd	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x579689e6	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5864023a	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b528be5	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ce77f70	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5da16234	snd_hda_create_spdif_in_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 0x6260bba8	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62696a89	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x646333da	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6613aa07	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x673f9aa4	snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69841292	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a5c6431	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ce36e65	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ef2a756	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7046460b	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x717ab398	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71c7f13d	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79db0218	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d2b5cc5	snd_hda_override_conn_list
+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 0x8636fd03	query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871c2c9d	snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x878e9f1b	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a48f00d	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a579039	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b7c0c8d	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b8800c4	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826	snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91ee773a	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95668685	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98ad9939	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a83aff7	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5a3404f	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6a19fb9	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacc49929	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafb077f3	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3108a9b	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb56be843	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6017e5b	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6a376a8	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba1d5bd7	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbe4d7dd	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbecd3087	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc224e25c	snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3508e4a	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc42d945e	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6371496	snd_hda_set_vmaster_tlv
+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 0xcb3ec402	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd10c19d	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdc3cd36	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd49f2605	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd675cd33	snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6a57484	snd_hda_jack_tbl_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 0xd94d2851	snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb3e1aff	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd01ac90	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde2b231c	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3d04497	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe404caa3	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5eda811	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe86f876c	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb98dab4	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee378fd8	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee50321f	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0c1a75e	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0fee8e3	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf629954f	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb75162d	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbfe6ef5	snd_hda_spdif_ctls_assign
+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 0x049ac045	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 0x07980a1f	snd_soc_register_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09dd42a6	snd_soc_cache_read
+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 0x0eaa4a05	snd_soc_platform_write
+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 0x105a6034	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10667cd8	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10e142eb	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12da8ca9	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14e2ebf7	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1999f08d	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b3102cb	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1caa2c1d	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f319d05	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23c7eded	snd_soc_default_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27333d2b	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29bf58d5	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2be8d19e	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x375423a4	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x387c2338	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40799662	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x414064b9	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432fb6b8	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43959504	snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4749952d	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48a739cd	snd_soc_poweroff
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49544d65	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c018c98	snd_soc_limit_volume
+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 0x4fc941d5	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5095712e	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50ac01ff	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52bb6231	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x539cc860	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54bffb0f	snd_soc_put_value_enum_double
+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 0x5d17725a	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f407bbb	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6036f6f6	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x628a9f31	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69304462	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a0e004c	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e1386c7	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bd84b49	snd_soc_default_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ddbbea3	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e0bb3c0	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88cd2b34	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8916dca7	dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89889d8e	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ca6f94f	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8cdb88a2	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8de8fb7d	snd_soc_dapm_put_pin_switch
+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 0x935c457e	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94255994	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98581822	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99724f5b	snd_soc_put_volsw_2r_sx
+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 0x9ad9ca28	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b5efe16	snd_soc_platform_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c0062b2	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa015c0fa	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1b8d115	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa33cd077	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac8c4c57	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacf519d0	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf18dfea	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb338875a	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb959871a	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbafb3b13	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc1822c2	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc26d16da	snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3aa6b84	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4e68180	snd_soc_dai_set_tdm_slot
+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 0xca32dc14	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaf88aec	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf0282d6	snd_soc_cnew
+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 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 0xd7e046f6	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda88fbe3	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5be00b6	snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6a56bb5	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe814468c	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec5f17b0	snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf80fa0a3	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd934cc5	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL vmlinux 0x00008788	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x001d1913	blkiocg_update_completion_stats
+EXPORT_SYMBOL_GPL vmlinux 0x002c529c	__netpoll_cleanup
+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 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 0x01b40a57	kern_mount_data
+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 0x02322c3c	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x0248a06d	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x026e75f2	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x02788b5c	crypto_init_spawn2
+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 0x031190c4	rtnl_af_unregister
+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 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0x0490a884	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x04e91ece	dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x0503e722	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8	ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b	kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x0567b56c	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x05ae262e	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x05f3915a	event_storage_mutex
+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 0x06789b6d	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x067f3371	crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x06817733	inet6_csk_reqsk_queue_hash_add
+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 0x076998dd	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x07945548	css_id
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x08246a03	sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x0875d52d	cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x087ee4e3	pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x08b195dc	mmput
+EXPORT_SYMBOL_GPL vmlinux 0x08c46347	page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x08de4253	crypto_shash_setkey
+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 0x0951252f	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0962aee4	xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x097167d2	ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x098b4a6e	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b	virq_to_hw
+EXPORT_SYMBOL_GPL vmlinux 0x0a89c831	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0x0a9a3545	regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0aa999f3	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x0acf2dc5	rio_mport_write_config_8
+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 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 0x0c7b08ff	dev_pm_put_subsys_data
+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 0x0ce52658	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x0ceec5e8	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x0d05ed04	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x0d0c109d	of_irq_to_resource
+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 0x0d4b1de7	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c	atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0dae580e	fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0dc5b86f	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x0dca4f8a	debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x0de06988	cpu_first_thread_of_core
+EXPORT_SYMBOL_GPL vmlinux 0x0df7bfb7	usb_ifnum_to_if
+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 0x0f5b4715	crypto_shash_final
+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 0x1078d6dd	shash_attr_alg
+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 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 0x11ade2e2	skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x11ef81ec	xfrm_audit_policy_add
+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 0x12a51b6c	br_fdb_test_addr_hook
+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 0x134d1e7d	__rtnl_af_unregister
+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 0x13d9e12d	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x13e5be8e	rio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13	__wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x13f2f2b7	sk_detach_filter
+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 0x1535f6ce	crypto_register_instance
+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 0x1601aba7	init_dummy_netdev
+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 0x16fa4f8d	device_create
+EXPORT_SYMBOL_GPL vmlinux 0x16fbbf26	cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1739d4fc	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x177c338d	twl_get_version
+EXPORT_SYMBOL_GPL vmlinux 0x17f07752	ahci_start_engine
+EXPORT_SYMBOL_GPL vmlinux 0x18570516	pmac_i2c_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x185f24b9	inet_csk_reqsk_queue_prune
+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 0x192cef22	unregister_ftrace_function
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0	trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19527576	inet_hash_connect
+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 0x1aab3fce	skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x1ab0f89e	bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x1ae0e135	tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x1aec0f50	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x1b03a550	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c	probe_kernel_read
+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 0x1bfd8a51	__netpoll_setup
+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 0x1d0d9386	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x1d31ee6c	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x1d4d7360	blkcipher_walk_phys
+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 0x1decb55c	ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x1e210eba	crypto_find_alg
+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 0x1e920366	cgroup_path
+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 0x1ee9814e	irq_of_parse_and_map
+EXPORT_SYMBOL_GPL vmlinux 0x1f041866	__rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x1f2d9b35	vfs_cancel_lock
+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 0x2057eb80	crypto_rng_type
+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 0x213b9d81	lock_media_bay
+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 0x21e01985	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x2231d114	rio_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x224aacc4	ata_sff_queue_pio_task
+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 0x22b7ec42	crypto_attr_alg2
+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 0x2337005b	sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x23466eb1	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x235c0351	netlink_has_listeners
+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 0x23be9291	usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x23c36f75	tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x23e34aaf	ipv6_dup_options
+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 0x245c0641	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x246f59e4	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL vmlinux 0x24a28bb6	rdev_get_drvdata
+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 0x24e4d700	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32	leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24f8b6c0	inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6	regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x2513f117	wakeup_source_add
+EXPORT_SYMBOL_GPL vmlinux 0x25219611	crypto_nivaead_type
+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 0x25d63009	regmap_exit
+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 0x263a3ce2	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x263dfdc0	__blk_put_request
+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 0x26baf585	tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4	scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26e0bc3a	led_classdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x26f1352b	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x26f792a6	part_round_stats
+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 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 0x2883b3c9	pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2899210a	usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x28a82da4	snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0x28bbd186	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x28bd2e42	crypto_aes_set_key
+EXPORT_SYMBOL_GPL vmlinux 0x28c389a2	posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139	xfrm_probe_algs
+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 0x2a4ae658	fsnotify
+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 0x2aca6758	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x2ad4a942	bitmap_load
+EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2b12fa2f	blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b	smp_send_reschedule
+EXPORT_SYMBOL_GPL vmlinux 0x2b607170	ktime_sub_ns
+EXPORT_SYMBOL_GPL vmlinux 0x2b8b606c	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2b9c39b5	rtnl_af_register
+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 0x2c84eacd	crypto_default_rng
+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 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 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 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 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 0x2fa22770	xfrm_audit_state_notfound
+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 0x2fcd9e17	dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fe3b59f	inode_dio_wait
+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 0x3069cf7a	raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x307f48b0	__put_net
+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 0x31df9dca	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x322066b6	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x322dbecd	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x322fa90d	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x3267b0d4	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x327db900	bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x3280e2d0	regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x328850e1	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0x329646d8	disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x32adc85d	crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x32b36da6	tpm_show_timeouts
+EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc	xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32edf3e4	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x32f08411	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3302220d	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x33543801	queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x33575c25	tps6586x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x336154ca	rcutorture_record_test_transition
+EXPORT_SYMBOL_GPL vmlinux 0x33802b52	regmap_init_i2c
+EXPORT_SYMBOL_GPL vmlinux 0x338c07ed	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x33cce2a0	wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x33d7d614	usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x34166548	devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x34288901	flush_kthread_worker
+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 0x34853720	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x349453ac	device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x352f0c0f	get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x353eb431	rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x35610770	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x3565dbee	mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x3584de98	tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x35eaf4c7	class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x3617caa0	blkcipher_walk_done
+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 0x366124fd	regmap_write
+EXPORT_SYMBOL_GPL vmlinux 0x3667a585	shmem_truncate_range
+EXPORT_SYMBOL_GPL vmlinux 0x366cd45b	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL vmlinux 0x36889c08	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL vmlinux 0x36aa0614	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x36c94b3e	dw_spi_xfer_done
+EXPORT_SYMBOL_GPL vmlinux 0x3710314a	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x376b2b49	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x378e98b5	__pm_runtime_use_autosuspend
+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 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 0x39917394	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a	usb_unpoison_anchored_urbs
+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 0x3b7ce597	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x3b9ec0d1	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c	usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c08fd86	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x3c466343	securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x3c79b6e5	inet6_csk_search_req
+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 0x3c9b539f	crypto_shash_finup
+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 0x3cb4d8d9	blk_trace_remove
+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 0x3d328da0	aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d637687	__ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x3d9eed91	fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x3da8bc3a	spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x3dbbd2a3	__inet_lookup_established
+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 0x3e71eaab	ablkcipher_walk_phys
+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 0x3f629ad2	__blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3fb33c8b	platform_device_unregister
+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 0x4076e7b2	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x408f5a3a	tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec	ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40d46b21	crypto_ft_tab
+EXPORT_SYMBOL_GPL vmlinux 0x40e6ba96	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x412df7ee	bsg_job_done
+EXPORT_SYMBOL_GPL vmlinux 0x415930de	blkcg_get_weight
+EXPORT_SYMBOL_GPL vmlinux 0x41755631	devres_get
+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 0x427b8c6a	regmap_raw_read
+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 0x42e8c474	__rtnl_link_register
+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 0x4339b043	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x4355dc4d	debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x43609b66	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x43aece64	usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x43d4ffe9	of_property_read_u32_array
+EXPORT_SYMBOL_GPL vmlinux 0x43dfbac1	usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x43ea8de6	sock_prot_inuse_get
+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 0x443babbe	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x44416b57	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0x4453c477	bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3	regulator_disable_deferred
+EXPORT_SYMBOL_GPL vmlinux 0x445d1cee	skb_gro_receive
+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 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 0x45982be2	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3	crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x46074c17	sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x463afd5a	vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x46520843	inet_hash
+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 0x467cc87e	crypto_drop_spawn
+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 0x47f27270	driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x47f318b1	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x486345f6	crypto_blkcipher_type
+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 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 0x49712469	init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x4981900b	wm831x_regmap_config
+EXPORT_SYMBOL_GPL vmlinux 0x4982a57f	probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x49870508	fl6_sock_lookup
+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 0x4b795ebd	aead_geniv_free
+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 0x4bf0ad1c	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x4bfb56cb	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x4c25802b	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x4c33fe00	css_depth
+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 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 0x4d4fd5f1	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4d524a69	xfrm_inner_extract_output
+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 0x4deff363	blk_add_request_payload
+EXPORT_SYMBOL_GPL vmlinux 0x4e109192	ring_buffer_entries
+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 0x503cf66a	blk_unprep_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 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50cb909d	md_is_badblock
+EXPORT_SYMBOL_GPL vmlinux 0x50cd5e72	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0x50d6b78e	ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x50d75156	tcp_slow_start
+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 0x510ad4de	__mmdrop
+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 0x51d0e8f3	inet_csk_search_req
+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 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 0x53614106	irqd_to_hwirq
+EXPORT_SYMBOL_GPL vmlinux 0x53614269	get_cpu_idle_time_us
+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 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 0x5514bb09	regmap_update_bits
+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 0x559f00f4	get_task_mm
+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 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 0x5688dbb5	tcp_set_state
+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 0x56e64daf	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47	klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x573e83c7	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x576682df	platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x577533b5	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5	rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57d8b078	agp_add_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x58650d3a	usb_root_hub_lost_power
+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 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 0x5a474506	crypto_ahash_digest
+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 0x5ac23fa6	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x5af2df6e	usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2	schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x5b323547	sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x5b911ea5	usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x5b94f02a	fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7	wait_rcu_gp
+EXPORT_SYMBOL_GPL vmlinux 0x5be1df6f	ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x5be58197	eventfd_fget
+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 0x5c2c37c2	sk_attach_filter
+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 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 0x5d51bcf7	scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5da7c835	sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x5dc4bc19	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618	register_netevent_notifier
+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 0x5e2905e9	crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5e3c3fe9	pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x5e756aa8	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f	ahci_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x5eaeefd2	dev_attr_em_message
+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 0x5f62a0f3	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x5f7ce02e	xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0x5f88ff0e	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x5f916073	unregister_pernet_subsys
+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 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 0x6182f0a0	rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x618c87df	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0x61a90c54	klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x61d5659f	__rtnl_link_unregister
+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 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 0x63813815	locks_alloc_lock
+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 0x64fbb1e4	pcie_bus_configure_settings
+EXPORT_SYMBOL_GPL vmlinux 0x650d9ae8	find_vpid
+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 0x65a456c6	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x65ba9c7b	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0	call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0	gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+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 0x6715b2fe	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x6721907f	disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x6738bd43	ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x674c2f80	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x67665282	rtc_device_unregister
+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 0x68ee69b7	regmap_bulk_read
+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 0x69dd5dcc	crypto_spawn_tfm
+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 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 0x6af0728c	inet_hashinfo_init
+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 0x6b33bef3	free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x6b61f1a8	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x6b687090	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x6b729828	sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x6b7ea517	rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x6bb246a9	__pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x6bbeed81	regmap_raw_write
+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 0x6c3d578b	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2	clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c6b9e1d	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x6c8b7b54	crypto_alloc_pcomp
+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 0x6d1d9d07	tpm_register_hardware
+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 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 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 0x6f7fde3f	sysfs_create_link
+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 0x703189d7	regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x7032ce3b	tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x703df26c	usb_deregister
+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 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 0x71db2595	scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x71dc9998	crypto_il_tab
+EXPORT_SYMBOL_GPL vmlinux 0x71dcf544	usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x7216c885	flush_fp_to_thread
+EXPORT_SYMBOL_GPL vmlinux 0x7220afc8	raw_seq_stop
+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 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 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73a8e707	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0x73b5e443	dev_change_net_namespace
+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 0x7431b23d	dm_suspended
+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 0x74db32fd	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x750844a8	blkiocg_update_io_add_stats
+EXPORT_SYMBOL_GPL vmlinux 0x751fd8a7	nf_unregister_afinfo
+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 0x75b20f59	eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x75bf836e	cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c	inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75d17d0b	pmac_i2c_open
+EXPORT_SYMBOL_GPL vmlinux 0x75e49d4e	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75f55cd0	bdi_writeout_inc
+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 0x7661b1bb	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x767f9b9a	spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x76b4f2f1	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x76c552f7	pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x76dc9d78	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x76e95fd4	spi_write_then_read
+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 0x77f06d72	ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x77f2a602	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x77f54677	of_property_read_u64
+EXPORT_SYMBOL_GPL vmlinux 0x782a7d32	pci_store_saved_state
+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 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 0x79ec2675	dw_spi_resume_host
+EXPORT_SYMBOL_GPL vmlinux 0x79fcbcfb	wm831x_set_bits
+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 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 0x7baeaab3	kill_pid_info_as_cred
+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 0x7c48983d	__put_task_struct
+EXPORT_SYMBOL_GPL vmlinux 0x7c636676	inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x7cb64ca3	mnt_clone_write
+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 0x7e33200e	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x7e3815c6	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x7e40b841	ip6_sk_dst_lookup_flow
+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 0x7e76421c	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0x7e8a5423	ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x7ec8edc2	crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x7f062d2c	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x7f4de6c0	led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710	klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x7fd26526	skcipher_geniv_free
+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 0x80a4789b	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x80a79d57	bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x80b38955	vfs_getxattr
+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 0x8125defe	unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x814b6337	regcache_cache_only
+EXPORT_SYMBOL_GPL vmlinux 0x81a8940b	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x81b4b850	ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0x81cbbc04	bsg_remove_queue
+EXPORT_SYMBOL_GPL vmlinux 0x81cf25d1	crypto_register_shash
+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 0x82a48f9e	pmac_low_i2c_lock
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51	sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82e2301a	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x8305bcce	sysfs_merge_group
+EXPORT_SYMBOL_GPL vmlinux 0x830b9f60	crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8325999d	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x835325b9	sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x835e7eaa	blk_update_request
+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 0x83ce82eb	get_monotonic_boottime
+EXPORT_SYMBOL_GPL vmlinux 0x83f231e5	tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x83f49eff	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x83fbf2df	__fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x8405b02d	posix_clock_register
+EXPORT_SYMBOL_GPL vmlinux 0x840880cb	driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x84173bfe	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x84533bef	vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x84a9fec1	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x84aee336	usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x84b3c390	tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x84d90062	crypto_aead_setauthsize
+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 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 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 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 0x8871a3fd	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x88778aea	vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x88c69edf	da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x88db7c72	__scsi_get_command
+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 0x89e49354	raw_seq_open
+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 0x8a2ce244	ahci_stop_engine
+EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80	regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8a738d3c	security_inode_setattr
+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 0x8af206d3	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8b15d251	sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0x8b43301e	rtc_irq_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 0x8bb1d96c	device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x8bc1226b	inode_dio_done
+EXPORT_SYMBOL_GPL vmlinux 0x8bd0569c	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x8bdc639a	shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x8c3c4e3a	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x8c5b57fb	set_cpus_allowed_ptr
+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 0x8ef0dfaa	__module_address
+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 0x8fd2ab9d	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x903fd8f3	rio_get_asm
+EXPORT_SYMBOL_GPL vmlinux 0x905d15a1	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x9062c322	ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x90701403	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x9098409b	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a	crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90a82aa1	dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x90fb8854	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x911414dd	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6	profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x9168fd5b	dw_spi_suspend_host
+EXPORT_SYMBOL_GPL vmlinux 0x918ad429	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x91a2502b	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x91e3e20f	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x91ed304a	key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x92414f94	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x92470540	elv_unregister
+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 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 0x93c1ea90	perf_event_create_kernel_counter
+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 0x943e4552	of_property_read_string_index
+EXPORT_SYMBOL_GPL vmlinux 0x944f5795	locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x9451c498	rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0x9455bbe1	usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x9485600a	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x94994764	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c2c0f4	each_symbol_section
+EXPORT_SYMBOL_GPL vmlinux 0x94c6e092	find_get_pid
+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 0x951cf0d8	cgroup_add_files
+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 0x958aee99	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x95a843b7	ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x95b46533	netdev_rx_handler_unregister
+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 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 0x9766e365	tcp_cong_avoid_ai
+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 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x983a6cd0	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x986a1390	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL vmlinux 0x98844294	sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x989001b6	cgroup_lock_live_group
+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 0x9924c496	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x9930ce5b	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x9982ad40	simple_attr_open
+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 0x9a658deb	__audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x9a8f5ff3	skb_tstamp_tx
+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 0x9ae113ac	dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9b35bf02	pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x9b3eb049	raw_hash_sk
+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 0x9bb375d1	kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x9c013203	platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x9c1a66a2	sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x9c1c2601	find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9c2bd5d2	tps6586x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x9c30873f	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0x9c9dca47	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x9ca25efd	crypto_remove_spawns
+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 0x9d0d1851	put_driver
+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 0x9db0f72a	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722	gpio_free_array
+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 0x9fce80db	fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fd3399d	sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x9fd596d8	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x9fedb268	__i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9ff2eee7	screen_glyph
+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 0xa17e4b0a	__rio_local_write_config_32
+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 0xa2235138	lookup_instantiate_filp
+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 0xa3831e04	elv_register
+EXPORT_SYMBOL_GPL vmlinux 0xa38430bb	tun_get_socket
+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 0xa4eba5b8	crypto_alloc_ablkcipher
+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 0xa6012cfd	register_net_sysctl_table
+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 0xa6f5b930	clone_private_mount
+EXPORT_SYMBOL_GPL vmlinux 0xa715e284	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0xa71bec4c	pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xa721ff0e	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0xa75c4c5c	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xa776927d	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xa78fa222	power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xa7c74a16	__mnt_is_readonly
+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 0xa89bd469	crypto_destroy_tfm
+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 0xa906169d	shash_register_instance
+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 0xa981722a	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xa98684d6	crypto_ahash_type
+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 0xaa6f8c70	register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xaa852c93	regulator_register_notifier
+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 0xab219f97	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0xab2946cd	bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xab333ab7	blk_queue_bio
+EXPORT_SYMBOL_GPL vmlinux 0xab42a754	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6335ea	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xab666933	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xaba55b4a	rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xabcbcca5	blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xabfbc63f	irq_find_host
+EXPORT_SYMBOL_GPL vmlinux 0xac2515a8	i2c_unlock_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xac7d6333	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xacc5478a	pmf_do_irq
+EXPORT_SYMBOL_GPL vmlinux 0xaccd4dd2	ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0xace3d463	vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc	usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xacfd81f6	work_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xad006f64	skcipher_geniv_init
+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 0xada38534	regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xade3efc9	dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d	tpm_pcr_read
+EXPORT_SYMBOL_GPL vmlinux 0xae021f69	console_drivers
+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 0xae59db41	inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xae74b330	find_module
+EXPORT_SYMBOL_GPL vmlinux 0xae767af5	inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0xaea524b9	fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xaebb1a0a	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xaed07e5f	class_interface_register
+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 0xaf64084e	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xaf69699e	xv_get_object_size
+EXPORT_SYMBOL_GPL vmlinux 0xafaeb9e4	sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0xb015672e	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xb01687f4	class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb018bb17	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xb01f79b6	inet_csk_reqsk_queue_hash_add
+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 0xb0bf5c09	inet6_destroy_sock
+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 0xb15306e0	crypto_grab_skcipher
+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 0xb1ce995e	pci_pri_status
+EXPORT_SYMBOL_GPL vmlinux 0xb22036b4	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb23ea382	sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0xb2670a1d	rtc_irq_set_freq
+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 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 0xb4a38afd	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xb4a54bf8	wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xb4af2fa2	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb4b5725f	usb_hcd_pci_shutdown
+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 0xb5c49dc4	yield_to
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb5faf7f1	ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xb60b5707	of_i8042_aux_irq
+EXPORT_SYMBOL_GPL vmlinux 0xb64ea395	perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xb6569a8f	get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0xb6aac2a3	aead_geniv_alloc
+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 0xb6ca59b8	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xb6d008bc	pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xb759fb98	skb_partial_csum_set
+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 0xb884bc4c	perf_event_refresh
+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 0xb93ad526	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb93cb9ca	crypto_shash_digest
+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 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 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 0xbb7d7444	inet_twsk_put
+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 0xbbfad601	nf_unregister_queue_handlers
+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 0xbc89fdae	anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xbc8d072b	relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0xbc9c1adf	crypto_alloc_shash
+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 0xbd3cf19c	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbd41135f	net_ns_type_operations
+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 0xbf1cc04b	tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0xbf692e45	hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xbfe79ce8	ahci_reset_em
+EXPORT_SYMBOL_GPL vmlinux 0xc00df4f5	default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xc022abe9	module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xc03ab504	setup_deferrable_timer_on_stack_key
+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 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 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 0xc240e743	crypto_unregister_alg
+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 0xc340a98e	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xc34bb443	ahash_attr_alg
+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 0xc3ebded0	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0xc3fa3922	crypto_alloc_ahash
+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 0xc45afdae	regulator_register
+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 0xc4f621b1	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc5679388	xattr_getsecurity
+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 0xc6b5d3ce	crypto_unregister_template
+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 0xc6db275c	tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xc6df09a4	usb_sg_wait
+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 0xc80f6b69	__tracepoint_rpm_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc831749d	platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0xc89e91fb	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc8f266bc	cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0xc9179a3a	tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xc9342c4d	raw_seq_start
+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 0xc978617f	sk_clone
+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 0xca50c40c	platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf	tracepoint_probe_update_all
+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 0xcbd400de	proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc0e4d18	led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d	inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc28d8f4	spi_bus_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcccbe74f	crypto_unregister_pcomp
+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 0xcd3594f6	crypto_mod_get
+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 0xcde34919	__get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xcdfd7cad	ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0xce553d5f	ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a	trace_current_buffer_discard_commit
+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 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 0xd0028d7e	udp4_lib_lookup
+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 0xd0c05159	emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd103bfca	transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xd127aa46	ata_sff_error_handler
+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 0xd1bdf8b7	skcipher_geniv_alloc
+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 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 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 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 0xd3d980eb	sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xd3e3399c	pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL vmlinux 0xd40efa31	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xd4663493	usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd4685132	ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xd486b267	crypto_enqueue_request
+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 0xd4df321c	pmac_i2c_match_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xd52e32da	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0xd582227a	leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd584f55e	crypto_ablkcipher_type
+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 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 0xd6feefa5	agp_num_entries
+EXPORT_SYMBOL_GPL vmlinux 0xd706e9e2	inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0xd715f067	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77b0e5a	register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8	klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd78d327a	inet6_csk_xmit
+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 0xd8207d7f	crypto_tfm_in_queue
+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 0xd86a87a3	show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0xd87601cc	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xd89e7190	tps6586x_read
+EXPORT_SYMBOL_GPL vmlinux 0xd8a38ec3	crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xd8a5de86	debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xd8b4cb13	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd8ee6658	pci_msi_off
+EXPORT_SYMBOL_GPL vmlinux 0xd931668c	map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xd931a295	ata_dev_next
+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 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 0xda7ff2e7	adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xda91fa14	__trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xda9e45eb	tpm_show_durations
+EXPORT_SYMBOL_GPL vmlinux 0xdaf361cc	replace_page_cache_page
+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 0xdb35b6fd	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xdb45b7be	inode_sb_list_add
+EXPORT_SYMBOL_GPL vmlinux 0xdb7cbcf1	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdb89b158	crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xdbd14b8d	dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xdbd4501c	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0xdbdc1b52	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdc256ca9	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL vmlinux 0xdc461430	irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xdc6df2c0	device_wakeup_disable
+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 0xdd30b04b	regmap_init
+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 0xde417b81	async_schedule_domain
+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 0xdf7105e7	__inet_inherit_port
+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 0xdfb54913	crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xdfe44a20	pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0xe0023b3b	find_symbol
+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 0xe0b603ab	flush_altivec_to_thread
+EXPORT_SYMBOL_GPL vmlinux 0xe0b632dd	free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xe0bf8a5a	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xe0eb336f	usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xe0f4af23	rdev_get_id
+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 0xe18f891c	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xe1ee91f5	sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xe21376c0	ata_sff_busy_sleep
+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 0xe2c23553	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5	regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe2ec60c0	regcache_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe2f6d5be	regulator_bulk_get
+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 0xe3f9b10c	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xe4148b34	xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xe4309905	syscore_resume
+EXPORT_SYMBOL_GPL vmlinux 0xe431ed9b	blk_rq_unprep_clone
+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 0xe5361923	anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xe53b62a2	crypto_unregister_shash
+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 0xe58a3c95	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe58fb452	aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe61d3b63	trace_define_field
+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 0xe704ea46	stmpe_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xe751692a	spi_sync_locked
+EXPORT_SYMBOL_GPL vmlinux 0xe7803a93	md_stop
+EXPORT_SYMBOL_GPL vmlinux 0xe7cd039f	usb_ep0_reinit
+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 0xe83aa8f0	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xe84c6218	pci_reset_pri
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe87068b4	add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe8c8a054	blkiocg_lookup_group
+EXPORT_SYMBOL_GPL vmlinux 0xe8d6d5d3	bsg_goose_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe8da2bbf	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xe8dc5c7d	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0xe8ef2a05	pmac_i2c_adapter_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909	usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe98acccd	ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0xe9a2b19c	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xe9a7b39f	usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0xe9ad60c5	ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xe9b09860	ip6_local_out
+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 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 0xeae74760	scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb0836cc	sock_prot_inuse_add
+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 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 0xeda87f1b	blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xedc2994d	ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0xede0a206	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xedeea818	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xee6a799f	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xeea3bfb3	bd_unlink_disk_holder
+EXPORT_SYMBOL_GPL vmlinux 0xeecaf660	dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xef268e83	bsg_request_fn
+EXPORT_SYMBOL_GPL vmlinux 0xef3939f3	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xef4e6daa	pci_load_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70	round_jiffies_up_relative
+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 0xefa45108	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xefa9d69c	led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xefb72398	pstore_write
+EXPORT_SYMBOL_GPL vmlinux 0xefba4427	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xefcb2364	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xefd99277	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63	ktime_get_ts
+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 0xf05a1ee4	crypto_hash_walk_first
+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 0xf0fb2dc4	debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf158f170	klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xf1700f64	max8997_write_reg
+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 0xf2bf6d9c	crypto_shoot_alg
+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 0xf30bd7f5	ip_build_and_send_pkt
+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 0xf394f967	regulator_get_exclusive
+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 0xf3f5fc7f	sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf4342b8d	crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0xf45ff7a2	do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xf4635905	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2	rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4ae88b8	devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xf4b6d8eb	set_task_ioprio
+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 0xf58acff1	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd	invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c350c2	ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xf5fd4324	__pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xf6104466	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xf6170406	crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xf6464980	ahci_em_messages
+EXPORT_SYMBOL_GPL vmlinux 0xf67f2eae	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xf68f1e4c	usb_enable_xhci_ports
+EXPORT_SYMBOL_GPL vmlinux 0xf6c5e30f	cgroup_load_subsys
+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 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 0xf8855a6f	inet_ctl_sock_create
+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 0xf91aaaaa	mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0xf936a729	stmpe_reg_write
+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 0xfa5d64d1	register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xfa784ffa	ahci_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfa78952e	blk_execute_rq_nowait
+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 0xfb2f4df1	kobject_uevent_env
+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 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 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 0xfd6a13f5	kick_process
+EXPORT_SYMBOL_GPL vmlinux 0xfd773007	driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xfd7d05d0	blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0xfd90fb81	pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c	crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe7d321a	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xfe8b8d62	wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeabe1d2	skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166	trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefbce62	rtnl_link_unregister
+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 0xffa4c4ec	cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffc6f487	device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xffefb4a3	platform_driver_unregister
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/armhf/omap.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armhf/omap.modules
@@ -0,0 +1,2285 @@
+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
+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
+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
+uas
+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-36.57/armhf/highbank.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armhf/highbank.modules
@@ -0,0 +1,2047 @@
+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
+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
+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
+uas
+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-36.57/armhf/omap
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armhf/omap
@@ -0,0 +1,9740 @@
+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 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x18536321	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1b3f134c	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 0x2cba2e64	capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4	capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3adf3ebc	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51	capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x483b766e	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5896bf60	capi_ctr_suspend_output
+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 0x6ae887b8	capi_ctr_down
+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 0x8f699913	capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa6e66681	capi20_release
+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 0xe912e770	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xeca5b5cb	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce	hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99	FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x4e195a14	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/i4l/isdn 0x5060a89b	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x792182e0	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc95a22a0	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 0x02a83c58	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x07ac6edc	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x204d3d97	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3080a32f	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x468eb0f7	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4a72c515	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c1ea345	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51a8ab80	mISDN_freedchannel
+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 0x7462d2eb	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8aac6d6b	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x99362e2b	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ae1c318	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xad02ec6c	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7c5148d	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb9212bc9	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc44596fc	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd9c70815	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde9a7dca	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe24da5fa	get_next_dframe
+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 0xf15b3035	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf82018dd	mISDN_unregister_device
+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 0x0cbb512a	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x75597866	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x9ac0fcc7	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0xf6325bfd	dm_dirty_log_type_register
+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 0x5ed9f3f7	dm_exception_store_create
+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/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 0x2a2cd886	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2e57278c	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x313b6ca1	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3671f004	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x49f39b9b	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x50fd9204	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6070cb1d	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x68d5ebac	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7d2e7814	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa33a1049	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaecb41f4	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb13b157f	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda5a055c	flexcop_device_initialize
+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 0x4f079217	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 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 0x92333b2c	dvb_net_release
+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 0x2748af05	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x65fc1843	dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6fb82ec8	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7c59eac6	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x88c71a78	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa5bbe930	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd0fe01fc	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 0xab629af7	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 0x13b6a70c	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x69dc84d1	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x763bcb74	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7f2ed339	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x83e7b3db	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 0xd4765f67	dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd638325f	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdac52724	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe152c905	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf7100e60	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf9242378	dibusb_read_eeprom_byte
+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 0x6ea9af67	videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9622ac35	videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xf5e21a18	videobuf_dvb_get_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 0x271a711c	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x594ed404	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x803301d0	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x84619196	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8e765e1c	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1a2a98c0	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3090cfc9	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4309a780	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x589e8b5d	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5cc04325	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc477c14a	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcc387656	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdcf85a69	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf01955e8	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf46783d4	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x07e46eb9	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd4877ddd	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x3049df57	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x68069be2	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xc720f093	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x08ba7cd2	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x144a690e	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x178ed88e	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3ab49526	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5c8edcde	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x870efeba	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x939e0cbd	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa6b8242f	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd432a610	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xdb9f0343	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe51b4be5	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00f1dbaa	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0ccde9a3	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x13c53d38	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x23fe8b8e	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4533d2e3	ath_regd_init
+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 0x98aa075a	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xabcb8f6e	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdbed4944	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf3e9810c	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4	ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4acf9b94	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5b75d33b	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 0xf59eadf3	ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfa82d706	ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfbc25258	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x050c73ef	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bef0918	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1006f663	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b6af668	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f36b1bf	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22fb188b	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24b2e1e1	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2792509f	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29064632	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a8e02cb	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dea2759	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f28875d	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a5bce5	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x340e7ffa	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35599f0d	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x384c066b	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x387e1d49	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a7f4064	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c701062	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x443ebb55	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44c07e8f	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ff06867	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53ef44a8	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5456c84e	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x554cc084	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55ad986b	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57338df5	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c615667	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dfb734f	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e42255c	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66ef1257	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x673ca75e	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68ab56dd	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a1c11d9	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ed263a4	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd93f7b	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72384be6	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7245002a	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x788674d6	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d078a18	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8526a8	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x816a9b1b	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a8d8823	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c96bc04	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f2271ba	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91d96beb	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x926b4cbf	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94b48f6d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bc1946d	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d64cefd	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d9779b7	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dd60d2a	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1a72e97	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa998a02b	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac4aa87b	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac6e556e	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb69fb4f8	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb83c8886	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb2d48cc	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbae147f	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbeb6623a	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbef501b9	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1f8c9af	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc77c8337	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb7d2e2b	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce7b9dd3	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd202669e	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3262835	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd795d3ea	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8b5bb3a	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb2614a4	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde19afe6	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeb4a02c	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1895738	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2af4d7a	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe615844b	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe788853d	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8c18e92	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea561a1c	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaa7f2c3	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec83d5a0	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed1723ca	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeec6cdfb	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3cb8169	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3e9ef48	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf769bb10	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa0a17f3	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeff1fd8	ath_gen_timer_isr
+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 0x03d7d671	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x239ba756	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2be6dff9	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4101df72	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x49cb08fe	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x79308a19	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x80e387fc	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8ee2a48c	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x92ce735f	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9be01704	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb01387bf	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb8c240a1	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcb478d86	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe0e19033	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c1eba0a	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12ecd615	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21821cd9	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2415d042	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26066130	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a695e4	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c9c9862	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41a819c9	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46ce1f61	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4adbb4fb	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4ebfa856	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5baf914d	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x605e4dfd	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x71e25e75	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8fc756dd	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b5eddb1	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb0b4e1f4	hostap_set_hostapd_sta
+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 0xb631fcc3	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc53a31b4	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8862a47	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd373f4d0	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8d72ea0	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd9e041f7	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdb9a5083	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed7b2ff6	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10615e32	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10b9a5eb	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x12b12b75	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1bca3230	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1df5d7d5	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f74f3d6	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4100d90a	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x49afbe74	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a8a27b1	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ef5bc83	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4f4bca79	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5dfce6ec	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61d437aa	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6489be2c	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x663d2a03	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6cba1de8	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70f1fab1	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x78ee9b35	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7cba7a14	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7eb54648	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x81a4cb82	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9b2b510b	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2f263e2	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa92c689a	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9d16f60	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab57399b	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac2e21b3	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaf046df0	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb04ef98e	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb21b70e6	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd03fb727	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd1fe2562	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd642e247	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf38d176	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe8563aa5	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeec25cde	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf138298a	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf2acd66e	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf3c1ec7b	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa6f9b9b	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfe12f96a	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfeb40af4	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01553960	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x088b285a	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ed8aaab	rtl_usb_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1ab466fe	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x21476795	rtl_cam_mark_invalid
+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 0x4a8fe397	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x55014bce	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x69c1370e	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6dcec310	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6f7631ba	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b510169	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bf48895	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7db3b54d	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb558da08	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7d89f2c	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf8a3e170	rtl_ps_disable_nic
+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 0x86561400	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x8694ec8f	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0x97cddec8	pps_unregister_source
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x21cc6513	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3b83a5cd	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4549b250	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x53336f61	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b544b92	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9166fb83	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb6571079	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcdc37e09	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xced10e42	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00271e22	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00858cf7	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b2b4a65	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d82f11d	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1118783b	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x161eeb63	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17376065	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2339c5df	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x256a790e	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26da240c	fc_frame_alloc_fill
+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 0x31dfbfff	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b4ad157	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e05fe25	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4282dad5	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x429fb755	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4595c405	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47109e3e	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e9ea95a	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5df9180f	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69a48ac3	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d29aefa	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70bb5bf5	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74f26213	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ca3d059	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e2443d2	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94d976e0	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x964284b4	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b841320	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fdc2ba6	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7c1f678	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1594947	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb164449e	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1ec219b	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb318c78a	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb84f69e3	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc06e41	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2dcf40	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf82cf7a	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5a4eeb9	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5efb6bc	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5294704	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe493a882	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7afe8b1	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9df3710	fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea186a8c	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed5404a2	fc_lport_destroy
+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 0x043cd034	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x04bdf48f	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0782e701	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x08939c6c	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0ebee16e	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x10385a95	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1246a121	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1bf9b791	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1d0217a0	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x258181c9	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2f63d43d	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x30e051f6	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3fa6db5e	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x40a99cda	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x40b63f4b	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x49755bd2	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4fea654c	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5a6dd249	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x62672212	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0x639a614e	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6717c2cc	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x68428fbe	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x697bf208	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6b5dd90d	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6c559895	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6f3191fb	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x75948787	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x79ab9c9b	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7daae976	iscsi_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 0x7e026b9f	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8488a09e	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x87027c9b	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x87a48884	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ad86fed	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8b225257	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8bb55e3c	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9b31d3ca	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa143bf98	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa26b0b2a	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa2bf3baa	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa463643b	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0xaa15ca2c	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xaa8957d0	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad4e8d0a	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0xade9594b	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xafc8c055	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb28967aa	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb40042f1	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb5185dba	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb5a8d92d	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbd0ca3ab	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbf36192b	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc5a91bcb	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd61dfe37	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd659c1b5	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd676f8af	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdf72314d	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe4c9372f	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xefba7ffe	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 0xface73be	transport_send_check_condition_and_sense
+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 0x0cd84faa	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x10316e28	usb_wwan_startup
+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 0x5178d5e6	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54222084	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5fbfae01	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6671e784	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77505d6a	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d35ef07	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa586b759	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc138d839	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd643f269	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf527fe6e	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf88c39fd	usb_wwan_write
+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 0x67677b0b	w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc0b2598a	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 0x009c51a2	unregister_8022_client
+EXPORT_SYMBOL net/802/p8022 0x6a547dad	register_8022_client
+EXPORT_SYMBOL net/802/p8023 0x033d7376	destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x96e22d45	make_8023_client
+EXPORT_SYMBOL net/802/psnap 0x3a143b52	register_snap_client
+EXPORT_SYMBOL net/802/psnap 0x7f39dbf1	unregister_snap_client
+EXPORT_SYMBOL net/9p/9pnet 0x0b92b024	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x118b767d	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1a841e4c	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x1afc1716	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x1f2bb700	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x21de58a9	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x22b90756	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0x2b664cff	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3774655c	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x37a1712f	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x37a478c9	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x3ebaabce	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0x46009490	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x4687bde7	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x4f7d16c3	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x5bb4a87e	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x670eedce	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x68821749	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x6d9f5901	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x6f31e2fa	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x6f5a74d1	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x73563a1a	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0x78660dbd	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x85cf5501	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x892ae802	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0x89ea3e63	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x8e04a057	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x98d00a85	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9d104135	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x9d722cf0	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x9e2f7593	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xa7768130	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xa9cb418d	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0xb00228a0	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xb42145f6	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0xb645da19	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc786d2ac	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0xd5b31e66	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xd7630812	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0xdb478d17	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0xdd965fd1	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe8a95ba9	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0x0e6083a0	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x387b8466	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5295a6a1	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xd46fa05f	alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x0f731f9e	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x1220dca6	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x254a13ed	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x415a8a2f	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x4d92cbb0	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x4dd4cfbc	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x656293ad	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x6ad916d0	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x7f0c1d59	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb288d748	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xbb473f79	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xda99e15e	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0xe8461945	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf5eab1ab	vcc_sklist_lock
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x1bed00a8	ax25_hard_header
+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 0x5be0a979	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x65f23202	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8c991410	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xcf72149a	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xd028fe34	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xe4204d4d	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xe6ffcb2c	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xfaf21703	ax25_header_ops
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0643c685	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ceda160	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d1b4371	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d9ae9e6	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1dad06b2	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3333b749	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x39b4dd00	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3a0137fe	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b6b2a33	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x412de683	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x413cd587	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x43674689	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5758b824	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x57e17204	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b8cf210	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e5a21e3	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f1d3d5c	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x721dc31c	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x874a0585	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c4a71e6	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x900083bd	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x949f9a3a	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9899230f	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x997b4ab3	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa45ed612	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8ebc1e8	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xadc0f441	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3455006	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd6b4574	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf58cd52	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0ec10c3	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8375231	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd386bdef	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8797b17	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8b53ca1	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbed133b	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdfd1ec69	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe277c23d	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xed88208d	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa0fb73d	hci_unregister_cb
+EXPORT_SYMBOL net/bridge/bridge 0x3df8d61a	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x593e0d83	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc69d19ca	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xde834eb8	ebt_unregister_table
+EXPORT_SYMBOL net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x35b49017	caif_client_register_refcnt
+EXPORT_SYMBOL net/caif/caif 0x3cb284e4	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x407100d2	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 0x74b3763a	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0xf738f3ee	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/can/can 0x1f9cfc72	can_ioctl
+EXPORT_SYMBOL net/can/can 0x30ebfc26	can_send
+EXPORT_SYMBOL net/can/can 0x4d7bdc7c	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x601dc0a4	can_proto_register
+EXPORT_SYMBOL net/can/can 0x74874621	can_rx_register
+EXPORT_SYMBOL net/can/can 0xfedfbf79	can_proto_unregister
+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 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 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 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 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 0x58eedc2d	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x5eab30e8	ceph_con_open
+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 0x65315616	ceph_messenger_create
+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 0x6f1001c6	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x74daee66	ceph_calc_pg_primary
+EXPORT_SYMBOL net/ceph/libceph 0x76129d4c	ceph_client_id
+EXPORT_SYMBOL net/ceph/libceph 0x76995ff0	ceph_con_keepalive
+EXPORT_SYMBOL net/ceph/libceph 0x77692acb	ceph_msg_last_put
+EXPORT_SYMBOL net/ceph/libceph 0x7a84e770	ceph_msg_new
+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 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 0xa1f6b455	ceph_con_close
+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 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 0xd01b645a	ceph_parse_options
+EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+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 0xe802e132	ceph_messenger_destroy
+EXPORT_SYMBOL net/ceph/libceph 0xf15a18e8	ceph_monc_do_statfs
+EXPORT_SYMBOL net/ceph/libceph 0xf440012d	ceph_con_init
+EXPORT_SYMBOL net/ceph/libceph 0xf7289efd	ceph_osdc_start_request
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0e17589e	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x123c4b54	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3bd57156	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5dad1d99	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x73015f59	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7a25944a	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7c98a691	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x94cda132	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcd1a7fb5	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcfa14561	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe324fa50	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe5f36eaa	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf37435db	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x171cb2bb	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5e0025c6	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdbbb9170	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4d52f5bf	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x87296555	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc439dff7	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2a61fb78	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x37ae2503	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5ca6bbee	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5d02d725	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x62e10519	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x90557884	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcc5746ee	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x85dd0363	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xe8092bf4	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x36eab75f	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x565ba5b9	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8b4f0336	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf5a739dc	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x06ea5ac9	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0xbb00641a	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4852c834	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xfedcdc8e	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0384ccca	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x92e7dbb0	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9f06b8d1	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb603577c	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf410fbe	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xdb454ec8	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf3305c60	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfba311d3	ircomm_disconnect_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 0x1fad6d36	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x22caf86e	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x2a44048c	irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x2a6d1d69	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x2d3765bc	hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x31b27bb5	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3a6a2307	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x41f86f03	irttp_data_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 0x4737e10b	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x4a98a434	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x4b7af9c7	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x4dc95278	iriap_open
+EXPORT_SYMBOL net/irda/irda 0x50d0fb4b	iriap_close
+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 0x6422168a	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x650d6536	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x6a4770c2	iriap_getvaluebyclass_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 0x74c6eb16	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x751b4e33	irlmp_connect_request
+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 0x7e288b33	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x80da7829	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x8ba14307	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x8fc5caf0	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9bdaf05a	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x9d7948ee	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xaa1d9bd0	irttp_disconnect_request
+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 0xce9b0fa7	irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xd79aa072	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+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 0xf308c44b	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xf5ab845c	irttp_flow_request
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xca7c1701	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x3815aee2	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x43f6575a	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x4ac37e28	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x8b5a161f	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x91842417	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xaf9da45c	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xd7cc6579	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xf6d99741	lapb_disconnect_request
+EXPORT_SYMBOL net/llc/llc 0x2919df90	llc_sap_find
+EXPORT_SYMBOL net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL net/llc/llc 0x56ff995c	llc_add_pack
+EXPORT_SYMBOL net/llc/llc 0x75299779	llc_set_station_handler
+EXPORT_SYMBOL net/llc/llc 0x9656f8a0	llc_sap_list_lock
+EXPORT_SYMBOL net/llc/llc 0xae3c63dd	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL net/llc/llc 0xc02134b1	llc_sap_close
+EXPORT_SYMBOL net/llc/llc 0xcc8867fa	llc_mac_hdr_init
+EXPORT_SYMBOL net/llc/llc 0xeccceda0	llc_sap_open
+EXPORT_SYMBOL net/mac80211/mac80211 0x035986b5	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x05c64753	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x08371df4	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x10b95a6f	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x115f8052	ieee80211_alloc_hw
+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 0x203f20c7	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x295a2550	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x307bdd72	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x3269fbb5	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x37dbf153	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x38da4307	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x3d0df72a	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x465fce4c	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4674a4a0	ieee80211_stop_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 0x691b4d70	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x6c5850e1	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f02cfd1	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x6fc8d888	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0x73f7d5cb	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x73ffb060	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x759458f4	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x83c91425	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x8bbcb8bf	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x8cfd35ea	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x9094eeb3	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x918e3fc7	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x98d823d0	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0x9f1ab023	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4fe9a70	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0xa84a86fb	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 0xac18e10e	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xac4788d5	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb4ffa625	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb801a741	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xc70fe0f3	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7b800cd	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xc9fed125	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xd3e6aa80	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xdd0c7d53	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xddecaea4	ieee80211_beacon_get_tim
+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 0xe91f2989	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xed9f73e6	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xf97e0b0b	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0xfda6f67e	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x118ce3a8	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x30352cc3	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37f06e86	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3e7843df	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44a18dae	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6a49462f	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x76f7d33e	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7d9341d5	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x859a3e75	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c86f1bd	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0cd701a	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd38b49b3	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe264be9a	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf1bf416a	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8db048f4	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x914786ca	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb4f427a3	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd9942d10	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x174fbc25	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x19b0a753	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x2dfb8864	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x532f0500	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x5dd23ed5	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x90565bf4	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb48bd6fc	xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xc84e097f	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xeba6eb20	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf1831b27	xt_register_match
+EXPORT_SYMBOL net/nfc/nci/nci 0x1e32e9e3	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x5530975f	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x806a7ee8	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xe5b9c0ff	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xe6c71198	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x32a9bf72	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x6a51043b	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0x8e774f7b	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x9f7167dc	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0xc8869285	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xccd65494	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0xda933302	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xefe32ba9	nfc_targets_found
+EXPORT_SYMBOL net/phonet/phonet 0x169cf792	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x2ba3116a	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x673d0c5d	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x678ec1c3	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x712d4e5d	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xa8e88e2c	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xd3947207	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xd6d775ea	phonet_header_ops
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00bba762	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02530afe	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1bcc6e84	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1c9b5236	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2cd97d75	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x47b74e56	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5203930f	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c02b754	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b98e67d	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaac43fc1	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbf4a819a	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc51304f7	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd4492874	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeadc8a7d	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf3ea8067	key_type_rxrpc
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xb50b27d9	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0b2790ba	register_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x62ddb919	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xb84c48ac	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x04e3b8a4	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x0767c295	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x0879cde7	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0b3fc365	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0x0bd5695e	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x0d4f8086	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x103e4eb1	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x16a4b95e	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x170fd699	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x27f40ad8	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c3c2e57	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x304da22f	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x3859c7fd	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x3d92ce56	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x3fad95f4	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x46d1c6c4	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x485c81aa	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x4fbbeff4	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x553c3f8b	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x5755ce00	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x5a3952e9	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x611d76c8	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x6169c938	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x64ffbad5	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x65ea122b	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x68595b2c	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ae97baf	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ebac9c3	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x758d232b	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8529d1d7	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x85b968c7	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x86971aa3	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x86fbdb30	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x94577a38	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x9702ecf4	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9dd31238	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa77cac94	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xae9ede77	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xaec841e5	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xb650e0fb	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb7234f81	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0xba75e87b	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xc06df17d	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0xc52d1469	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xd3f4ab60	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd9e3bc17	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xe09e9f2a	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xe502491e	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xefcab131	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf14574fb	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xff0c962f	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x0ff9ed14	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x4bea2590	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x6c935f84	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x7ce2b2be	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb67b4ac1	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc2a53e89	lib80211_crypt_info_free
+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 0x0015ff52	da903x_query_status
+EXPORT_SYMBOL vmlinux 0x00249b2d	igrab
+EXPORT_SYMBOL vmlinux 0x002de09c	vfsmount_lock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x0044ec88	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0081030e	omap_vram_reserve
+EXPORT_SYMBOL vmlinux 0x0084e86d	unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x008a014b	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x008f1e24	amba_release_regions
+EXPORT_SYMBOL vmlinux 0x009a18dc	__bforget
+EXPORT_SYMBOL vmlinux 0x00cdd1f9	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x00d3eb63	fsnotify_destroy_mark
+EXPORT_SYMBOL vmlinux 0x00e76046	ethtool_op_set_tx_hw_csum
+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 0x00f56976	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x00f86489	simple_rename
+EXPORT_SYMBOL vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL vmlinux 0x013e8b6c	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x01424f59	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL vmlinux 0x01bb89db	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL vmlinux 0x02138d01	genl_register_ops
+EXPORT_SYMBOL vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL vmlinux 0x0219d085	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0x021dc488	i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x023a50ab	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0x0242eeb5	netif_skb_features
+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 0x02a59932	nf_log_register
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02c1eaa7	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x02e0422a	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02fe47b5	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x0302c48b	idr_destroy
+EXPORT_SYMBOL vmlinux 0x03034b21	xfrm_input
+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 0x034714f9	block_commit_write
+EXPORT_SYMBOL vmlinux 0x034f9e73	param_ops_byte
+EXPORT_SYMBOL vmlinux 0x03502941	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x03592ea0	security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0x03662bae	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x03c06156	bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03da4ed3	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0407796c	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x040c93db	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x04141f80	__tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x04161db0	blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x04247cfe	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x042616f8	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x042f35bf	cdrom_release
+EXPORT_SYMBOL vmlinux 0x044f47ee	aio_put_req
+EXPORT_SYMBOL vmlinux 0x045fa0f6	grab_cache_page_write_begin
+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 0x049dcc62	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x04bf3866	loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL vmlinux 0x04d1848d	tty_devnum
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+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 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x0584ceba	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x058db3f5	up_read
+EXPORT_SYMBOL vmlinux 0x05a01a65	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x05a141dd	filp_close
+EXPORT_SYMBOL vmlinux 0x05b24740	blk_complete_request
+EXPORT_SYMBOL vmlinux 0x05baaba0	wait_for_completion
+EXPORT_SYMBOL vmlinux 0x05c58087	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x05e05fea	new_inode
+EXPORT_SYMBOL vmlinux 0x05e7e565	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x05e8fc72	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x05f19b34	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x05f981a6	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x06259949	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x062f131d	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x06436034	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x06448ddc	nand_unlock
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068146fa	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x06a6d86f	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x06aae600	nand_scan_ident
+EXPORT_SYMBOL vmlinux 0x06b092c2	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x06ecb141	ata_print_version
+EXPORT_SYMBOL vmlinux 0x06f9b93d	block_write_end
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x07051ea6	register_sound_midi
+EXPORT_SYMBOL vmlinux 0x07237a36	blk_start_queue
+EXPORT_SYMBOL vmlinux 0x074d4525	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x07545c8c	load_nls_default
+EXPORT_SYMBOL vmlinux 0x075d5ad6	elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x076d634e	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x0781bbb9	of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x0784a461	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x07997b3e	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+EXPORT_SYMBOL vmlinux 0x07a5f503	omap_readw
+EXPORT_SYMBOL vmlinux 0x07a890c8	fb_alloc_cmap
+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 0x07e331b7	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x07fc211e	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x08281eb7	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x08518f41	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x089604bd	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x08a4c534	omap_mcbsp_get_rx_delay
+EXPORT_SYMBOL vmlinux 0x08ded414	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x092bf6e2	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x09570cd9	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09a7f7b7	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x09bca098	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09cb12db	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x09dbf8a6	lock_super
+EXPORT_SYMBOL vmlinux 0x09e8070d	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x0a08ab03	d_validate
+EXPORT_SYMBOL vmlinux 0x0a163c8b	bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x0a23eec8	log_wait_commit
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a34d668	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a588477	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x0a8ec7e9	dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x0aa13d05	__raw_readsw
+EXPORT_SYMBOL vmlinux 0x0aa55873	skb_checksum
+EXPORT_SYMBOL vmlinux 0x0ab573f5	clip_tbl_hook
+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 0x0af90468	mdiobus_free
+EXPORT_SYMBOL vmlinux 0x0b0d888b	icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b251506	phy_attach
+EXPORT_SYMBOL vmlinux 0x0b2c5450	read_cache_pages
+EXPORT_SYMBOL vmlinux 0x0b351ada	mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b35978f	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL vmlinux 0x0b5e36c6	tcf_hash_check
+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 0x0b939a13	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x0badd926	xfrm_state_lookup_byaddr
+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 0x0c2b9606	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x0c2ed147	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x0c35f2c6	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c42098e	__free_pages
+EXPORT_SYMBOL vmlinux 0x0c45ab31	mark_page_accessed
+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 0x0cdbdef5	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x0cdd158d	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x0cfdbfdb	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x0d011e7b	of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x0d16b7e5	omap_dss_get_overlay_manager
+EXPORT_SYMBOL vmlinux 0x0d3f3a71	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d8c382d	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0da5f552	generic_writepages
+EXPORT_SYMBOL vmlinux 0x0db3877d	___dma_single_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x0dcbbbac	brioctl_set
+EXPORT_SYMBOL vmlinux 0x0dce6c69	snd_pcm_mmap_data
+EXPORT_SYMBOL vmlinux 0x0dd2aa90	kobject_init
+EXPORT_SYMBOL vmlinux 0x0ddec58c	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x0dec4823	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x0deee859	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x0e250c83	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x0e313ab6	__getblk
+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 0x0e9812c9	block_write_begin
+EXPORT_SYMBOL vmlinux 0x0e9c5c9b	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x0eb6408d	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x0ebfd927	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x0ec98808	ida_init
+EXPORT_SYMBOL vmlinux 0x0efe1a23	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x0f1e5326	sock_rfree
+EXPORT_SYMBOL vmlinux 0x0f31425c	clk_add_alias
+EXPORT_SYMBOL vmlinux 0x0f48e2a6	f_setown
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f64769f	nand_scan_bbt
+EXPORT_SYMBOL vmlinux 0x0f78a7e1	snd_device_free
+EXPORT_SYMBOL vmlinux 0x0f8276f6	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x0f9adf81	register_sysctl_table
+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 0x0fb98747	phy_connect
+EXPORT_SYMBOL vmlinux 0x0fbf47df	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x0fcb0e19	address_space_init_once
+EXPORT_SYMBOL vmlinux 0x0ff0a064	journal_start_commit
+EXPORT_SYMBOL vmlinux 0x0ff0f9dd	bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x0ff14704	inet_ioctl
+EXPORT_SYMBOL vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x0ffa8302	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x101390d9	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x10144567	free_buffer_head
+EXPORT_SYMBOL vmlinux 0x1037dfc4	inet_bind
+EXPORT_SYMBOL vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1073a962	phy_device_free
+EXPORT_SYMBOL vmlinux 0x1074c970	clk_disable
+EXPORT_SYMBOL vmlinux 0x10790299	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x1079265c	give_up_console
+EXPORT_SYMBOL vmlinux 0x107dafab	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x10af0223	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x10b5da89	register_key_type
+EXPORT_SYMBOL vmlinux 0x10c2f00b	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x10c80014	dma_pool_create
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb	default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL vmlinux 0x110bc6f4	arp_send
+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 0x113420c3	max8998_update_reg
+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 0x117ecc96	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x119b50e7	elf_check_arch
+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 0x11eeec25	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1214076e	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x121a425b	i2c_transfer
+EXPORT_SYMBOL vmlinux 0x12530356	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL vmlinux 0x125dc412	find_get_page
+EXPORT_SYMBOL vmlinux 0x127f1cf8	vfs_lstat
+EXPORT_SYMBOL vmlinux 0x128b5a57	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x128fa778	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x12a38747	usleep_range
+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 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x13117dca	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x1332f4d0	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x134f5e10	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x13590878	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x136a627c	skb_make_writable
+EXPORT_SYMBOL vmlinux 0x136aa7bd	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL vmlinux 0x13cf0691	simple_empty
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13d6e3be	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f3d4ef	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x13fc00d1	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x14129f00	snd_jack_set_parent
+EXPORT_SYMBOL vmlinux 0x1420b379	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x143ce5e1	module_layout
+EXPORT_SYMBOL vmlinux 0x143ea27b	abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x1449fb73	register_netdev
+EXPORT_SYMBOL vmlinux 0x145a275f	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x146230d0	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x148c7a2d	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x148c95f5	serio_interrupt
+EXPORT_SYMBOL vmlinux 0x1495a07f	netdev_err
+EXPORT_SYMBOL vmlinux 0x149a1e9c	fget
+EXPORT_SYMBOL vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL vmlinux 0x14de9de2	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x14f28bcb	dev_uc_init
+EXPORT_SYMBOL vmlinux 0x1524e020	__inet6_hash
+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 0x158daf27	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0x159581ab	key_put
+EXPORT_SYMBOL vmlinux 0x159a561a	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x159ea64d	input_reset_device
+EXPORT_SYMBOL vmlinux 0x159eb623	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x15ad7a88	key_reject_and_link
+EXPORT_SYMBOL vmlinux 0x15aec70a	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16514b8c	tty_shutdown
+EXPORT_SYMBOL vmlinux 0x1678d76f	scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x1689c636	cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16c80b5a	blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x173ca64b	of_device_unregister
+EXPORT_SYMBOL vmlinux 0x175236f4	omap_mcbsp_start
+EXPORT_SYMBOL vmlinux 0x1756e279	cdev_init
+EXPORT_SYMBOL vmlinux 0x17658f4f	dput
+EXPORT_SYMBOL vmlinux 0x17696ebe	get_phy_device
+EXPORT_SYMBOL vmlinux 0x1770d4f5	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x17a142df	__copy_from_user
+EXPORT_SYMBOL vmlinux 0x17b06a64	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x17b90450	skb_recycle
+EXPORT_SYMBOL vmlinux 0x17b9b06b	arp_tbl
+EXPORT_SYMBOL vmlinux 0x17c73b2b	pl330_chan_ctrl
+EXPORT_SYMBOL vmlinux 0x17dab555	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e5390b	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x180b392f	phy_stop
+EXPORT_SYMBOL vmlinux 0x181f1753	current_fs_time
+EXPORT_SYMBOL vmlinux 0x183fa88b	mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x18445b5e	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x18474694	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x184b82fb	mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184be39a	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x184e6c85	radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x1860d488	scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18b62855	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x18be1507	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x18d2635b	nla_reserve
+EXPORT_SYMBOL vmlinux 0x190c1312	mmc_erase
+EXPORT_SYMBOL vmlinux 0x190c794a	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x19380bc7	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x193bf15b	dev_get_by_index_rcu
+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 0x196b40ef	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x19779737	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL vmlinux 0x19812f18	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL vmlinux 0x199dc1da	input_mt_report_pointer_emulation
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19ba4dbe	follow_up
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19befc7c	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x19e08f84	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x19f1cf31	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0x19feb2b2	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x1a0a2432	snd_ctl_new1
+EXPORT_SYMBOL vmlinux 0x1a0e49fc	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x1a105f1f	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x1a11453c	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x1a3e3d46	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x1a47a2ab	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1a6024f5	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x1a61702f	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL vmlinux 0x1a7f8f06	xfrm_user_policy
+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 0x1b015d25	bitmap_parselist
+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 0x1b737b9f	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1	scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1ba9908a	neigh_update
+EXPORT_SYMBOL vmlinux 0x1babe60e	omap_st_set_chgain
+EXPORT_SYMBOL vmlinux 0x1bad1918	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x1bc4b0b2	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x1bd46e31	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x1bd72663	kobject_get
+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 0x1caa1474	single_release
+EXPORT_SYMBOL vmlinux 0x1cb8b1f7	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+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 0x1d05f322	inet_release
+EXPORT_SYMBOL vmlinux 0x1d190b5b	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d43d57c	seq_putc
+EXPORT_SYMBOL vmlinux 0x1d7120f1	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x1d87dda1	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x1db7dc40	pgprot_kernel
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de7357d	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x1ded2451	search_binary_handler
+EXPORT_SYMBOL vmlinux 0x1dfddf9d	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x1e047854	warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x1e0813f6	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e30c9af	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x1e341134	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x1e53369b	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x1e5464fb	page_readlink
+EXPORT_SYMBOL vmlinux 0x1e68acb6	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e7fed9d	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x1e9054f4	tcf_em_unregister
+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 0x1ec46f2d	udp_poll
+EXPORT_SYMBOL vmlinux 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ec77787	tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x1ec7c5c5	generic_pipe_buf_get
+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 0x1f55167b	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x1f579f1d	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x1f704784	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL vmlinux 0x1fcd5c17	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fe735d6	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x1fe78ad0	poll_freewait
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x203f35af	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0x2041df22	ihold
+EXPORT_SYMBOL vmlinux 0x205ec8de	omap_dispc_register_isr
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x208221a4	bio_endio
+EXPORT_SYMBOL vmlinux 0x20945c36	con_is_bound
+EXPORT_SYMBOL vmlinux 0x20a4b33e	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL vmlinux 0x20ad76db	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x20c23f6d	start_tty
+EXPORT_SYMBOL vmlinux 0x20c7d90a	seq_path
+EXPORT_SYMBOL vmlinux 0x20d8d7dd	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x20e289ab	devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL vmlinux 0x211d1d85	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x212ba383	dma_alloc_writecombine
+EXPORT_SYMBOL vmlinux 0x21369be5	inode_change_ok
+EXPORT_SYMBOL vmlinux 0x213c18e7	napi_complete
+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 0x21c98974	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x21d99bc4	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x21ded506	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0x21f678b9	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x220fde61	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x221dfde0	idr_pre_get
+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 0x225e909e	schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2288378f	system_state
+EXPORT_SYMBOL vmlinux 0x2289ac57	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x228d55de	rt6_lookup
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22d31d88	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x22e7e48a	km_state_expired
+EXPORT_SYMBOL vmlinux 0x22f9f9d0	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x2309173c	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x230dda52	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x231d4001	fb_edid_add_monspecs
+EXPORT_SYMBOL vmlinux 0x23532c4d	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2373293a	lookup_one_len
+EXPORT_SYMBOL vmlinux 0x23869fa6	cdev_del
+EXPORT_SYMBOL vmlinux 0x238ea37e	seq_read
+EXPORT_SYMBOL vmlinux 0x239adda2	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x23fed213	write_cache_pages
+EXPORT_SYMBOL vmlinux 0x242818f0	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x2447fe1e	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+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 0x24c3bdfa	led_brightness_set
+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 0x252d7640	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x252df2aa	read_cache_page
+EXPORT_SYMBOL vmlinux 0x256680f2	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258fcc48	__napi_schedule
+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 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25f2d911	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x2617b0d9	inode_init_always
+EXPORT_SYMBOL vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x2653e90a	tty_set_operations
+EXPORT_SYMBOL vmlinux 0x26911e4d	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26d3bf31	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x26d74882	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x26e6a291	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x2700b38a	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x27068603	simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x275e6932	blk_put_request
+EXPORT_SYMBOL vmlinux 0x276db34f	nand_bch_init
+EXPORT_SYMBOL vmlinux 0x27841224	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x2790554d	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x2798814a	security_path_chown
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x28248a8e	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x2830fee2	idr_get_next
+EXPORT_SYMBOL vmlinux 0x2837e98f	devm_ioremap
+EXPORT_SYMBOL vmlinux 0x2843be75	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x286a2d3d	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x286bc31f	scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x2886ab12	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x2897fc48	omap_cfg_reg
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28d6861d	__vmalloc
+EXPORT_SYMBOL vmlinux 0x28ee2b33	of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x28f6b2c5	snd_seq_root
+EXPORT_SYMBOL vmlinux 0x2918afc6	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x29372d97	of_phy_connect
+EXPORT_SYMBOL vmlinux 0x294dc421	snd_ctl_free_one
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2958f236	vfs_mknod
+EXPORT_SYMBOL vmlinux 0x295dcf74	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x29688964	skb_split
+EXPORT_SYMBOL vmlinux 0x29757b5c	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0x2989a2cc	dev_addr_add_multiple
+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 0x29c78967	inet6_getname
+EXPORT_SYMBOL vmlinux 0x29dedb2e	user_path_at
+EXPORT_SYMBOL vmlinux 0x29e25333	input_release_device
+EXPORT_SYMBOL vmlinux 0x29e395c5	jbd2_journal_stop
+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 0x2a4219da	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x2a4ec9b7	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x2a6e9db6	irq_set_chip
+EXPORT_SYMBOL vmlinux 0x2a79ac13	clkdev_add
+EXPORT_SYMBOL vmlinux 0x2a94d825	dump_seek
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa69e6e	tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x2aaa9dde	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x2ac6193b	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x2adc13ad	d_rehash
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b378f89	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x2b43eb49	__find_get_block
+EXPORT_SYMBOL vmlinux 0x2b58dedb	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x2b688622	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b90cdaa	mempool_create
+EXPORT_SYMBOL vmlinux 0x2b964090	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba5ec7c	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x2ba707a8	sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bac4a99	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x2bcde565	journal_update_format
+EXPORT_SYMBOL vmlinux 0x2bdbbec1	snd_ctl_register_ioctl
+EXPORT_SYMBOL vmlinux 0x2bdd6e28	node_states
+EXPORT_SYMBOL vmlinux 0x2bfcb3a3	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x2bfedcc3	register_nls
+EXPORT_SYMBOL vmlinux 0x2c0343b2	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL vmlinux 0x2c1fae77	find_or_create_page
+EXPORT_SYMBOL vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL vmlinux 0x2c3f5970	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x2c4743ff	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x2c47fbcd	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x2c6ac338	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x2c7e100e	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x2c8db4bd	udp_sendmsg
+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 0x2d10c73a	get_write_access
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1e0380	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x2d34a1b4	dq_data_lock
+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 0x2dc82168	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x2dd5b59a	thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x2e1524c4	writeback_inodes_sb_if_idle
+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 0x2e97a9e5	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x2eb9bb21	proc_dostring
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2ee1cf4b	scsi_allocate_command
+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 0x2f6e9f39	snd_register_oss_device
+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 0x3006e61a	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x300eecb9	snd_ctl_rename_id
+EXPORT_SYMBOL vmlinux 0x301a989e	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x303034c5	htc_egpio_get_wakeup_irq
+EXPORT_SYMBOL vmlinux 0x30390bd5	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x30525158	ethtool_op_get_tx_csum
+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 0x309fc052	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL vmlinux 0x30b3a90e	of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0x30b93f98	__tcf_em_tree_match
+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 0x311bc3c0	of_match_node
+EXPORT_SYMBOL vmlinux 0x311fd6af	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x31274ab0	__cleancache_flush_inode
+EXPORT_SYMBOL vmlinux 0x3132ee65	__nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x31587f05	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x3166e03b	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x316dd1cd	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0x318aa665	md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x318f5ee6	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31a28a1d	led_blink_set
+EXPORT_SYMBOL vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31e32aa3	md_check_recovery
+EXPORT_SYMBOL vmlinux 0x3202158c	twl6040_get_pll
+EXPORT_SYMBOL vmlinux 0x323a69c3	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x324dc7ab	sock_no_accept
+EXPORT_SYMBOL vmlinux 0x32512ece	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x326727f3	write_inode_now
+EXPORT_SYMBOL vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL vmlinux 0x32d590bd	tc6393xb_lcd_set_power
+EXPORT_SYMBOL vmlinux 0x32d5eb64	dpi_check_timings
+EXPORT_SYMBOL vmlinux 0x32e3cd41	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x32e97873	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x3344256d	nobh_write_end
+EXPORT_SYMBOL vmlinux 0x33475ed8	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x335de676	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x3361c11e	bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x336923a5	request_key_async
+EXPORT_SYMBOL vmlinux 0x336a4465	bdevname
+EXPORT_SYMBOL vmlinux 0x336b9b2d	tcp_create_openreq_child
+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 0x34048014	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x34137794	wake_up_process
+EXPORT_SYMBOL vmlinux 0x3438db2f	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x344e0fe5	seq_write
+EXPORT_SYMBOL vmlinux 0x34687a8b	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x348ca90a	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x34908c14	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34aa2c90	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x34ae686b	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x34c4ca28	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x34da0ddf	make_bad_inode
+EXPORT_SYMBOL vmlinux 0x351d9408	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x352c6698	nla_put
+EXPORT_SYMBOL vmlinux 0x353e3fa5	__get_user_4
+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 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 0x36142eb2	filemap_fault
+EXPORT_SYMBOL vmlinux 0x361bce60	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x36275b8f	xfrm_lookup
+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 0x36b06bff	max8998_bulk_read
+EXPORT_SYMBOL vmlinux 0x36b3ddf6	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x36d704bc	__blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x3718f00e	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL vmlinux 0x3725a439	ping_prot
+EXPORT_SYMBOL vmlinux 0x372f95ac	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x3747cbee	d_genocide
+EXPORT_SYMBOL vmlinux 0x3752c43d	xfrm_state_walk
+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 0x379f5837	param_set_invbool
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e1ea85	dev_graft_qdisc
+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 0x38184c68	omapdss_sdi_display_enable
+EXPORT_SYMBOL vmlinux 0x3826879a	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x383c3e7b	skb_recycle_check
+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 0x389e8f02	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x38bf7469	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x38d023f8	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x38db1927	abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x38fb4e53	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x3900f657	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x392cadc3	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x393ccd87	serio_rescan
+EXPORT_SYMBOL vmlinux 0x394cf98b	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x395833ac	journal_stop
+EXPORT_SYMBOL vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL vmlinux 0x39725d76	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x39acc8e9	register_sound_special
+EXPORT_SYMBOL vmlinux 0x39b66c84	dquot_commit
+EXPORT_SYMBOL vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL vmlinux 0x39c6bc69	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x39cc331f	dget_parent
+EXPORT_SYMBOL vmlinux 0x3a0416ef	netdev_update_features
+EXPORT_SYMBOL vmlinux 0x3a0d7a1c	kobject_set_name
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a29323e	snd_timer_close
+EXPORT_SYMBOL vmlinux 0x3a3f132a	d_instantiate
+EXPORT_SYMBOL vmlinux 0x3a6a8628	__skb_checksum_complete_head
+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 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9cfde8	of_node_put
+EXPORT_SYMBOL vmlinux 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3b1b75bc	sync_blockdev
+EXPORT_SYMBOL vmlinux 0x3b1bc58b	lock_may_write
+EXPORT_SYMBOL vmlinux 0x3b1c8441	serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b41c87c	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x3b6da7f1	iget_locked
+EXPORT_SYMBOL vmlinux 0x3b84b3c8	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x3b91f3af	snd_free_pages
+EXPORT_SYMBOL vmlinux 0x3b9419d5	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x3b9ecb78	eth_header
+EXPORT_SYMBOL vmlinux 0x3bb1b59c	task_nice
+EXPORT_SYMBOL vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bfdd364	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x3c1ef7c7	down_read_trylock
+EXPORT_SYMBOL vmlinux 0x3c3a48bb	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x3c4918e3	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x3c54f880	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x3c56afbc	bdget
+EXPORT_SYMBOL vmlinux 0x3c6d9f3b	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c813072	km_query
+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 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf63f19	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0x3d0bab57	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x3d0bae3c	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x3d332163	thaw_super
+EXPORT_SYMBOL vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL vmlinux 0x3d469564	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x3d536453	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x3d93ee61	posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0x3d9cc726	ll_rw_block
+EXPORT_SYMBOL vmlinux 0x3da269b4	dm_register_target
+EXPORT_SYMBOL vmlinux 0x3da52c3e	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x3dadd275	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x3daeffc3	snd_ctl_remove_id
+EXPORT_SYMBOL vmlinux 0x3dc41435	blk_init_queue_node
+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 0x3e0e9023	param_set_long
+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 0x3e5511a4	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x3e884f4b	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e937d2f	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x3ea4adaf	iget_failed
+EXPORT_SYMBOL vmlinux 0x3ea709de	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x3ec4768d	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x3ec57396	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ecd5bf4	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3efa2034	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x3f1975e7	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x3f1ded68	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x3f375a6b	request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f5097d1	napi_get_frags
+EXPORT_SYMBOL vmlinux 0x3f589898	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0x3f67000e	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x3f916323	pl330_update
+EXPORT_SYMBOL vmlinux 0x3fd69310	__f_setown
+EXPORT_SYMBOL vmlinux 0x3fd74c58	register_gifconf
+EXPORT_SYMBOL vmlinux 0x3fd78fc6	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x3fd9682c	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x3fe0c149	sk_free
+EXPORT_SYMBOL vmlinux 0x3ff3acc0	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffd1d48	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x400ed337	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0x4028094d	qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x4029d238	param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4029d76e	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x402b8281	__request_module
+EXPORT_SYMBOL vmlinux 0x4036ae10	ps2_drain
+EXPORT_SYMBOL vmlinux 0x4052d8fd	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x4056ea61	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144	get_seconds
+EXPORT_SYMBOL vmlinux 0x406f8d85	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL vmlinux 0x407d7b27	kill_fasync
+EXPORT_SYMBOL vmlinux 0x408a71d8	tcp_disconnect
+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 0x40b12d11	udplite_prot
+EXPORT_SYMBOL vmlinux 0x40bf582c	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL vmlinux 0x4106d7aa	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410a65a3	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x4118b4b3	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x411d9e78	del_gendisk
+EXPORT_SYMBOL vmlinux 0x4133ff23	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x4134b10c	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x4163a15e	snd_cards
+EXPORT_SYMBOL vmlinux 0x41742292	noop_llseek
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41aaa5b7	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x41bfba0b	dev_alert
+EXPORT_SYMBOL vmlinux 0x41bfc910	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x41cb0f34	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x41d94781	journal_flush
+EXPORT_SYMBOL vmlinux 0x41e90df9	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+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 0x427c9e77	inet6_release
+EXPORT_SYMBOL vmlinux 0x428f2241	_dev_info
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a6d27b	sg_miter_next
+EXPORT_SYMBOL vmlinux 0x42ad5b31	kill_pgrp
+EXPORT_SYMBOL vmlinux 0x42c475db	input_open_device
+EXPORT_SYMBOL vmlinux 0x42e80fd9	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x42f8c514	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x43087892	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x432bfa0f	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x4347b971	idr_init
+EXPORT_SYMBOL vmlinux 0x437ec363	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x43832171	blk_init_tags
+EXPORT_SYMBOL vmlinux 0x439b0518	simple_fill_super
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x4400ca88	vfs_link
+EXPORT_SYMBOL vmlinux 0x440e3424	journal_lock_updates
+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 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44bbd333	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x44be2af8	iterate_mounts
+EXPORT_SYMBOL vmlinux 0x44d02b78	blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x452604f7	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x453c1737	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x456f88d9	inet_getname
+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 0x45b7ea85	set_create_files_as
+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 0x45f560f8	sock_kmalloc
+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 0x46242420	dev_alloc_skb
+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 0x4656eafa	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x467178a5	touch_atime
+EXPORT_SYMBOL vmlinux 0x467c18a3	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x46ae5028	generic_permission
+EXPORT_SYMBOL vmlinux 0x46b83274	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x46c4b962	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x47030d70	path_put
+EXPORT_SYMBOL vmlinux 0x471611a1	do_splice_direct
+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 0x476a30ed	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x47ab093b	__generic_block_fiemap
+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 0x47d5ccb5	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x47d7b354	deactivate_super
+EXPORT_SYMBOL vmlinux 0x47dc583b	seq_open
+EXPORT_SYMBOL vmlinux 0x47e2b187	__cleancache_put_page
+EXPORT_SYMBOL vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL vmlinux 0x47fade5d	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x480c8ad5	dm_put_device
+EXPORT_SYMBOL vmlinux 0x48284556	contig_page_data
+EXPORT_SYMBOL vmlinux 0x483b631a	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x483ec199	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4870874e	kstat
+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 0x49296c62	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x49301839	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0x4933a79e	noop_fsync
+EXPORT_SYMBOL vmlinux 0x4934d313	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x493aa7e9	inetdev_by_index
+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 0x49928114	tcp_seq_open
+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 0x49d1af6a	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x49e0f780	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL vmlinux 0x49edc225	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x49f648a3	sock_release
+EXPORT_SYMBOL vmlinux 0x4a0774c6	inet_listen
+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 0x4a5a3cda	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x4aa1d5dc	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+EXPORT_SYMBOL vmlinux 0x4abdb61c	seq_printf
+EXPORT_SYMBOL vmlinux 0x4ac76bb6	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x4ad9966a	mount_single
+EXPORT_SYMBOL vmlinux 0x4aef74a2	nf_afinfo
+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 0x4b2c49c7	d_drop
+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 0x4b90abca	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x4ba2ddee	do_sync_write
+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 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cc42235	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL vmlinux 0x4d104131	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d5b0697	generic_file_open
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+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 0x4dbadb49	km_state_notify
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+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 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 0x4e7fd1e0	softnet_data
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4e87363a	tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x4e9e0c68	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x4ebefdb0	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x4ed07232	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x4f0bf2f7	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x4f0c5e98	vc_resize
+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 0x4f87d4c6	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x4f88d4b4	phy_scan_fixups
+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 0x4fccc687	kick_iocb
+EXPORT_SYMBOL vmlinux 0x4fd3f2d7	scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x4fd8cd6a	snd_pcm_new
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x5008bbbb	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506d97f5	omap_readl
+EXPORT_SYMBOL vmlinux 0x50aa2f38	dev_addr_del
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50b068eb	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x50bf3e84	kernel_getsockname
+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 0x50fb0531	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x5103b63d	vfs_write
+EXPORT_SYMBOL vmlinux 0x51102a96	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x511719e7	iget5_locked
+EXPORT_SYMBOL vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x5139cd73	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x515c4bae	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x5169161d	omap_free_dma_chain
+EXPORT_SYMBOL vmlinux 0x5179dd50	kset_unregister
+EXPORT_SYMBOL vmlinux 0x51908eb8	__raw_writesl
+EXPORT_SYMBOL vmlinux 0x5191e0db	proto_unregister
+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 0x51e35580	gnet_stats_start_copy_compat
+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 0x5250a491	sock_i_ino
+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 0x52ebf701	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x52efd766	__kfifo_dma_in_prepare
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x5323826a	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x53294c94	pm860x_reg_read
+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 0x534e3119	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x5356ad0a	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x5356f4da	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x5369609b	page_symlink
+EXPORT_SYMBOL vmlinux 0x537686bc	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x539627de	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+EXPORT_SYMBOL vmlinux 0x53ae0f38	omap_st_enable
+EXPORT_SYMBOL vmlinux 0x53ba4e7c	up_write
+EXPORT_SYMBOL vmlinux 0x53bafee7	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x53cca6ab	snd_card_file_remove
+EXPORT_SYMBOL vmlinux 0x53e448ec	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x53f645c5	___dma_page_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x54068ece	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x5430ebf8	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544740a8	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0x544bd89c	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x546586ef	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x549e406a	mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54b17331	uart_register_driver
+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 0x552ec1ad	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x553355cc	inode_permission
+EXPORT_SYMBOL vmlinux 0x554a4afa	bio_put
+EXPORT_SYMBOL vmlinux 0x554c11dc	snd_pcm_set_ops
+EXPORT_SYMBOL vmlinux 0x55537aa6	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x557a5ff7	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x5581b2c2	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55ad8a12	unregister_nls
+EXPORT_SYMBOL vmlinux 0x55b12de8	update_region
+EXPORT_SYMBOL vmlinux 0x55c40fbd	ip_fragment
+EXPORT_SYMBOL vmlinux 0x55d9e14a	get_super
+EXPORT_SYMBOL vmlinux 0x55e6eb76	mem_map
+EXPORT_SYMBOL vmlinux 0x55e965ae	journal_ack_err
+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 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x5669ec47	call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x56789ac5	omap_set_dma_color_mode
+EXPORT_SYMBOL vmlinux 0x5683342d	cad_pid
+EXPORT_SYMBOL vmlinux 0x5691abde	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56f23c96	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x5724bf36	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x57253d13	keyring_clear
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x5761ceb5	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57983446	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0x579d9a58	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x57a215c8	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x57a2d56b	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x57ae4f2a	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x57dd99fb	release_sock
+EXPORT_SYMBOL vmlinux 0x57df0fce	of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x581b1502	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x582a24f1	snd_timer_notify
+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 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 0x590fa5af	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x591d8452	blk_start_request
+EXPORT_SYMBOL vmlinux 0x592d3745	redraw_screen
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL vmlinux 0x594fd546	omap_prcm_get_reset_sources
+EXPORT_SYMBOL vmlinux 0x59a4adc1	dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x59b5955b	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a	ioport_resource
+EXPORT_SYMBOL vmlinux 0x59dd9e10	uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x59e04922	of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x59f47966	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x5a46b6e5	amba_device_unregister
+EXPORT_SYMBOL vmlinux 0x5a4e6071	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x5a6123e1	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x5a6635c2	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a746d0d	of_dev_get
+EXPORT_SYMBOL vmlinux 0x5b101ee6	udp_prot
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b2daf4a	find_inode_number
+EXPORT_SYMBOL vmlinux 0x5b334156	down_killable
+EXPORT_SYMBOL vmlinux 0x5b39f539	of_match_device
+EXPORT_SYMBOL vmlinux 0x5b67257a	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x5b6803fe	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x5b7c67f2	phy_device_register
+EXPORT_SYMBOL vmlinux 0x5bf4a1eb	sg_last
+EXPORT_SYMBOL vmlinux 0x5c5ac054	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c7c39b5	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x5c8e8b0d	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL vmlinux 0x5ca354de	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x5cbd5f8e	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x5cca1341	snd_jack_new
+EXPORT_SYMBOL vmlinux 0x5cd7a997	d_move
+EXPORT_SYMBOL vmlinux 0x5cec394e	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x5cf9e323	jbd2_journal_try_to_free_buffers
+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 0x5d51ba9d	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d5e6b4a	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x5d602499	dst_cow_metrics_generic
+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 0x5daa7637	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x5dafad2e	ata_link_printk
+EXPORT_SYMBOL vmlinux 0x5dc08a38	skb_clone
+EXPORT_SYMBOL vmlinux 0x5dc38337	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x5dc92ee3	fget_raw
+EXPORT_SYMBOL vmlinux 0x5dd8434f	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x5de9b8c5	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x5e09aaba	set_disk_ro
+EXPORT_SYMBOL vmlinux 0x5e218047	serio_close
+EXPORT_SYMBOL vmlinux 0x5e32e794	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x5e378783	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x5e39292b	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x5e4640c6	unlock_page
+EXPORT_SYMBOL vmlinux 0x5e60eb27	omap_dma_unlink_lch
+EXPORT_SYMBOL vmlinux 0x5e66864b	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e729392	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed0cfa2	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5edf6f6d	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x5ef4d861	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f052ed2	__ps2_command
+EXPORT_SYMBOL vmlinux 0x5f29074b	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f59e0c9	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x5f5a3525	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x5f6a831e	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x5f6e42ef	tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL vmlinux 0x5f831a03	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x5f9c1533	dma_free_coherent
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fbea730	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x5fc09fd6	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x5fc27e5d	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x5fd03c19	fb_pan_display
+EXPORT_SYMBOL vmlinux 0x5fd1b3b1	netif_set_real_num_tx_queues
+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 0x600ec187	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x60138ea7	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x601f5c95	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x601fca18	d_add_ci
+EXPORT_SYMBOL vmlinux 0x60271ceb	netif_napi_del
+EXPORT_SYMBOL vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL vmlinux 0x603dad0f	module_put
+EXPORT_SYMBOL vmlinux 0x6043801d	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x604674b2	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x60487727	ip_getsockopt
+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 0x60582f52	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x6059820a	netdev_printk
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x6076537b	crypto_sha1_update
+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 0x60c5dc6a	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x60cdf3e8	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x60e05e90	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x60ed5f43	dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x60f71cfa	complete
+EXPORT_SYMBOL vmlinux 0x610027e2	init_net
+EXPORT_SYMBOL vmlinux 0x61023171	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x6114ecb7	snd_timer_global_register
+EXPORT_SYMBOL vmlinux 0x61172dd3	register_console
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61585b1d	snd_card_file_add
+EXPORT_SYMBOL vmlinux 0x6168d2b0	dev_warn
+EXPORT_SYMBOL vmlinux 0x6193117c	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x6193a942	dqget
+EXPORT_SYMBOL vmlinux 0x61a79f08	__irq_regs
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61daf60f	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x61e7e615	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL vmlinux 0x61f5f1ac	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x61f64350	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x6206ab09	journal_forget
+EXPORT_SYMBOL vmlinux 0x6215d8c9	path_is_under
+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 0x62299383	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x62465745	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0x62566d2e	register_netdevice
+EXPORT_SYMBOL vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL vmlinux 0x6278b4df	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x62827bec	security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x628573a4	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x6294d10e	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x629f1e5f	dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x62b72b0d	mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62ba6216	pipe_lock
+EXPORT_SYMBOL vmlinux 0x62cc569e	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62fcce9d	dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x6301b72c	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0x6314d9ea	__lock_page
+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 0x636967ab	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL vmlinux 0x637328b2	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x637566ec	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x639328b9	bioset_create
+EXPORT_SYMBOL vmlinux 0x639ac75a	do_sync_read
+EXPORT_SYMBOL vmlinux 0x63a4680c	skb_kill_datagram
+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 0x63fbe5a4	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6408dde9	set_user_nice
+EXPORT_SYMBOL vmlinux 0x641882e0	mem_cgroup_count_vm_event
+EXPORT_SYMBOL vmlinux 0x643aafac	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x64445846	snd_pcm_hw_refine
+EXPORT_SYMBOL vmlinux 0x64598cc1	vfs_rename
+EXPORT_SYMBOL vmlinux 0x6472ef5a	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0x6493a3c9	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a788f3	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x64bad850	snd_jack_set_key
+EXPORT_SYMBOL vmlinux 0x64bef2f6	default_llseek
+EXPORT_SYMBOL vmlinux 0x64c1d549	fb_set_var
+EXPORT_SYMBOL vmlinux 0x64c56e7f	netif_rx
+EXPORT_SYMBOL vmlinux 0x64cc4079	tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x64d233c8	ioremap_page
+EXPORT_SYMBOL vmlinux 0x64ec9c9b	sync_inode
+EXPORT_SYMBOL vmlinux 0x6500311c	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0x650f8603	snd_pcm_format_silence_64
+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 0x656b5bd9	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x65737692	lease_modify
+EXPORT_SYMBOL vmlinux 0x6573a40d	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x6585e310	alloc_pages_exact_nid
+EXPORT_SYMBOL vmlinux 0x6589bd9f	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x65c638b1	mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x65cad784	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x65d72dd2	genl_register_family
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x65eb26d2	dump_write
+EXPORT_SYMBOL vmlinux 0x65ff7eeb	invalidate_inode_buffers
+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 0x663ffa0b	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x6642fd43	generic_setlease
+EXPORT_SYMBOL vmlinux 0x664b72ee	netdev_notice
+EXPORT_SYMBOL vmlinux 0x665b6cba	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x66719719	scm_detach_fds
+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 0x66dc871c	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x67053080	current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670530d4	kernel_listen
+EXPORT_SYMBOL vmlinux 0x673bc5cc	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x674bbfe7	snd_ctl_find_id
+EXPORT_SYMBOL vmlinux 0x675c3f3c	nand_scan
+EXPORT_SYMBOL vmlinux 0x67650abe	dquot_file_open
+EXPORT_SYMBOL vmlinux 0x676aae97	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL vmlinux 0x67714010	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x6772d25a	amba_device_register
+EXPORT_SYMBOL vmlinux 0x678ba972	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b4ed8c	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67dd181a	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x67fb4a06	snd_timer_new
+EXPORT_SYMBOL vmlinux 0x68078806	fb_find_mode
+EXPORT_SYMBOL vmlinux 0x6872fd3d	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0x687473b6	scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x687740d3	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688fbadf	flush_dcache_page
+EXPORT_SYMBOL vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL vmlinux 0x68b0587b	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x68e2c9c6	sk_common_release
+EXPORT_SYMBOL vmlinux 0x691774c4	cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x691d6c90	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x694e2f3c	generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x6958bb5e	names_cachep
+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 0x69d38ed9	__scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a	bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69f1d3b3	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x69f4af54	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6a01194c	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a0e3965	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x6a2190a0	consume_skb
+EXPORT_SYMBOL vmlinux 0x6a3a4e6b	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x6a559116	rtc_lock
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+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 0x6ac490f5	user_path_create
+EXPORT_SYMBOL vmlinux 0x6adef502	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x6aff2ac2	of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0x6b062d60	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b5a7057	ida_destroy
+EXPORT_SYMBOL vmlinux 0x6b9e155f	skb_copy_datagram_iovec
+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 0x6bd32099	pneigh_enqueue
+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 0x6c02ced8	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+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 0x6c7860ec	nand_correct_data
+EXPORT_SYMBOL vmlinux 0x6c94c71d	free_task
+EXPORT_SYMBOL vmlinux 0x6c96a401	inet_csk_init_xmit_timers
+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 0x6d06ee4f	journal_set_features
+EXPORT_SYMBOL vmlinux 0x6d09de1b	unlock_rename
+EXPORT_SYMBOL vmlinux 0x6d0f1f89	dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x6d0fce2b	netlink_kernel_release
+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 0x6d35cb9b	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x6d43cbe7	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x6d5a5fd2	md_done_sync
+EXPORT_SYMBOL vmlinux 0x6d5defde	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL vmlinux 0x6d6783d2	simple_statfs
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d733d4f	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x6daa875d	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6dad6bb0	otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x6dc5e39f	d_lookup
+EXPORT_SYMBOL vmlinux 0x6ddafe87	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x6de7249b	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e06b083	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x6e37c0ee	n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x6e501448	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6e5b3f42	inet6_bind
+EXPORT_SYMBOL vmlinux 0x6e6b0799	tcp_connect
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e742bc2	security_file_permission
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6eb29a5d	__dev_get_by_index
+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 0x6ef03a4c	tcp_valid_rtt_meas
+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 0x6f4475ac	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0x6f4a880d	blkdev_put
+EXPORT_SYMBOL vmlinux 0x6f581045	snd_unregister_device
+EXPORT_SYMBOL vmlinux 0x6f6f267d	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x6f73a4fb	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x6f7efd45	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x6fa37775	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x6fbc6239	skb_insert
+EXPORT_SYMBOL vmlinux 0x6fc281de	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdacc68	register_md_personality
+EXPORT_SYMBOL vmlinux 0x6ff833f5	jbd2_journal_clear_features
+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 0x701629c1	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x7023ad84	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x708b3913	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x7093b5f7	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x70b024bf	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x70b2845a	scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x70bc17d7	inode_wait
+EXPORT_SYMBOL vmlinux 0x70c7089a	__napi_complete
+EXPORT_SYMBOL vmlinux 0x70d053fd	try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x70d3292a	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x70dd1a12	gpmc_cs_configure
+EXPORT_SYMBOL vmlinux 0x71003efd	devm_iounmap
+EXPORT_SYMBOL vmlinux 0x710854c9	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x711f806c	datagram_poll
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x713e1dd2	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x714db585	__dev_printk
+EXPORT_SYMBOL vmlinux 0x714e2246	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x7156cb7e	kernel_bind
+EXPORT_SYMBOL vmlinux 0x71632fc6	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x7169b3e4	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x718b2255	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x719160ed	textsearch_register
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71ba8cb8	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL vmlinux 0x7203f331	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x720d9b87	pskb_copy
+EXPORT_SYMBOL vmlinux 0x721af3c8	get_gendisk
+EXPORT_SYMBOL vmlinux 0x7222ba25	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x723353fd	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x7234265f	bdi_destroy
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x72492c59	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x7251d82e	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x7258431b	kobject_del
+EXPORT_SYMBOL vmlinux 0x7289de19	lookup_hash
+EXPORT_SYMBOL vmlinux 0x72a2f162	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72b547f0	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x72c02b5f	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x72d58de9	kstrtou8_from_user
+EXPORT_SYMBOL vmlinux 0x72e0e922	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x72e50086	vm_stat
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72ee3de1	udp_lib_unhash
+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 0x73916018	register_qdisc
+EXPORT_SYMBOL vmlinux 0x739e8f0b	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73be2898	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL vmlinux 0x73fb8a7e	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x743052fb	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x74482728	dma_supported
+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 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c4254f	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x74c9291d	tty_free_termios
+EXPORT_SYMBOL vmlinux 0x74ea1901	fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x74f040da	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x74f20f34	unregister_console
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x750ff2fc	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x751b2247	param_get_bool
+EXPORT_SYMBOL vmlinux 0x7562caf1	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x75686dc3	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x75699252	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x757a08f8	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x757a6954	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x7593d385	div64_s64
+EXPORT_SYMBOL vmlinux 0x759e6dca	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x75a17bed	prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75ad7518	vfs_writev
+EXPORT_SYMBOL vmlinux 0x75b617ad	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x75bc2dc2	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75f0e04c	complete_request_key
+EXPORT_SYMBOL vmlinux 0x75f17fc9	simple_link
+EXPORT_SYMBOL vmlinux 0x75f236ed	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x75fee7fd	__raw_writesb
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761fde5e	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x76363644	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x7637e167	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x763ba62f	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x7645a1b3	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL vmlinux 0x7649bede	find_vma
+EXPORT_SYMBOL vmlinux 0x76694591	omap_mcbsp_get_max_tx_threshold
+EXPORT_SYMBOL vmlinux 0x766ed98f	path_get
+EXPORT_SYMBOL vmlinux 0x76881360	leds_event
+EXPORT_SYMBOL vmlinux 0x768f170f	snd_dma_reserve_buf
+EXPORT_SYMBOL vmlinux 0x76946c0c	journal_start
+EXPORT_SYMBOL vmlinux 0x76b42da1	snd_timer_continue
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c7f5d1	blk_end_request
+EXPORT_SYMBOL vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76eb53d5	__rta_fill
+EXPORT_SYMBOL vmlinux 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x77870ad5	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x77879f94	snd_dma_free_pages
+EXPORT_SYMBOL vmlinux 0x778fa82d	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x779dc422	snd_card_register
+EXPORT_SYMBOL vmlinux 0x77b9bae1	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77c924d7	uart_match_port
+EXPORT_SYMBOL vmlinux 0x77c96f71	generic_setxattr
+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 0x7803404d	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x78167c43	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x781c5407	dcb_getapp
+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 0x789d1db9	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x78a0b928	netpoll_setup
+EXPORT_SYMBOL vmlinux 0x78aac4c2	__lru_cache_add
+EXPORT_SYMBOL vmlinux 0x78b4b053	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x78e096e2	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x78e52bf7	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x78ec8fd1	thaw_process
+EXPORT_SYMBOL vmlinux 0x78f67038	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x79333617	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x7939ae03	simple_readpage
+EXPORT_SYMBOL vmlinux 0x793d794a	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x794487ee	disable_hlt
+EXPORT_SYMBOL vmlinux 0x79488a31	writeback_inodes_sb_nr
+EXPORT_SYMBOL vmlinux 0x796836b7	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x796d56bd	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7995ba44	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a1e4fc4	pl330_del
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a91726b	clkdev_alloc
+EXPORT_SYMBOL vmlinux 0x7aa68030	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x7ab8e4a3	page_put_link
+EXPORT_SYMBOL vmlinux 0x7ad88abe	omap_dss_stop_device
+EXPORT_SYMBOL vmlinux 0x7afa89fc	vsnprintf
+EXPORT_SYMBOL vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL vmlinux 0x7b03848a	verify_mem_not_deleted
+EXPORT_SYMBOL vmlinux 0x7b71644f	ppp_input_error
+EXPORT_SYMBOL vmlinux 0x7b7a0b22	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x7b8421c6	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x7b9b517f	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x7bac2445	i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x7bd96a2c	gpmc_prefetch_enable
+EXPORT_SYMBOL vmlinux 0x7bda4959	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x7bf30fdc	down_write
+EXPORT_SYMBOL vmlinux 0x7c401393	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+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 0x7c77c11d	submit_bh
+EXPORT_SYMBOL vmlinux 0x7c904ded	unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d	twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca787d4	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x7caf5bb7	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x7cb7bec1	snd_ctl_add
+EXPORT_SYMBOL vmlinux 0x7cbd31bf	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL vmlinux 0x7cc0873f	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7ced573e	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x7cf56d2f	vfs_path_lookup
+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 0x7d22c884	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x7d2c7a96	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0x7d2f8943	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x7d3cfed9	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x7d48ade7	snd_device_register
+EXPORT_SYMBOL vmlinux 0x7d534f33	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x7d6a1d98	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x7db46938	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x7dc3c998	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x7dca01a7	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x7dd502d0	__break_lease
+EXPORT_SYMBOL vmlinux 0x7de0a78b	tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e08dae3	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x7e097639	mii_check_link
+EXPORT_SYMBOL vmlinux 0x7e1be402	uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x7e394c4e	sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3bb05c	scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7e4ec7ab	__register_binfmt
+EXPORT_SYMBOL vmlinux 0x7e5012a8	sg_miter_start
+EXPORT_SYMBOL vmlinux 0x7e512d51	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x7e8e7cd9	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ec6ce5c	iunique
+EXPORT_SYMBOL vmlinux 0x7ed32829	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x7ed566d2	__scsi_add_device
+EXPORT_SYMBOL vmlinux 0x7eeed8cb	mnt_pin
+EXPORT_SYMBOL vmlinux 0x7efff39e	blk_get_request
+EXPORT_SYMBOL vmlinux 0x7f1e111b	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f33a63b	omap_get_dma_chain_dst_pos
+EXPORT_SYMBOL vmlinux 0x7f5ba868	iterate_supers_type
+EXPORT_SYMBOL vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL vmlinux 0x7f83dbbb	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x7fbaf2a9	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL vmlinux 0x7fe28636	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x7ff532e3	set_blocksize
+EXPORT_SYMBOL vmlinux 0x7ff60de6	arp_find
+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 0x804fc9ca	omap_mcbsp_free
+EXPORT_SYMBOL vmlinux 0x8057dffb	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x80644878	keyring_search
+EXPORT_SYMBOL vmlinux 0x80a7facb	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x80ae0eb4	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x80c2447c	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x80d726a3	generic_getxattr
+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 0x816bc2f4	dev_open
+EXPORT_SYMBOL vmlinux 0x8179d5f9	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x8180a2db	mfd_cell_enable
+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 0x820e73ed	i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x821e8d91	gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x8224f42d	freeze_bdev
+EXPORT_SYMBOL vmlinux 0x8243200b	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL vmlinux 0x8251bcc3	bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82604583	d_path
+EXPORT_SYMBOL vmlinux 0x8260686f	bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x826e648d	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x826e9d75	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x82934770	icmp_send
+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 0x8320bea8	__umodsi3
+EXPORT_SYMBOL vmlinux 0x8330e981	dpi_set_timings
+EXPORT_SYMBOL vmlinux 0x834420b0	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x836bdb72	nand_flash_ids
+EXPORT_SYMBOL vmlinux 0x8371daff	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x837ffc3e	journal_dirty_data
+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 0x83b6e326	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x83b920a0	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x83cdff7d	inet_put_port
+EXPORT_SYMBOL vmlinux 0x83d25c38	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x83e55830	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL vmlinux 0x83ea01df	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x83eb5971	mapping_tagged
+EXPORT_SYMBOL vmlinux 0x8400afe0	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x84208119	udp_proc_register
+EXPORT_SYMBOL vmlinux 0x8430e613	may_umount
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x8478b5aa	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x847c8bd6	snd_pcm_hw_param_first
+EXPORT_SYMBOL vmlinux 0x848152f4	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x84915d15	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL vmlinux 0x84b86069	ip_defrag
+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 0x84db4b6e	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x84e02c17	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0x84f3b5cb	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x854bb677	xfrm_state_delete
+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 0x858ecece	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x85907337	bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x85b18a12	seq_release_private
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85b689be	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x85c30435	nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x85c9612b	mntput
+EXPORT_SYMBOL vmlinux 0x85d16c8d	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x85d44d46	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x8610cc93	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x862718fa	framebuffer_release
+EXPORT_SYMBOL vmlinux 0x863b9ed3	ppp_input
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x867b7a62	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x86869074	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x86a4889a	kmalloc_order_trace
+EXPORT_SYMBOL vmlinux 0x86a87571	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x86c0baa5	__dst_free
+EXPORT_SYMBOL vmlinux 0x86d86a2d	bio_free
+EXPORT_SYMBOL vmlinux 0x86debcd1	blk_rq_init
+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 0x8710d90a	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x8714ac20	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x871c0a7e	fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872932cc	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x872a8a6b	tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x873357ed	kthread_bind
+EXPORT_SYMBOL vmlinux 0x877a4709	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87ab0635	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x87c0700e	input_get_keycode
+EXPORT_SYMBOL vmlinux 0x87dbba14	ida_get_new
+EXPORT_SYMBOL vmlinux 0x87e494b1	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x881fa0fb	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x883b3507	load_nls
+EXPORT_SYMBOL vmlinux 0x88646272	set_anon_super
+EXPORT_SYMBOL vmlinux 0x8869f62e	key_validate
+EXPORT_SYMBOL vmlinux 0x8876fbe5	snd_ctl_find_numid
+EXPORT_SYMBOL vmlinux 0x8893fa5d	finish_wait
+EXPORT_SYMBOL vmlinux 0x88ae743f	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x88bb551c	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x88bc289b	register_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x88c59600	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x88c99ae2	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x88d8447f	tty_register_device
+EXPORT_SYMBOL vmlinux 0x88e6bec2	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x8907c79a	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x8918f83d	snd_info_create_card_entry
+EXPORT_SYMBOL vmlinux 0x891f5699	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x89291313	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x893af426	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x8949858b	schedule_work
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x899bdfa5	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x899d3f1d	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x89a3c4f4	omap_get_dma_chain_index
+EXPORT_SYMBOL vmlinux 0x89b12c5b	netif_napi_add
+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 0x8a0c0c59	d_find_alias
+EXPORT_SYMBOL vmlinux 0x8a11b9f0	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a86c0fc	dquot_release
+EXPORT_SYMBOL vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab081d2	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x8ab0e1b1	locks_free_lock
+EXPORT_SYMBOL vmlinux 0x8adedea9	snd_ctl_make_virtual_master
+EXPORT_SYMBOL vmlinux 0x8ae5b1a2	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x8b1be2b5	__brelse
+EXPORT_SYMBOL vmlinux 0x8b4bb1bc	security_path_rename
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b7b174f	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x8b7f03dd	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x8bc2401d	textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x8bcc7885	tty_throttle
+EXPORT_SYMBOL vmlinux 0x8bdb6e8c	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x8bdce7ef	prepare_binprm
+EXPORT_SYMBOL vmlinux 0x8be07a49	fsync_bdev
+EXPORT_SYMBOL vmlinux 0x8beadbaa	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x8c08199c	release_firmware
+EXPORT_SYMBOL vmlinux 0x8c0c3237	take_over_console
+EXPORT_SYMBOL vmlinux 0x8c4d6523	omap_dma_chain_a_transfer
+EXPORT_SYMBOL vmlinux 0x8c505427	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x8c566f56	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x8c6b1086	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x8c6d2542	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x8c7a3757	of_get_named_gpio_flags
+EXPORT_SYMBOL vmlinux 0x8c984d12	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x8ca8d886	key_revoke
+EXPORT_SYMBOL vmlinux 0x8cd69ebe	d_invalidate
+EXPORT_SYMBOL vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL vmlinux 0x8cea74a6	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x8cf0d28d	mddev_congested
+EXPORT_SYMBOL vmlinux 0x8d16a3e2	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x8d21c125	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x8d2268c5	arp_xmit
+EXPORT_SYMBOL vmlinux 0x8d317a25	phy_print_status
+EXPORT_SYMBOL vmlinux 0x8d551bef	sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d61f998	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x8d6f81b4	__div64_32
+EXPORT_SYMBOL vmlinux 0x8d839a2e	blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x8d8b011a	simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x8db770d8	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL vmlinux 0x8e004fb3	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e16e5da	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x8e4952aa	amba_find_device
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e60e8f3	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x8e691c56	__devm_request_region
+EXPORT_SYMBOL vmlinux 0x8e7c694e	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x8e8a70e8	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x8e8ddff1	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x8ea571d9	fb_class
+EXPORT_SYMBOL vmlinux 0x8ea7d43b	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x8eb5a102	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x8eb7df33	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f07205e	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0x8f085f21	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x8f0ae89b	tcp_prot
+EXPORT_SYMBOL vmlinux 0x8f3abaeb	dev_err
+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 0x8f97c23e	snd_pcm_lib_ioctl
+EXPORT_SYMBOL vmlinux 0x8fa4130a	omap_set_dma_callback
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fe7269d	of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x905ed8b3	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x90aceec4	log_start_commit
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90e24e74	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x90e83954	of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x9134c3ff	nand_bch_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x91463b1d	kstrtos16
+EXPORT_SYMBOL vmlinux 0x91621d6a	allocate_resource
+EXPORT_SYMBOL vmlinux 0x9162f164	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL vmlinux 0x91bd16be	omap_dss_get_device
+EXPORT_SYMBOL vmlinux 0x920664c8	mempool_free
+EXPORT_SYMBOL vmlinux 0x9212f95f	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923bc9b1	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x924273b7	lookup_bdev
+EXPORT_SYMBOL vmlinux 0x92642ce9	of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x9264365b	__cleancache_flush_fs
+EXPORT_SYMBOL vmlinux 0x929eecac	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x92c46e61	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x92d272ce	vm_event_states
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x930e0466	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x931938c3	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x9333e39d	of_dev_put
+EXPORT_SYMBOL vmlinux 0x9340ea5c	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x935e13da	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x9373a912	skb_find_text
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93bc9ebd	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x9400bbab	omap_mcbsp_dma_reg_params
+EXPORT_SYMBOL vmlinux 0x9401fff1	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x94418f54	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x94444361	mii_check_media
+EXPORT_SYMBOL vmlinux 0x946e2c58	tty_mutex
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94af632e	complete_all
+EXPORT_SYMBOL vmlinux 0x94b72cfb	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x950f1186	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x952a26a4	locks_mandatory_area
+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 0x95461f16	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x9565c97f	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x9585e489	tcp_gro_receive
+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 0x9619c3b7	generic_fillattr
+EXPORT_SYMBOL vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0x965f8481	inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x9664044b	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x9665e8e3	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x967bec11	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x969106e4	clk_set_rate
+EXPORT_SYMBOL vmlinux 0x969bd271	generic_splice_sendpage
+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 0x96c5b9f1	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x96c6bb76	set_page_dirty
+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 0x97041123	skb_unlink
+EXPORT_SYMBOL vmlinux 0x9709b029	aio_complete
+EXPORT_SYMBOL vmlinux 0x9714cf26	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL vmlinux 0x97417a5a	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x9744c6e4	tty_port_open
+EXPORT_SYMBOL vmlinux 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x975ca814	snd_timer_start
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97a09ad5	elv_register_queue
+EXPORT_SYMBOL vmlinux 0x97a7f9b4	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x97d3860a	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x97e4d19d	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x97e9e5c1	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x98082893	__copy_to_user
+EXPORT_SYMBOL vmlinux 0x9820b644	warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0x982c4c57	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x9840b41f	register_cdrom
+EXPORT_SYMBOL vmlinux 0x98596215	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x9861b52a	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x986e6135	fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x98b28a03	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x98c16297	scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x98c1e903	dev_emerg
+EXPORT_SYMBOL vmlinux 0x98d880e6	mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x99084bc5	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x99101d88	netlink_ack
+EXPORT_SYMBOL vmlinux 0x9912f960	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x99269e74	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+EXPORT_SYMBOL vmlinux 0x99538665	seq_open_private
+EXPORT_SYMBOL vmlinux 0x99583e88	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x995f619e	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999c3148	__raw_readsb
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99a786b3	vfs_create
+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 0x99e3e27c	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x99fde25f	gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a3c87fb	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x9a4eeb74	blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x9a63f60a	key_type_keyring
+EXPORT_SYMBOL vmlinux 0x9a85d7ab	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x9a88a2c5	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL vmlinux 0x9aa537af	empty_zero_page
+EXPORT_SYMBOL vmlinux 0x9ab721ef	revert_creds
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9aca6792	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x9afa6936	register_con_driver
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b4b1956	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x9b5b5114	get_disk
+EXPORT_SYMBOL vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL vmlinux 0x9b859421	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x9b8c0808	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x9ba7089d	argv_split
+EXPORT_SYMBOL vmlinux 0x9bcc1d3e	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x9bcc7e8c	kern_path
+EXPORT_SYMBOL vmlinux 0x9bce482f	__release_region
+EXPORT_SYMBOL vmlinux 0x9bef1299	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x9bf88878	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c147d90	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x9c277ba0	dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x9c3db728	nf_register_queue_handler
+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 0x9ca04207	clk_set_parent
+EXPORT_SYMBOL vmlinux 0x9ca5a39e	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x9ca612c0	mmc_can_reset
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+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 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d5f128e	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x9d6686ca	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL vmlinux 0x9d893369	seq_lseek
+EXPORT_SYMBOL vmlinux 0x9dad8435	sock_create_kern
+EXPORT_SYMBOL vmlinux 0x9dc285ef	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x9dc9e3ea	set_security_override
+EXPORT_SYMBOL vmlinux 0x9df9358d	drop_super
+EXPORT_SYMBOL vmlinux 0x9dfd56e7	phy_start
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e11c4ac	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x9e2000a7	memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e26df99	mmc_start_req
+EXPORT_SYMBOL vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x9e573544	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x9e607910	audit_log
+EXPORT_SYMBOL vmlinux 0x9e69776c	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL vmlinux 0x9e7163f6	d_delete
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ec2cc8c	clk_enable
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9edd4f75	snd_pcm_lib_write
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9eef60b5	sound_class
+EXPORT_SYMBOL vmlinux 0x9f014f0e	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x9f262d34	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f3aeb9f	netdev_warn
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f491e5d	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x9f8ade83	unregister_sysctl_table
+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 0x9fbab6f8	tcf_em_register
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe62d5d	mmc_set_data_timeout
+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 0xa04f4d4c	nand_bch_correct_data
+EXPORT_SYMBOL vmlinux 0xa0510c96	send_sig_info
+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 0xa0a9c88f	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0bc1200	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xa0be8dd2	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xa0c767b0	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0xa0c888eb	key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xa0ceef51	out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d18bd0	write_one_page
+EXPORT_SYMBOL vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10996cb	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xa1125a0c	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xa11d3905	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa140df00	dqput
+EXPORT_SYMBOL vmlinux 0xa1415618	twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa1477019	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa1549007	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xa17ee298	dma_find_channel
+EXPORT_SYMBOL vmlinux 0xa181fec3	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xa1972280	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xa1a5afea	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xa1b1ea3a	security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xa1b2a50e	inet_dgram_ops
+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 0xa1cb7015	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xa1e1277e	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa22a0eea	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xa2434452	simple_getattr
+EXPORT_SYMBOL vmlinux 0xa258a891	sock_register
+EXPORT_SYMBOL vmlinux 0xa264af0f	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xa2761c7b	bdput
+EXPORT_SYMBOL vmlinux 0xa2782629	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa29855c2	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa3261b92	dm_get_device
+EXPORT_SYMBOL vmlinux 0xa32629f6	dns_query
+EXPORT_SYMBOL vmlinux 0xa332cdd1	security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa336feb7	nand_manuf_ids
+EXPORT_SYMBOL vmlinux 0xa33c6a80	sock_wfree
+EXPORT_SYMBOL vmlinux 0xa34f1ef5	crc32_le
+EXPORT_SYMBOL vmlinux 0xa35de80f	ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3675a7c	inode_init_once
+EXPORT_SYMBOL vmlinux 0xa382f962	dst_alloc
+EXPORT_SYMBOL vmlinux 0xa394b67a	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xa3a26a0e	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xa3cb0c1d	serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa3f5e9e0	__tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0xa413973b	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0xa4279941	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xa42cad84	sock_i_uid
+EXPORT_SYMBOL vmlinux 0xa42d53a9	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa456f0cc	sock_wake_async
+EXPORT_SYMBOL vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL vmlinux 0xa471bf2e	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xa4897cc3	dm_kcopyd_zero
+EXPORT_SYMBOL vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL vmlinux 0xa4c29461	omap_st_is_enabled
+EXPORT_SYMBOL vmlinux 0xa4e421b1	twl6040_power
+EXPORT_SYMBOL vmlinux 0xa4eddcfe	tcp_poll
+EXPORT_SYMBOL vmlinux 0xa4ef46c4	genphy_resume
+EXPORT_SYMBOL vmlinux 0xa50858e8	omapdss_dpi_display_enable
+EXPORT_SYMBOL vmlinux 0xa51db984	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0xa55c8052	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa569fdf2	fasync_helper
+EXPORT_SYMBOL vmlinux 0xa56b50ba	inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa575428e	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xa588e320	kernel_read
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a11f18	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xa5aafd10	journal_abort
+EXPORT_SYMBOL vmlinux 0xa5cef8ad	release_resource
+EXPORT_SYMBOL vmlinux 0xa5d69124	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xa5f284ec	vfs_open
+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 0xa65a4a2f	inet_sendpage
+EXPORT_SYMBOL vmlinux 0xa663d760	tty_register_driver
+EXPORT_SYMBOL vmlinux 0xa6658867	kern_path_create
+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 0xa6b29455	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xa6c2b2c6	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6f0578c	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xa6f344b9	sk_filter
+EXPORT_SYMBOL vmlinux 0xa717cd25	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xa7217d9c	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xa73da524	inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa74ee83c	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xa7612e4e	md_write_start
+EXPORT_SYMBOL vmlinux 0xa7863d64	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xa7b4c5ee	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xa7c58236	twl6030_mmc_card_detect
+EXPORT_SYMBOL vmlinux 0xa7ec92dd	mdiobus_register
+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 0xa83772a6	map_destroy
+EXPORT_SYMBOL vmlinux 0xa8380d34	kernel_execve
+EXPORT_SYMBOL vmlinux 0xa838133d	fsnotify_alloc_group
+EXPORT_SYMBOL vmlinux 0xa85f1a68	__alloc_skb
+EXPORT_SYMBOL vmlinux 0xa87bb6d8	kset_register
+EXPORT_SYMBOL vmlinux 0xa88b99d2	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xa8c4dc04	module_refcount
+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 0xa93cf34a	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xa943beca	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xa944c5f9	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xa9459df1	tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL vmlinux 0xa9ba6da0	dev_set_group
+EXPORT_SYMBOL vmlinux 0xa9f825b0	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xaa007648	simple_unlink
+EXPORT_SYMBOL vmlinux 0xaa0ad185	iput
+EXPORT_SYMBOL vmlinux 0xaa0f724f	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xaa5927f9	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL vmlinux 0xaa6a5b9d	bio_clone
+EXPORT_SYMBOL vmlinux 0xaa6c1661	mmc_can_erase
+EXPORT_SYMBOL vmlinux 0xaa7f7d52	submit_bio
+EXPORT_SYMBOL vmlinux 0xaa87e159	set_binfmt
+EXPORT_SYMBOL vmlinux 0xaa8e90be	of_get_parent
+EXPORT_SYMBOL vmlinux 0xaad2b04d	proc_symlink
+EXPORT_SYMBOL vmlinux 0xaad63e1a	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL vmlinux 0xaafdd14d	simple_setattr
+EXPORT_SYMBOL vmlinux 0xab0f0df7	abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xab143ed5	unload_nls
+EXPORT_SYMBOL vmlinux 0xab2e1287	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xab2e3405	dev_close
+EXPORT_SYMBOL vmlinux 0xab3a2c53	follow_pfn
+EXPORT_SYMBOL vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL vmlinux 0xab6bde28	sysctl_max_syn_backlog
+EXPORT_SYMBOL vmlinux 0xab745ade	skb_pull
+EXPORT_SYMBOL vmlinux 0xab93c455	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xabaafba2	skb_copy_datagram_const_iovec
+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 0xabe39bea	kfree_skb
+EXPORT_SYMBOL vmlinux 0xabe4422d	amba_driver_register
+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 0xac18ea9a	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xac267f03	register_quota_format
+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 0xac6a7c33	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xacb58cd1	mmc_hw_reset
+EXPORT_SYMBOL vmlinux 0xacbd33ac	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xacce46f0	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xace7c9f8	may_umount_tree
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xacf61aa5	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad4259ea	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad5f05c7	filp_open
+EXPORT_SYMBOL vmlinux 0xad70cbfc	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xad78bf9e	sk_stream_write_space
+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 0xad9f23a5	neigh_changeaddr
+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 0xae1bd23e	block_truncate_page
+EXPORT_SYMBOL vmlinux 0xae487307	mmc_can_secure_erase_trim
+EXPORT_SYMBOL vmlinux 0xae87b7d7	phy_driver_unregister
+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 0xaeb3b059	generic_make_request
+EXPORT_SYMBOL vmlinux 0xaeb70a21	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaec9f77e	snd_timer_stop
+EXPORT_SYMBOL vmlinux 0xaee34f5f	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xaee3b995	elv_rb_latter_request
+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 0xaf5f7994	remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf610526	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xaf68f5bb	inet_frags_init
+EXPORT_SYMBOL vmlinux 0xaf704921	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xaf7337f5	jbd2_journal_abort
+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 0xafdc0692	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb02299bf	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xb02bfafd	snd_pcm_notify
+EXPORT_SYMBOL vmlinux 0xb04abea1	scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xb05ca2c7	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb05cc8b5	twl6040_set_bits
+EXPORT_SYMBOL vmlinux 0xb0a9e1cc	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0bd1935	unlink_framebuffer
+EXPORT_SYMBOL vmlinux 0xb0d94da1	skb_put
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0f4f223	sk_dst_check
+EXPORT_SYMBOL vmlinux 0xb0f5f31d	do_truncate
+EXPORT_SYMBOL vmlinux 0xb0f68d14	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1255147	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xb12a5105	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xb1689489	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xb16fe7b3	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0xb17436d5	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xb17daddb	dst_discard
+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 0xb1ade09a	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cf0187	put_tty_driver
+EXPORT_SYMBOL vmlinux 0xb1dbd13d	security_path_unlink
+EXPORT_SYMBOL vmlinux 0xb1e9fd33	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xb1f72dd1	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xb1ffb750	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xb21667c6	scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xb218a8f8	genphy_update_link
+EXPORT_SYMBOL vmlinux 0xb21d22d6	sock_init_data
+EXPORT_SYMBOL vmlinux 0xb22cf46b	nand_scan_tail
+EXPORT_SYMBOL vmlinux 0xb2484a62	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xb259a501	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2757e43	ilookup5
+EXPORT_SYMBOL vmlinux 0xb282d505	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0xb28f1c92	omap_mcbsp_stop
+EXPORT_SYMBOL vmlinux 0xb299b210	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xb2b6ccd4	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xb2bac9c5	netdev_alert
+EXPORT_SYMBOL vmlinux 0xb2c8739b	locks_delete_block
+EXPORT_SYMBOL vmlinux 0xb2d108b4	security_path_symlink
+EXPORT_SYMBOL vmlinux 0xb2d46eae	bdget_disk
+EXPORT_SYMBOL vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL vmlinux 0xb2e68f18	flush_old_exec
+EXPORT_SYMBOL vmlinux 0xb2f08828	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xb2fe77de	__register_chrdev
+EXPORT_SYMBOL vmlinux 0xb30f52be	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb317de89	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xb318d887	uart_resume_port
+EXPORT_SYMBOL vmlinux 0xb3232e3a	generic_write_end
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb391afa3	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3c76ea8	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0xb3c940ba	md_integrity_register
+EXPORT_SYMBOL vmlinux 0xb3e2cb66	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xb3f51548	of_device_alloc
+EXPORT_SYMBOL vmlinux 0xb3fc5fe6	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb41aeaa0	generic_write_sync
+EXPORT_SYMBOL vmlinux 0xb41ba270	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb42737d3	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xb45a151a	set_groups
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb49124e6	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xb4b94377	__nand_correct_data
+EXPORT_SYMBOL vmlinux 0xb4c8f38a	omap_dma_chain_status
+EXPORT_SYMBOL vmlinux 0xb4d915ad	mount_ns
+EXPORT_SYMBOL vmlinux 0xb4e38e77	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xb4f8b040	follow_down
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb5252451	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xb5344337	do_SAK
+EXPORT_SYMBOL vmlinux 0xb54533f7	usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f57c4	bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xb5604921	neigh_create
+EXPORT_SYMBOL vmlinux 0xb58912a9	of_get_next_child
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5b9c519	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xb5c8207d	blk_peek_request
+EXPORT_SYMBOL vmlinux 0xb5ca1c46	slhc_free
+EXPORT_SYMBOL vmlinux 0xb5cf98e3	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xb5dc747d	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xb602439f	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xb61a2769	kernel_accept
+EXPORT_SYMBOL vmlinux 0xb61c7f9e	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xb625abdb	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb6611ebe	no_llseek
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb686e184	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb69b4ba6	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cf3961	genphy_suspend
+EXPORT_SYMBOL vmlinux 0xb73c8d40	tty_chars_in_buffer
+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 0xb7937fcb	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xb7a50996	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xb7af43c0	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xb7b184b4	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7ba76c7	__aeabi_unwind_cpp_pr2
+EXPORT_SYMBOL vmlinux 0xb7d858e6	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0xb7e879e1	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xb7f0ecda	ip_check_defrag
+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 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb81fd3be	idr_find
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb86e4ab9	random32
+EXPORT_SYMBOL vmlinux 0xb87badba	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xb888c5b4	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xb892c24e	ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xb894926d	schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb8955617	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb8aa2342	__check_region
+EXPORT_SYMBOL vmlinux 0xb8c49564	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xb8c64d48	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL vmlinux 0xb93b5b8e	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xb952098b	neigh_resolve_output
+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 0xb96b3856	dev_change_flags
+EXPORT_SYMBOL vmlinux 0xb96d414f	sk_receive_skb
+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 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 0xb9e52429	__wake_up
+EXPORT_SYMBOL vmlinux 0xba028f4c	omap_dss_get_next_device
+EXPORT_SYMBOL vmlinux 0xba06ccaa	noop_qdisc
+EXPORT_SYMBOL vmlinux 0xba2de0d6	d_set_d_op
+EXPORT_SYMBOL vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba5392c1	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0xba6586c4	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xba81330b	dev_addr_add
+EXPORT_SYMBOL vmlinux 0xba8bca38	__page_symlink
+EXPORT_SYMBOL vmlinux 0xba8fe8e5	twl6040_get_sysclk
+EXPORT_SYMBOL vmlinux 0xba920ae8	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xbaa48d8b	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaac427c	get_mem_type
+EXPORT_SYMBOL vmlinux 0xbae54c74	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xbaec9bdc	skb_trim
+EXPORT_SYMBOL vmlinux 0xbafec204	snd_card_free
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb2858e8	pl330_submit_req
+EXPORT_SYMBOL vmlinux 0xbb2b4612	rwsem_is_locked
+EXPORT_SYMBOL vmlinux 0xbb2d2584	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbb4c191f	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xbb5826b9	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb701ed3	inode_set_bytes
+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 0xbbd1488d	set_device_ro
+EXPORT_SYMBOL vmlinux 0xbc0a4714	netdev_rx_csum_fault
+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 0xbc32ddfb	netdev_state_change
+EXPORT_SYMBOL vmlinux 0xbc3a970d	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xbc549d2e	clk_get_rate
+EXPORT_SYMBOL vmlinux 0xbc5f0061	dst_destroy
+EXPORT_SYMBOL vmlinux 0xbc860222	gpmc_read_status
+EXPORT_SYMBOL vmlinux 0xbc89e519	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xbc8e9264	neigh_lookup
+EXPORT_SYMBOL vmlinux 0xbcb37a77	blk_free_tags
+EXPORT_SYMBOL vmlinux 0xbcb8014d	clk_unregister
+EXPORT_SYMBOL vmlinux 0xbcbfc5e6	security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xbcd37da0	dma_map_sg
+EXPORT_SYMBOL vmlinux 0xbce874ed	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xbcec322f	__d_drop
+EXPORT_SYMBOL vmlinux 0xbd06a364	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xbd0a05e8	journal_extend
+EXPORT_SYMBOL vmlinux 0xbd2ccda9	__blk_end_request
+EXPORT_SYMBOL vmlinux 0xbd36599d	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0xbd487d68	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xbd6813e2	of_device_is_available
+EXPORT_SYMBOL vmlinux 0xbd79a64c	snd_pcm_set_sync
+EXPORT_SYMBOL vmlinux 0xbd7b3920	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xbd94dd4a	would_dump
+EXPORT_SYMBOL vmlinux 0xbda2377e	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xbda7d127	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+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 0xbe1c7163	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xbe234370	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe57311a	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xbe63ee40	request_resource
+EXPORT_SYMBOL vmlinux 0xbe6bacec	file_open_root
+EXPORT_SYMBOL vmlinux 0xbe753440	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0xbe79d467	serio_open
+EXPORT_SYMBOL vmlinux 0xbe81ada0	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xbeabf223	dev_activate
+EXPORT_SYMBOL vmlinux 0xbec6c00a	register_sound_dsp
+EXPORT_SYMBOL vmlinux 0xbed40170	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef4b104	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xbef5ffd2	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL vmlinux 0xbf1faebe	mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf520987	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8ba54a	vprintk
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfd190c5	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xbfdff814	of_get_address
+EXPORT_SYMBOL vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xc00f1b38	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xc0254a36	alloc_file
+EXPORT_SYMBOL vmlinux 0xc02cf69b	clkdev_drop
+EXPORT_SYMBOL vmlinux 0xc046f7ea	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xc0569ddd	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc05ea9bf	phy_find_first
+EXPORT_SYMBOL vmlinux 0xc068440e	__kfifo_alloc
+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 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 0xc0cf95f9	omap_vrfb_request_ctx
+EXPORT_SYMBOL vmlinux 0xc0d6de4a	lock_may_read
+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 0xc104ebf0	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc11fc375	netdev_crit
+EXPORT_SYMBOL vmlinux 0xc1237860	of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0xc1303bdf	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xc130b7c0	snd_ctl_remove
+EXPORT_SYMBOL vmlinux 0xc135ab71	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xc141e0b9	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xc15586ef	is_container_init
+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 0xc1a7ce86	posix_lock_file
+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 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc26ee2b0	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xc271a1a5	sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xc295a654	generic_file_fsync
+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 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc34ff0bb	clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xc359fb65	abort
+EXPORT_SYMBOL vmlinux 0xc3694b58	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xc37c36e1	omap_writeb
+EXPORT_SYMBOL vmlinux 0xc37d4097	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xc39efb1b	generic_read_dir
+EXPORT_SYMBOL vmlinux 0xc39fe675	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xc3a4da68	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xc3ae36b8	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xc3c504e5	scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d40e2b	___pskb_trim
+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 0xc42e08a4	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xc45ef616	idr_for_each
+EXPORT_SYMBOL vmlinux 0xc46702be	elv_add_request
+EXPORT_SYMBOL vmlinux 0xc4900d23	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0xc4981a6c	registered_fb
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc4ab1268	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xc4cac112	of_find_property
+EXPORT_SYMBOL vmlinux 0xc4d0bf01	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xc4d61629	filemap_flush
+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 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc54bc3c9	dqstats
+EXPORT_SYMBOL vmlinux 0xc550de3e	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xc57282ae	ns_capable
+EXPORT_SYMBOL vmlinux 0xc5a356b5	commit_creds
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5b4c4c9	console_start
+EXPORT_SYMBOL vmlinux 0xc5f46566	rb_augment_insert
+EXPORT_SYMBOL vmlinux 0xc60cbeb3	sget
+EXPORT_SYMBOL vmlinux 0xc6184045	cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc62fda61	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc6410a5d	fb_blank
+EXPORT_SYMBOL vmlinux 0xc68f40fc	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0xc6a78391	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xc6a9ed62	omap_dsp_get_mempool_base
+EXPORT_SYMBOL vmlinux 0xc6b95344	kill_pid
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc6dde7fd	mmc_free_host
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc74c87bb	blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xc75591b8	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xc762fcda	cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0xc77f8bd7	console_stop
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc791ec06	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xc7963092	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7b745ac	release_pages
+EXPORT_SYMBOL vmlinux 0xc7bcc226	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xc7ebe961	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc825d838	security_old_inode_init_security
+EXPORT_SYMBOL vmlinux 0xc83c9187	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc864b988	scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xc87804f9	lro_flush_all
+EXPORT_SYMBOL vmlinux 0xc87823bf	twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc8817d30	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0xc88a7252	skb_append
+EXPORT_SYMBOL vmlinux 0xc88c3669	cdrom_open
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8f62ac7	dev_load
+EXPORT_SYMBOL vmlinux 0xc9058c03	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xc9142293	omap_dss_ntsc_timings
+EXPORT_SYMBOL vmlinux 0xc914bacd	genphy_read_status
+EXPORT_SYMBOL vmlinux 0xc927b4a9	snd_card_free_when_closed
+EXPORT_SYMBOL vmlinux 0xc931e772	textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xc94baf38	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xc9658729	km_report
+EXPORT_SYMBOL vmlinux 0xc9753076	fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xc98dc113	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xc99092c2	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL vmlinux 0xc9c814a1	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xc9d9651c	sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xc9e19034	twl6040_irq_init
+EXPORT_SYMBOL vmlinux 0xc9ff0f2a	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xca1368c9	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xca1d1569	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xca2b76ed	init_buffer
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca6d04c0	elevator_change
+EXPORT_SYMBOL vmlinux 0xca8041ee	snd_component_add
+EXPORT_SYMBOL vmlinux 0xcab17e69	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcadd52af	do_munmap
+EXPORT_SYMBOL vmlinux 0xcb36853b	input_flush_device
+EXPORT_SYMBOL vmlinux 0xcb379a6a	poll_initwait
+EXPORT_SYMBOL vmlinux 0xcb3a892c	dquot_disable
+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 0xcbc74955	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xcbc835ff	register_sound_mixer
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbddcac6	kern_unmount
+EXPORT_SYMBOL vmlinux 0xcbde5b35	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0xcbfa808b	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xcc09f50a	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0xcc1e03da	unregister_cdrom
+EXPORT_SYMBOL vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc3506b3	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xcc36f32e	fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc93e922	__put_cred
+EXPORT_SYMBOL vmlinux 0xcc9a46d1	dquot_drop
+EXPORT_SYMBOL vmlinux 0xccc3dad6	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0xccdbccfb	fb_get_mode
+EXPORT_SYMBOL vmlinux 0xcce75f51	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xccff4b6f	blkdev_get_by_dev
+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 0xcd45343e	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xcd4b732f	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd5f890b	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL vmlinux 0xcd710597	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xcd9e2c84	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xcda39dc7	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xcdb6d693	put_page
+EXPORT_SYMBOL vmlinux 0xcdcaa09a	find_lock_page
+EXPORT_SYMBOL vmlinux 0xcdd0f14f	___dma_page_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xce0439e5	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce20a7af	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xce221a4d	task_ns_capable
+EXPORT_SYMBOL vmlinux 0xce2840e7	irq_set_irq_wake
+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 0xce60048c	wireless_send_event
+EXPORT_SYMBOL vmlinux 0xce7013da	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xce7ce037	of_translate_address
+EXPORT_SYMBOL vmlinux 0xce808557	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xce9c5a61	put_io_context
+EXPORT_SYMBOL vmlinux 0xcea899ea	down
+EXPORT_SYMBOL vmlinux 0xcebe8a90	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xcebec1b0	blkdev_fsync
+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 0xcf1e4749	arp_create
+EXPORT_SYMBOL vmlinux 0xcf3fba9e	snd_info_register
+EXPORT_SYMBOL vmlinux 0xcf41977c	proto_register
+EXPORT_SYMBOL vmlinux 0xcf44d596	file_update_time
+EXPORT_SYMBOL vmlinux 0xcf47416f	dev_deactivate
+EXPORT_SYMBOL vmlinux 0xcf872789	bdi_register
+EXPORT_SYMBOL vmlinux 0xcf94a68a	backlight_force_update
+EXPORT_SYMBOL vmlinux 0xcf958642	snd_ctl_replace
+EXPORT_SYMBOL vmlinux 0xcf9fb3ac	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xcfa135e7	ether_setup
+EXPORT_SYMBOL vmlinux 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfe09358	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcff2cba2	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xd0036f6b	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0xd00831cc	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd01dc2ce	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL vmlinux 0xd031325d	tcf_hash_create
+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 0xd08f960a	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b27013	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0xd0b9b8b8	snd_interval_list
+EXPORT_SYMBOL vmlinux 0xd0d42c42	mod_timer_pending
+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 0xd1e4159b	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xd204a52e	flush_signals
+EXPORT_SYMBOL vmlinux 0xd209c919	force_sig
+EXPORT_SYMBOL vmlinux 0xd2149927	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xd22194f5	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL vmlinux 0xd24cb817	nf_reinject
+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 0xd2965f6f	kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2d51180	of_gpio_count
+EXPORT_SYMBOL vmlinux 0xd2d573bb	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xd31bc7d3	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd3276386	snd_timer_interrupt
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd34838a7	skb_pad
+EXPORT_SYMBOL vmlinux 0xd3615142	sock_create_lite
+EXPORT_SYMBOL vmlinux 0xd36402e9	mmc_request_done
+EXPORT_SYMBOL vmlinux 0xd37b72c8	udp_ioctl
+EXPORT_SYMBOL vmlinux 0xd38480a0	rb_augment_erase_end
+EXPORT_SYMBOL vmlinux 0xd38e7016	vfs_readlink
+EXPORT_SYMBOL vmlinux 0xd3a8faf8	dev_addr_flush
+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 0xd3fd4798	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xd40d7ecf	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xd40ea1bb	follow_down_one
+EXPORT_SYMBOL vmlinux 0xd418e1c0	adjust_resource
+EXPORT_SYMBOL vmlinux 0xd41a78b8	d_alloc
+EXPORT_SYMBOL vmlinux 0xd42491f8	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xd43b7270	tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0xd463c980	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xd4ba260e	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xd4ddd013	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0xd4e6b504	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0xd4f5d1d8	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xd50ac2b8	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xd5152710	sg_next
+EXPORT_SYMBOL vmlinux 0xd523b426	vfs_readv
+EXPORT_SYMBOL vmlinux 0xd5254fb1	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xd544ed61	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xd549d2f5	skb_push
+EXPORT_SYMBOL vmlinux 0xd56929ac	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xd56e9485	omap_set_dma_dest_index
+EXPORT_SYMBOL vmlinux 0xd58e405f	nf_log_packet
+EXPORT_SYMBOL vmlinux 0xd59099d6	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xd595d82a	zero_fill_bio
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5b1376d	register_shrinker
+EXPORT_SYMBOL vmlinux 0xd5d1e23f	bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0xd5da7f1a	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xd5ebd11a	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xd5ee2bc0	vfs_getattr
+EXPORT_SYMBOL vmlinux 0xd60dbab1	neigh_destroy
+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 0xd6387ac5	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xd66aa3e7	make_EII_client
+EXPORT_SYMBOL vmlinux 0xd66e47e8	dcache_readdir
+EXPORT_SYMBOL vmlinux 0xd678ca44	of_parse_phandle
+EXPORT_SYMBOL vmlinux 0xd681dd36	elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xd6b15451	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xd6b5e60a	snd_pcm_lib_readv
+EXPORT_SYMBOL vmlinux 0xd6d33ae7	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xd6e871cb	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xd6eba74b	__nla_put
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd6ff8819	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xd70707f0	get_fs_type
+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 0xd75efdea	jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xd770e924	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b0a18	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xd790ef87	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a6e3ee	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xd7ad5c45	snd_timer_global_new
+EXPORT_SYMBOL vmlinux 0xd7bc3173	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xd7d18c7a	__devm_release_region
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f77c50	md_error
+EXPORT_SYMBOL vmlinux 0xd81a9e45	nobh_write_begin
+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 0xd823757e	kill_block_super
+EXPORT_SYMBOL vmlinux 0xd846d468	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xd84ce17d	inet_accept
+EXPORT_SYMBOL vmlinux 0xd8551649	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xd8752af0	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0xd88d48e6	cont_write_begin
+EXPORT_SYMBOL vmlinux 0xd8983177	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0xd8a2ab95	in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8a5dc56	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xd8c397e3	mb_cache_create
+EXPORT_SYMBOL vmlinux 0xd8ce7e67	clocksource_register
+EXPORT_SYMBOL vmlinux 0xd8dd4eb9	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xd8e484f0	register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8f040f1	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xd8f9c3ae	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xd9210141	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xd9247482	omap_dss_register_driver
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd9438e99	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xd94c4acc	vfs_readdir
+EXPORT_SYMBOL vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL vmlinux 0xd9722941	lock_rename
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9aa27a2	mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9b939a7	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xd9c3b770	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL vmlinux 0xd9f85613	dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xda0b55e5	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0xda13d63d	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xda14d743	journal_create
+EXPORT_SYMBOL vmlinux 0xda1e6287	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xda2f61d0	mmc_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xda37ff89	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xda3cf2c4	proc_dointvec
+EXPORT_SYMBOL vmlinux 0xda3f46fe	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xda43156d	tty_port_init
+EXPORT_SYMBOL vmlinux 0xda47d552	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xda47ec7f	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xda4cde28	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xda545e28	arp_invalidate
+EXPORT_SYMBOL vmlinux 0xda5714c2	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xda7ca6cb	fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad	fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa5a3dd	icmpv6_send
+EXPORT_SYMBOL vmlinux 0xdb1c3355	sock_no_connect
+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 0xdb505537	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+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 0xdbab3a94	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xdbc8c5f5	sk_stream_error
+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 0xdbdc3b90	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xdbf96e6a	bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0xdc047fc4	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc2519e0	param_set_ulong
+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 0xdc6125fa	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xdc769f6f	tcp_close
+EXPORT_SYMBOL vmlinux 0xdc798d37	__mutex_init
+EXPORT_SYMBOL vmlinux 0xdc8544ce	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xdc9011d9	dma_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xdca3c07e	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xdca4357d	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xdca7a472	unregister_key_type
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL vmlinux 0xdd0f4926	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xdd1981e1	__mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL vmlinux 0xdd3af0ef	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xdd4f946e	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xdd81df8b	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xdd91335f	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0xddc0b129	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xddc5903a	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL vmlinux 0xdddc6abb	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xdddf3c5b	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xdded7153	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xddef38db	tc_classify
+EXPORT_SYMBOL vmlinux 0xde0ef54c	nonseekable_open
+EXPORT_SYMBOL vmlinux 0xde15c042	omap_set_dma_src_index
+EXPORT_SYMBOL vmlinux 0xde2d409e	d_alloc_root
+EXPORT_SYMBOL vmlinux 0xde3555dc	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0xde3c68a6	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde692d94	omap_get_dma_chain_src_pos
+EXPORT_SYMBOL vmlinux 0xde8c763d	cpu_v7_set_pte_ext
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xdeacca19	journal_load
+EXPORT_SYMBOL vmlinux 0xdf03d979	ppp_output_wakeup
+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 0xdf6dcc7f	pid_task
+EXPORT_SYMBOL vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfa010ae	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xdfa6466a	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xdfb01a80	cpu_v7_dcache_clean_area
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL vmlinux 0xdff15d4f	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xe0211e89	__breadahead
+EXPORT_SYMBOL vmlinux 0xe0363348	snd_card_set_id
+EXPORT_SYMBOL vmlinux 0xe03e1cdd	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0xe03f90f8	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xe0489d2b	blk_insert_request
+EXPORT_SYMBOL vmlinux 0xe04f7caa	dm_read_arg_group
+EXPORT_SYMBOL vmlinux 0xe051ed75	tty_vhangup
+EXPORT_SYMBOL vmlinux 0xe06141e9	security_sk_clone
+EXPORT_SYMBOL vmlinux 0xe06f6e5a	fd_install
+EXPORT_SYMBOL vmlinux 0xe0732706	snd_timer_pause
+EXPORT_SYMBOL vmlinux 0xe075d6eb	iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0a4958c	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL vmlinux 0xe0de8105	bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe1039976	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xe106154f	omap_vram_get_info
+EXPORT_SYMBOL vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL vmlinux 0xe12764e5	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xe161d33e	skb_copy
+EXPORT_SYMBOL vmlinux 0xe16b893b	mutex_lock
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1da950b	do_splice_from
+EXPORT_SYMBOL vmlinux 0xe1df60c6	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xe1e59d63	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe21b07ec	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xe2253201	register_framebuffer
+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 0xe2dd68e1	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL vmlinux 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe31b23df	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xe334f71b	simple_lookup
+EXPORT_SYMBOL vmlinux 0xe33bfb5d	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xe36e6263	phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0xe373830a	of_mdiobus_register
+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 0xe3df343e	open_exec
+EXPORT_SYMBOL vmlinux 0xe4033142	dquot_acquire
+EXPORT_SYMBOL vmlinux 0xe4246cfe	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xe477ec1f	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xe4903890	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xe49161c0	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xe49775f9	flush_delayed_work
+EXPORT_SYMBOL vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL vmlinux 0xe501acec	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0xe5122890	flow_cache_genid
+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 0xe545c01f	set_bh_page
+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 0xe586392a	km_policy_expired
+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 0xe5e1c300	input_set_abs_params
+EXPORT_SYMBOL vmlinux 0xe5ea46f8	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe6204b58	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0xe661ef49	init_task
+EXPORT_SYMBOL vmlinux 0xe6744a89	omap_clear_dma
+EXPORT_SYMBOL vmlinux 0xe67ba5a8	locks_init_lock
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe69e6511	of_platform_device_create
+EXPORT_SYMBOL vmlinux 0xe6aaf59d	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xe6c3ebb0	__raw_writesw
+EXPORT_SYMBOL vmlinux 0xe6ebc016	key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL vmlinux 0xe70fe706	__bread
+EXPORT_SYMBOL vmlinux 0xe73d0fde	sleep_on
+EXPORT_SYMBOL vmlinux 0xe75a1165	netdev_info
+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 0xe7d9857a	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe85fdfde	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xe8690ff1	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xe86d62d1	sk_alloc
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe87ed1ce	idr_replace
+EXPORT_SYMBOL vmlinux 0xe88953a1	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8bc04f3	amba_driver_unregister
+EXPORT_SYMBOL vmlinux 0xe8e1abbb	security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe8fa231c	blk_make_request
+EXPORT_SYMBOL vmlinux 0xe9101952	fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe91ab4e4	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0xe93c3ef7	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xe94c80cd	scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe98af587	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xe9a3af0d	journal_wipe
+EXPORT_SYMBOL vmlinux 0xe9ac88cd	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0xe9ae20b9	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0xe9ce8b95	omap_ioremap
+EXPORT_SYMBOL vmlinux 0xe9d12dbe	vmtruncate
+EXPORT_SYMBOL vmlinux 0xe9e4e163	simple_transaction_get
+EXPORT_SYMBOL vmlinux 0xe9ea040a	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xe9f465ac	register_filesystem
+EXPORT_SYMBOL vmlinux 0xe9f92793	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xea054b22	nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a	int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a	__bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea38133a	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xea5eb20b	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xea6ad980	__scm_send
+EXPORT_SYMBOL vmlinux 0xea770497	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL vmlinux 0xea871d78	page_symlink_inode_operations
+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 0xeaa53ee0	kernel_connect
+EXPORT_SYMBOL vmlinux 0xeaaba702	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xeab2f129	journal_restart
+EXPORT_SYMBOL vmlinux 0xeac8939f	init_special_inode
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeada635b	generic_readlink
+EXPORT_SYMBOL vmlinux 0xeadcf9bb	of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeae55ccd	save_mount_options
+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 0xeb248200	mntget
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeba5fb02	inet6_register_protosw
+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 0xec15f00a	tcp_cookie_generator
+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 0xec73f7a5	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0xeca1f0cc	inet_shutdown
+EXPORT_SYMBOL vmlinux 0xece87e8d	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xecff7c45	snd_card_proc_new
+EXPORT_SYMBOL vmlinux 0xed21ab6d	dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed3204f5	tty_port_put
+EXPORT_SYMBOL vmlinux 0xed4a0c89	vc_cons
+EXPORT_SYMBOL vmlinux 0xed854dac	omap_stop_dma_chain_transfers
+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 0xedf2304d	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xee09369b	do_splice_to
+EXPORT_SYMBOL vmlinux 0xee108f30	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3496c3	dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xee79b5f6	input_unregister_device
+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 0xeeafdd87	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0xef00cfa1	dst_release
+EXPORT_SYMBOL vmlinux 0xef19f533	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0xef4c3ae1	secpath_dup
+EXPORT_SYMBOL vmlinux 0xef65d1f4	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xefac6e01	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0xefb4f47d	d_splice_alias
+EXPORT_SYMBOL vmlinux 0xefb66a95	omap_request_dma_chain
+EXPORT_SYMBOL vmlinux 0xefbf1405	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0xefc21008	cdev_alloc
+EXPORT_SYMBOL vmlinux 0xefd2c1cf	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xefd6cf06	__aeabi_unwind_cpp_pr0
+EXPORT_SYMBOL vmlinux 0xefdd2345	sg_init_one
+EXPORT_SYMBOL vmlinux 0xefdd70ce	security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefdfe24a	free_netdev
+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 0xf005158a	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xf01f311d	scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xf027379e	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xf0280e90	tty_name
+EXPORT_SYMBOL vmlinux 0xf0414677	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xf0543346	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xf06abe25	dquot_resume
+EXPORT_SYMBOL vmlinux 0xf06e74bd	phy_detach
+EXPORT_SYMBOL vmlinux 0xf07b4857	nla_append
+EXPORT_SYMBOL vmlinux 0xf09096e4	kmem_cache_free
+EXPORT_SYMBOL vmlinux 0xf09b45fb	seq_puts
+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 0xf1216c75	prandom32
+EXPORT_SYMBOL vmlinux 0xf14e19cb	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xf15c0c4c	i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1a3c919	omap_mcbsp_set_tx_threshold
+EXPORT_SYMBOL vmlinux 0xf1cf3036	blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0xf1d05c17	input_set_keycode
+EXPORT_SYMBOL vmlinux 0xf1d68e3b	blk_put_queue
+EXPORT_SYMBOL vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2	div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e4936d	fput
+EXPORT_SYMBOL vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL vmlinux 0xf202c5cb	radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xf20774ee	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xf20dabd8	free_irq
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf247ccc7	account_page_writeback
+EXPORT_SYMBOL vmlinux 0xf26df746	omap_vram_free
+EXPORT_SYMBOL vmlinux 0xf272c23e	__bio_clone
+EXPORT_SYMBOL vmlinux 0xf273fc3d	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0xf27a2286	sock_create
+EXPORT_SYMBOL vmlinux 0xf28e1e3e	omap_st_disable
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2a7e9f3	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xf2ad903f	mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xf2c67c46	mount_subtree
+EXPORT_SYMBOL vmlinux 0xf2d396b8	cpu_user
+EXPORT_SYMBOL vmlinux 0xf2e5a880	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf2faa995	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0xf2fbbe64	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf321b766	mmc_hw_reset_check
+EXPORT_SYMBOL vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3	netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3797152	snd_interval_ratnum
+EXPORT_SYMBOL vmlinux 0xf37f8f64	scsi_verify_blk_ioctl
+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 0xf39d7d70	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xf3bf0bce	__bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c9813f	single_open
+EXPORT_SYMBOL vmlinux 0xf4462263	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xf456c28c	tcp_check_req
+EXPORT_SYMBOL vmlinux 0xf46c0c9b	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xf47fe288	dquot_operations
+EXPORT_SYMBOL vmlinux 0xf4860c00	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xf48ee69f	bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xf4937854	input_mt_report_slot_state
+EXPORT_SYMBOL vmlinux 0xf494f618	mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4cf568d	generic_show_options
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf5091536	bio_alloc
+EXPORT_SYMBOL vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5417c5c	generic_file_direct_write
+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 0xf57b9d60	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xf57c89af	get_phy_id
+EXPORT_SYMBOL vmlinux 0xf586bf59	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xf5c05914	generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e	timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cf326a	param_ops_short
+EXPORT_SYMBOL vmlinux 0xf5dd8063	nf_register_hook
+EXPORT_SYMBOL vmlinux 0xf5e53748	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0xf5eb86ea	blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5ffec03	dentry_open
+EXPORT_SYMBOL vmlinux 0xf600ac26	snd_timer_global_free
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf6288e02	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf6315b36	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+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 0xf6c520cc	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xf6c66a22	xfrm4_prepare_output
+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 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f3cef6	omap_vrfb_setup
+EXPORT_SYMBOL vmlinux 0xf6f63029	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0xf7025efb	dentry_unhash
+EXPORT_SYMBOL vmlinux 0xf7065487	pm860x_page_reg_write
+EXPORT_SYMBOL vmlinux 0xf70faa59	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xf7488deb	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7975561	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xf7abe087	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xf7c61815	get_omap3_evm_rev
+EXPORT_SYMBOL vmlinux 0xf7d4ea9e	__nla_reserve
+EXPORT_SYMBOL vmlinux 0xf7deec1a	journal_revoke
+EXPORT_SYMBOL vmlinux 0xf7df5662	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xf7e7778d	request_key
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81febd0	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xf853bbca	omap_vrfb_map_angle
+EXPORT_SYMBOL vmlinux 0xf869899f	alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xf877f99a	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xf88c3301	sg_init_table
+EXPORT_SYMBOL vmlinux 0xf890fe7f	pm_idle
+EXPORT_SYMBOL vmlinux 0xf8cc4f0f	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xf8ce0b68	override_creds
+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 0xf9343cd7	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xf9347c0d	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xf9348cbc	xz_dec_run
+EXPORT_SYMBOL vmlinux 0xf94d0323	vfs_read
+EXPORT_SYMBOL vmlinux 0xf9551120	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xf98558e1	of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0xf995ae28	have_submounts
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9b58d17	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xf9c51843	journal_init_dev
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xf9eefe39	elevator_init
+EXPORT_SYMBOL vmlinux 0xfa082128	down_interruptible
+EXPORT_SYMBOL vmlinux 0xfa115f38	sock_no_poll
+EXPORT_SYMBOL vmlinux 0xfa16b65c	writeback_in_progress
+EXPORT_SYMBOL vmlinux 0xfa43a7b9	end_writeback
+EXPORT_SYMBOL vmlinux 0xfa6357f3	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xfa69e0ce	scsi_init_io
+EXPORT_SYMBOL vmlinux 0xfa6a7e47	omap_dss_start_device
+EXPORT_SYMBOL vmlinux 0xfa9ac89f	elv_rb_del
+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 0xfadd9b16	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb22bc00	__invalidate_device
+EXPORT_SYMBOL vmlinux 0xfb3e6c4d	simple_map_init
+EXPORT_SYMBOL vmlinux 0xfb55df70	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xfb5bdb9d	key_link
+EXPORT_SYMBOL vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb77c875	tc6393xb_lcd_mode
+EXPORT_SYMBOL vmlinux 0xfb7d26f4	files_lglock_lock_init
+EXPORT_SYMBOL vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL vmlinux 0xfb8c48a2	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xfba2c68d	generic_pipe_buf_map
+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 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 0xfc9cbe1d	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xfcaa04a0	out_of_line_wait_on_bit_lock
+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 0xfd12e2ab	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xfd16a6ab	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL vmlinux 0xfd320ce9	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xfd4c09b8	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xfd4c182b	twl6040_reg_read
+EXPORT_SYMBOL vmlinux 0xfd54cd5d	journal_errno
+EXPORT_SYMBOL vmlinux 0xfd6293c2	boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xfd6b3d0c	posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xfd7d52e5	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xfda0dbe8	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda33dd9	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xfdab6de3	unregister_sound_midi
+EXPORT_SYMBOL vmlinux 0xfdb73504	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b	fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe0b90ab	__sock_create
+EXPORT_SYMBOL vmlinux 0xfe15048f	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xfe1e9444	mmc_add_host
+EXPORT_SYMBOL vmlinux 0xfe1f7648	mmc_flush_cache
+EXPORT_SYMBOL vmlinux 0xfe2b665e	mii_link_ok
+EXPORT_SYMBOL vmlinux 0xfe300309	snd_timer_resolution
+EXPORT_SYMBOL vmlinux 0xfe526154	kthread_stop
+EXPORT_SYMBOL vmlinux 0xfe5b30df	security_path_chmod
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe634f58	add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe9f1e15	phy_driver_register
+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 0xfedd35fc	console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfedddb5a	send_sig
+EXPORT_SYMBOL vmlinux 0xfef8dfd8	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xfef96e23	__scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff0c4aa9	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0xff0d65a7	lease_get_mtime
+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 0xff2c4adb	generic_listxattr
+EXPORT_SYMBOL vmlinux 0xff4bafb0	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xff6084e2	clk_register
+EXPORT_SYMBOL vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff77327a	mount_pseudo
+EXPORT_SYMBOL vmlinux 0xff7f281c	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa70aa9	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xffb8d3bc	phy_register_fixup
+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 0xfffcb187	journal_destroy
+EXPORT_SYMBOL_GPL crypto/af_alg 0x0bade9fb	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x417feddc	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x6ac7d06d	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0x742f954f	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x82bf32b1	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xca08a73c	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe1896e70	af_alg_register_type
+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 0x0efaa9b3	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x34564122	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6b1d03a2	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6f386f07	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x8b8dc872	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xa2481042	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb3eda76b	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb93cddf2	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xc484483a	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf4736e4d	cryptd_ahash_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 0x2819e1ec	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4790a8fa	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x850fa0d2	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa7335acc	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb5a1a71c	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc0148ebc	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcb2de43f	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda812cd1	btmrvl_enable_ps
+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 0x041ccf20	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x04a09596	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2fcba436	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x384b4a5b	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3c441858	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4bad9225	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61485b6c	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6f8d3fd7	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7b571735	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb84e64d4	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd4904c6b	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd906882d	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd961ed6f	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb7d3eba	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde1a6070	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe4bec260	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf6aaa67a	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 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 0x2b13183a	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38e22dd0	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 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 0x808dc87b	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 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 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 0x6914d610	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x1a0e6eb5	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 0x5e7cb021	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfdc926f6	st_unregister
+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 0x2f337824	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5fc90558	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x956e85f1	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xffb165a2	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x005d8efd	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x244c5007	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x37874740	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x41044afa	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x42e60397	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5023954c	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x52d82548	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d65307e	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8180a634	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8912608d	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa026fd71	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xde535e5f	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x72b970b8	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x99e87376	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa3b47b0d	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa4d706a2	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3792e6b6	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x69d8471d	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7cc0c50e	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xabdbe023	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd3e608bb	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0xf62abf8e	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x105a3718	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x65512f36	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9fcc451f	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbbfafa08	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5de5d60c	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7d52aaab	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc5a7437f	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe7c5963f	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xecd1e6c4	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xef4347c1	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01ac23a4	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0e795e37	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x194fad0e	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19c463c2	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x207b3777	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x211a0e25	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x219a73d8	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29f9d401	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x30aa83ea	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36ea1404	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38c90915	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x46c48211	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x494f466d	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52356102	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7237ae19	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77d292b2	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95ee765f	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa64f0f7b	usbnet_tx_timeout
+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 0xc5249af8	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5562033	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5574336	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xec6ba672	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1bebbbb3	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x258ea0d7	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x270de6f5	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ea5d835	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x56cab877	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x66ca710c	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73e125ae	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x93907831	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaa3868d1	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc88f6acd	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xda394a75	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xec6d85ea	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed51d654	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xee0c6cf4	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf1b93044	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x026cbc9b	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4bb91e13	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4fe9b372	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x601a8c13	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x788ff75c	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb2d30d1e	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 0xcfcb90f8	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe77c8d7d	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa74c607c	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xbdae6d25	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0277e9d2	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0995f6e3	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4ffb39c4	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6391f8fd	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6c7a78c2	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9bcd9594	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaca75830	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaf3b2a0d	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb275be40	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbf7042c7	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xff380d21	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1e9613e8	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3a6f8387	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4dfc0f76	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x55719cd1	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x71c2cd67	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76cb8b11	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x937f1a5f	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa71143f7	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf0e0f0f3	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0489a422	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0d2e83cc	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0fbb060b	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x14ef4407	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c6b18f7	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x21e44627	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40c2a17d	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4bcedf4a	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb867f8	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50f35181	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x516f1e8a	rt2800_rt2x00debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x659f5ede	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x68ae2cdd	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d6f9a6b	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80cc9b04	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x868d2ae9	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8840ebe9	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90d0dd24	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x947798fe	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96749d84	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x989cb3b6	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa172ebcd	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa39b67c3	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa53eb1f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaba4200e	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc097bcc	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcdc87d20	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd438ce81	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdaca4fc1	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdfd4ed40	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1bc17b3	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe34f637e	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe883a906	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb8dc739	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfab501a6	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb792d45	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfba91b96	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe06c3df	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08683358	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0bb81ec1	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ec25c04	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x106056fe	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x247f1190	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x263fe524	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2df9f23f	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f57b4e2	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35657f68	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36319be5	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c3bbc0d	rt2x00debug_dump_frame
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x41225ad3	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46c8d170	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x492568c0	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4948ccc4	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4950ef8d	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53ffe1ba	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x612a7236	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d85e605	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x722cc476	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74ed01a0	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83bef6aa	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e7e0b78	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9389759e	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x962e36b1	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d0daec3	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa21e758f	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa31cd439	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5c70faf	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa71585ff	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb15e4524	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb18fadb9	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb5c5c360	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba9c7cda	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbea36b40	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc836e4ad	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe57b5694	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea7d3429	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebc7fef1	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee80b8ac	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xef0fe2d9	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefe0dba9	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf199deaa	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf43d3a64	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf68ccd1a	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf7b557d3	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9296091	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x03bd14a2	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cfd5966	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x374eaa73	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b91b28	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7ac25388	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a92befa	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x958ca51f	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x99ad07ce	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a078708	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba364b23	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbb40c5cd	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca946c9c	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd53d41d0	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6556700	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfde941d0	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffea84fe	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd219ace9	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf18d597c	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf371ee94	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0b04dacd	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x46751804	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa1390618	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa59fd356	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xdc4f7f12	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe1d381be	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf77de9df	wl1271_alloc_hw
+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 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x39eea59b	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6044632b	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7cd0f63f	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8ee5f985	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc1d45150	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd7d36950	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe2c29615	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf6963f93	__fcoe_get_lesb
+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 0x0041034d	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05f936fc	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11e7318b	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x163faef5	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x203a576e	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2415056b	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x281bd5fb	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e4345ed	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x347aec4d	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4af2b511	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cb39e67	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50227aff	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5162e454	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54ff1d15	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bd23ea9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6fe95354	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x709e77eb	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72718423	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x831f4cb7	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x844c2fb4	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8566d02a	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e88217b	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90452e2a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90f22270	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95f050f2	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ebb46c7	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa805568e	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8d93738	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb541c671	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc0da270a	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc52e0f7c	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca6c5f7e	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae1787a	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb5447a1	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd447bba6	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd99bd223	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0c54db0	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ab29d1	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9c52133	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec225495	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf89f98da	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc3d4663	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd572a75	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0449b871	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0883442d	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12c8d848	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2dd3520d	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x494d3715	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x584abc50	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6308981e	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69861a6c	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x786890d8	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x796f0669	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8661a3ad	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ac8bb2c	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5aac5db	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb50320a9	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd81700d1	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe12bfabf	iscsi_tcp_task_xmit
+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 0x05acea30	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06de4666	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0cb7e429	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17ba8d38	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1bc5130f	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x290c1b7c	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x309ce725	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37cfc32a	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3937fa67	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x405c61be	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4894ed18	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4979b7a5	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49ca5a8d	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a9a9da6	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e93a6eb	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x602b9cc8	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69809c6c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72c4d2fe	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab88baee	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb084166b	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb1a1aeff	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb66665f8	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1689c7b	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd70bf8f0	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd978c0e1	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6ace286	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf56a10f4	iscsi_register_transport
+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 0x040e60be	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0a9d8cdf	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0f7a9f67	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x2227257d	usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x43b1be69	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4c3f5263	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5d9f161e	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 0x9282f52e	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa87a7566	usbip_recv_xbuff
+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 0xd2dc446c	sockfd_to_socket
+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 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 0x66c00c0b	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc0210ddc	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 0x27e93cca	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x31e92d0c	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32193d8d	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32e32c65	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4e6d1aea	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x50f4f469	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x67615af9	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x750c1f3a	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x87e57c7b	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x919ada80	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 0xc01f3ba6	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc72443a2	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xccb9cd27	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02e137f	usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd39e5f85	usb_serial_handle_break
+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 0xe4a90a0c	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f9c220	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf38b4de7	usb_serial_generic_write
+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 0x6f959b35	locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x786135e9	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x94752884	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4	locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9b5ec3e9	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b	lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xacd40386	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcb48be1a	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1917e529	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36c927c1	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3dca8877	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6205ec59	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x776079ec	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b647d9d	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c75fbfa	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e996633	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90d5d68e	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b6e65a7	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9cbfa508	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa89ae66d	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde9d9004	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe308f778	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfdfb7927	nfs_pageio_reset_write_mds
+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 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 0x1d899277	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2776a0df	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553	o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x426600c2	o2hb_setup_callback
+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 0x7904a6e7	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 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 0xbb7dfd15	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xce41ec1a	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd04f421f	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/dlm/ocfs2_dlm 0x4aec7beb	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x52b72549	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x65dd4cef	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6d6dc94e	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x763b23fc	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x790b3328	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 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 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 0x2dde46f1	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x57a5294b	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x932b988a	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x9eac19ca	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc257a34b	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xd873e67f	garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x3e160519	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0x9fada765	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x1988c00a	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x70dac0af	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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xfb6c0386	ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x15072b50	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x03e1098a	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x045e5240	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x215e93df	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x218f7128	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x251cda2b	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x27dd174b	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35a90e2d	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x392af852	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e80ac07	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4	dccp_orphan_count
+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 0x55292db0	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e9bcb49	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x60793b8f	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x690070f2	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d58c4d8	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x71f5297a	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x822f1f97	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91f0ac9e	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x99fee317	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9dfc9dc2	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4ec2fbc	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa68f5172	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xafe72152	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb989fe9	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd4bc1d6	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbeb3840f	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf98dd2e	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe16f74b2	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe200afe6	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe39800a9	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3eb3cb9	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe65de2c9	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7994f0f	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf138f666	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xff09249f	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0f7e28f7	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x48bc18c1	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5b5c32c6	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e77d083	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x61f2a27f	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x71517048	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x34b49f7a	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9123f3a4	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x0c802a35	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x3b2e9366	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8e455f83	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9453e144	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4dccc375	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xc88a50f3	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 0x7c9c6819	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 0x6508ad3b	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x836c90ba	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134	nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x95c6e2eb	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb2db9bee	nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe99a88be	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xff7b44bb	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8	nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1dcc251d	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3948b89e	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3cdb2a30	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x85cdd828	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xffdf91e6	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x2bfe399e	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 0x0e60cd38	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1b889094	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34415d36	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ec5b097	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x62fc8a86	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x993c68ca	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9f7f9901	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd3d43ac2	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd5a83c0e	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd6c69089	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe2ef8d68	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xffbb0956	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x04d07e3a	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6dac178a	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe4a23ebb	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe6357d6b	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 0xfb54e8f4	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064	ieee80211_request_smps
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0777a44f	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x30df67e7	ip_set_get_ip6_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 0x4e71eb30	ip_set_get_ip4_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 0x81466b6c	ip_set_del
+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 0xa2a3c2c4	ip_set_type_register
+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 0xab65d851	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 0xcb4bc659	ip_set_add
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef123e72	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef2113bf	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x123c2445	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2f7b1cf4	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x33166b71	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9316225f	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00365d2a	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07402e2a	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08742208	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a54e4c1	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a692bef	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c72374a	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dbfb45b	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13dfcedf	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x208d14d8	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a7307fd	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30b43240	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x366501f7	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e	nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fab76cb	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48356fa6	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x502e9ea4	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53c72ed7	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b5e5796	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c855a36	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6218fc26	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67c1bf42	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67db92ce	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a8cf90f	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70feb2a7	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710	nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cd36927	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e88cc8c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f1dfda2	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80fd5367	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x827192d3	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84528a22	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x871b4193	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8cbc10ff	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d995a80	__nf_ct_l4proto_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 0x949aade5	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96e0e907	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9864a4f3	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0c2c037	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+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 0xae3c6876	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaea38b03	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb442a9e6	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb652a335	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8dc007	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe8a727d	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13728c2	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc69e57fa	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcaf27611	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdbc43f4	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd058ce57	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3345f45	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd385fbe1	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd97ba07e	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde635519	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf421c056	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5103e09	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5dad63a	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6859ecb	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf79eedfb	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb75fa59	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdedb608	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x03126ba2	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x93a1ebce	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xfd681753	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e85cfe4	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4cd5c567	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4e5727b9	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x50343dd2	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5092718b	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5589c27c	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x63f2eb8e	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x65bf8812	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x74f9ff32	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda08647c	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xbaaa7530	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1fbcd358	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x35971435	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x954d9376	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb44cc947	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4a594a3e	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xfdbf5ea6	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0eeec7e8	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0f5d91e5	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1379ff8e	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2e327fa6	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2f6d30d0	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3831d721	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x52726b16	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5bcd43aa	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78b46bfc	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8863111c	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe0d8dbf2	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe19fdfcb	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xee514a32	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xd490c0cc	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x3acf8789	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x6e54904c	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x11995713	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x37e86f30	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d848c47	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x841c873a	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb1362dd3	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd21a11ce	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x772c7cb6	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x009181da	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x030a6e81	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18a27674	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b3e1f08	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e863b29	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x232f1f81	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x391275be	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3d81e28d	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56cbe4f5	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bf5ade4	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6772ccf1	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d17ec37	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc5545c0d	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc981f297	xt_find_table_lock
+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 0x015282ed	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x01531645	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x06d32ddd	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x082b8253	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x09e00085	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x0cfea412	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x125d07c0	rds_atomic_send_complete
+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 0x1dbd80ee	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x1f2c8669	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x28548bab	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x291a2cf0	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x29d289c8	rds_conn_create
+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 0x37c4e66c	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x40f34dfd	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x795b30f0	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x7b35f84e	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x85b2d2d1	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xb126a5fc	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xbbb7003d	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd81bf89c	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xe1f1b8bf	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xe5dbb490	rds_inc_init
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x00bfe578	rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2e0726dd	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 0x09176d72	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x29061a2d	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x34012dca	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36ad7f37	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 0x4428fdbf	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x806880a8	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x80a3c4a2	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x89daecd0	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5d36e22	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe4e84987	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xef83b479	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf448c415	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007efb4e	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e3c710	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02ae4f3b	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0371b1f9	rpc_max_payload
+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 0x07d861f9	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08333e36	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08d54ab8	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0974e8b4	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b3c1ee1	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bb4a9ea	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bfaaf19	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c2ca4db	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d681618	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0da37a08	svc_create
+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 0x1070f729	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14acf2d5	xprt_wake_pending_tasks
+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 0x1830754b	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19136d5e	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b3e28ed	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf35aac	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0a9208	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d5c77b2	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27fc1fc5	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28c2be34	rpc_create
+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 0x29a76215	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d7d2ef2	svc_unreg_xprt_class
+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 0x2fe7c743	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3088c812	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x346a1b28	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e043f8	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x397ddece	svc_create_pooled
+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 0x3be47711	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d301ec1	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dbfe1df	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e0994cf	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f601c9c	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fca90e4	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x428b1239	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46434535	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x485792fc	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a21096c	rpc_call_null
+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 0x50ed553b	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54234d8b	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56ce5bf1	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5add4cf2	svc_addsock
+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 0x5c09a1f2	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d34b326	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de15841	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62893043	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a845fc	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64fa895b	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x659831c3	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6711175c	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673dc282	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67c34f78	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67c5ac37	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68755846	svc_max_payload
+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 0x6ddd4d90	_copy_from_pages
+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 0x72323ba2	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7300f0d7	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7429a1a9	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7acb88b9	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b320197	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bf7b00d	xprt_release_xprt
+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 0x7e8ca0f0	rpcauth_register
+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 0x822ffa01	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85856a84	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88ad32e3	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x890309fa	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89336fe7	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8974a3e4	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8adef774	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9169eabf	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9297eed9	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92f6ee0e	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939efa56	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981777e6	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99fb3b4e	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd34678	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bfbe81b	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c384488	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cccde12	xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0548651	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa07b73e9	svc_recv
+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 0xa3eb5d4e	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa46ef311	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa58dc324	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5af56a4	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9c21cf4	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf126faa	svc_xprt_names
+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 0xb56869f4	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb58b44fc	cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5c99666	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba48c122	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfba496f	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc31b5d08	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3904e35	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4086b7d	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc649bc93	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc66b4394	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc79c6dff	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc88408ab	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+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 0xcfb45792	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd011a74a	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a504c9	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1188a30	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15938b8	svc_xprt_enqueue
+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 0xd6528530	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd66de571	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcb150cf	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde7997ad	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeffd6e9	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfa5a88f	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfd944ce	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0528dfd	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e52ffa	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5d4412a	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8d297ff	rpc_killall_tasks
+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 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee9483e4	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef471b05	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf205dc8a	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6c3e34e	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ede8f0	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf83c8706	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb8f5577	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdc8020a	svc_drop
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f36a48b	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f3752e2	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x425056a8	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x488592b9	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4d0142ef	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4ef3deaf	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x83c26905	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8f2f4b0b	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x91b2e4ca	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa3b070b6	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xad63074b	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb0c877fe	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf3ef0808	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x36e36878	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x398157f4	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44b8676b	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x779c7c18	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91ccc658	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94ccd52a	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9b9816a4	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb82ae854	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd561a7b	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd7c0eb9e	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xddfd363c	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x32e85799	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa9bfcaae	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe88c0394	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfdcf7cc7	ipcomp_output
+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 0x008992d0	ip6_dst_lookup
+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 0x00ca1cec	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d	ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d	klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x01181467	pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x0118a772	ata_cable_unknown
+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 0x013a129b	omap_dump_tlb_entries
+EXPORT_SYMBOL_GPL vmlinux 0x0148adb6	register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x014f36e2	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0x0151ecb7	xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x0153747f	debugfs_create_bool
+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 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 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 0x0297adc5	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL vmlinux 0x02bb3a84	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL vmlinux 0x02c8a5e3	hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x035dcad6	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x03671450	fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0372dd8c	security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x038f2f2c	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x03943c24	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x03d2c5a6	snd_soc_register_card
+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 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0x04f12300	find_pid_ns
+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 0x0619ca8a	getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x063450d5	driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x064d0f6c	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x0672cdd2	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x0678fffa	crypto_alloc_tfm
+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 0x06c94662	mnt_want_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 0x0735e788	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL vmlinux 0x078c2eaf	crypto_alloc_instance2
+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 0x07fa4d4c	__put_task_struct
+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 0x08841e2b	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x08874a0c	cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x089d23c0	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x08ad6e6f	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x08b0a176	__hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x08bc06d3	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x08c3f4cf	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0x08cce4b7	ipv6_opt_accepted
+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 0x09ab0371	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0x0a193def	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0a387f80	__get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x0a3d4bfc	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x0a6fa376	platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x0a799a34	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x0a866d07	blkio_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b28defb	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0be13004	usb_storage_usb_ids
+EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x0c1bf836	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL vmlinux 0x0c1f8ba0	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c378adb	sata_set_spd
+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 0x0d0c109d	of_irq_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x0d168486	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x0d1ddd87	crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x0d30ea61	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c	of_irq_map_one
+EXPORT_SYMBOL_GPL vmlinux 0x0d5205ab	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0x0d78a205	wakeup_source_remove
+EXPORT_SYMBOL_GPL vmlinux 0x0d79cc85	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x0d7f3af5	bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e38e132	bus_set_iommu
+EXPORT_SYMBOL_GPL vmlinux 0x0e3c447f	shash_register_instance
+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 0x0f3b1500	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x0f587e70	transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0f8905c4	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x0fb64bd2	sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x0fdbdbab	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10372b0d	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL vmlinux 0x1048552a	inet_csk_addr2sockaddr
+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 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 0x115e16f4	__put_net
+EXPORT_SYMBOL_GPL vmlinux 0x11692179	usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x1172ce54	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL vmlinux 0x118171d9	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0x11b71f28	__scsi_get_command
+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 0x1239810e	regulator_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 0x12a30954	scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x12ee0bb7	adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1308cc97	ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x1319f6ff	ablkcipher_walk_phys
+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 0x13977423	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL vmlinux 0x139d482f	flush_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x13a1b1ff	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946	register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13e5278a	kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x1421ad0d	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x144db879	sdhci_resume_host
+EXPORT_SYMBOL_GPL vmlinux 0x146f3688	sata_scr_write_flush
+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 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 0x16dbf495	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x16e13cc2	blkio_policy_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x16e28690	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x17152c62	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x171a306a	sata_link_scr_lpm
+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 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 0x19c08754	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x19c8a259	register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x19d4feb4	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x19e865f7	__rtnl_af_register
+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 0x1a8e7689	scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x1a8ffad7	posix_clock_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a944070	sysfs_put
+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 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x1b5bae94	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x1b5d3e94	unregister_net_sysctl_table
+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 0x1b9aca3f	jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1bd7f702	usb_hcd_poll_rh_status
+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 0x1c947d7e	inet_hashinfo_init
+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 0x1d177b98	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x1d4636ef	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x1d52e208	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL vmlinux 0x1d8f2b91	devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x1db58f41	nand_release
+EXPORT_SYMBOL_GPL vmlinux 0x1dd1810a	inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x1dd2d9db	securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1df544b0	sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x1e095d48	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x1e314b21	regulator_use_dummy_regulator
+EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb	trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x1e4dae3f	devres_destroy
+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 0x1efb11c8	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL vmlinux 0x1efbf353	fat_scan
+EXPORT_SYMBOL_GPL vmlinux 0x1f1657bd	put_pid
+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 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 0x20931b2e	crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x209cd173	file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470	orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d52389	snd_soc_put_enum_double
+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 0x21b66757	sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x22015fe3	register_pernet_subsys
+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 0x2358fd63	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x235ce1ad	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x23679939	__iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23b90f16	led_trigger_register_simple
+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 0x24476091	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5	srcu_batches_completed
+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 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 0x24dacea0	xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x24dd3b1a	snd_soc_dai_set_fmt
+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 0x2520ccf0	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL vmlinux 0x252e43b4	cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0x2532ff7c	tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x25391c84	class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x2541a979	snd_soc_calc_frame_size
+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 0x26297aaa	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x262f20a8	local_clock
+EXPORT_SYMBOL_GPL vmlinux 0x26413b2a	dapm_reg_event
+EXPORT_SYMBOL_GPL vmlinux 0x264a2ccd	inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x266b021f	snd_soc_platform_write
+EXPORT_SYMBOL_GPL vmlinux 0x26765503	noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x26abff41	platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x26ac0b57	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4	ring_buffer_time_stamp
+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 0x2734b90b	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x274ab190	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x274d7076	unregister_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00	vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x28607fac	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x2893bb78	cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x28a82da4	snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0x28c90858	register_ftrace_event
+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 0x292db98b	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x2972ca21	tc3589x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x299dfbd6	tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x29b3263e	usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x29c2750e	usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x29f65cc2	sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2a0b9566	crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2a17dbad	rtnl_register
+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 0x2b6ae537	generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b	filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c6432d2	ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd	regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2cafa72c	rtnl_af_register
+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 0x2d8700f8	usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x2d9677d0	usb_queue_reset_device
+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 0x2e2341d8	crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e5633a0	snd_soc_resume
+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 0x2f58f153	rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2f6176cc	tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x2f7934e8	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2f84e66f	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x2fbbd031	snd_soc_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x2fc27e27	page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17	dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fda0ec6	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x2fe7c4f5	ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x307550c7	get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x3078b886	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776	timecompare_offset
+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 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 0x31a820ed	register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x31bc7b23	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1	dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x31f7115c	i2c_lock_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x32311dc9	skb_gro_receive
+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 0x33c6f364	watchdog_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x33d7abdf	crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x33e8c6c2	hvc_poll
+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 0x347a052d	inet6_hash_connect
+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 0x3494c51f	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x349e5187	regmap_init_i2c
+EXPORT_SYMBOL_GPL vmlinux 0x34b12e36	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x34c6f7b6	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x34cd4fb4	__fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x34d490c0	transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x34d9d92e	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x34f97f22	return_address
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x353b4598	cgroup_add_file
+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 0x35b98b43	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x35d36dbc	sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x35d911fc	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x360568ac	device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc	save_stack_trace
+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 0x367f44f9	get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x36871f1a	da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x36875389	__timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36a3e9b6	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x36de4ad1	tcp_reno_min_cwnd
+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 0x37d82959	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x380d1167	task_blkio_cgroup
+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 0x394481d7	init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x3969bf31	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x3977f443	snd_soc_dapm_nc_pin
+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 0x3a3c4447	ahash_attr_alg
+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 0x3abbdd50	fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x3b2c1d7f	relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x3b38db38	crypto_aes_set_key
+EXPORT_SYMBOL_GPL vmlinux 0x3b59bf51	evm_inode_init_security
+EXPORT_SYMBOL_GPL vmlinux 0x3babd160	snd_soc_default_volatile_register
+EXPORT_SYMBOL_GPL vmlinux 0x3bad1c59	crypto_register_ahash
+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 0x3d26455d	mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5982e0	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3d5a088c	snd_soc_dai_set_pll
+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 0x3d9d489f	snd_soc_add_platform_controls
+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 0x3dd4d3a7	bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dd90740	snd_soc_write
+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 0x3e41e38c	__sock_recv_ts_and_drops
+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 0x3f3c4d22	debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x3f620a84	disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a	unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x3fa01a43	vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x40102d29	alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4064b321	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x40874f6d	rq_flush_dcache_pages
+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 0x40f3bdd7	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL vmlinux 0x41389e90	sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x4180aab9	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4180dd60	fat_detach
+EXPORT_SYMBOL_GPL vmlinux 0x41ac4664	kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x41af18ee	deregister_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0x41e1f656	ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x41e22b0b	pm_runtime_barrier
+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 0x42f79d1f	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x430ff0f1	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x431c86c4	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6	__gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43357f56	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x4354e20a	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x43567af3	kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x43614397	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x43c22366	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x43c77fce	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0x43d6ff09	usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x43de0b12	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x43e871dc	md_is_badblock
+EXPORT_SYMBOL_GPL vmlinux 0x43f4937f	register_user_hw_breakpoint
+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 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 0x455105a4	regulator_get_init_drvdata
+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 0x45975b2d	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x459c7bdc	sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3	crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45e25362	blk_rq_unprep_clone
+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 0x466a7444	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b	__crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46912e69	platform_device_register
+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 0x47732f17	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x47c149ab	queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x47dc447f	skcipher_geniv_alloc
+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 0x48a488a0	sysctl_tcp_cookie_size
+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 0x4965bba5	lookup_instantiate_filp
+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 0x49a37edc	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x49b2737a	regmap_init_spi
+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 0x4a64a95a	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL vmlinux 0x4a77c6eb	net_ns_type_operations
+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 0x4bc53dd0	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81	audit_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4c13d028	netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0	ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x4c6647ec	device_move
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371	tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4c848e2f	sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x4cadfa0a	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4ccd6318	omap_dm_timer_set_source
+EXPORT_SYMBOL_GPL vmlinux 0x4d24e899	blkcipher_walk_virt_block
+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 0x4df66c0b	fat_time_unix2fat
+EXPORT_SYMBOL_GPL vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x4e12e3ba	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4e12f533	tcp_death_row
+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 0x4e7cff4b	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b	irq_create_of_mapping
+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 0x4f8f82c0	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x4f988e5f	led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d	sata_deb_timing_normal
+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 0x50329973	crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x503ac732	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x503f8591	usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x504f371a	eventfd_fget
+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 0x5167cf61	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x5194eb7b	ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x5195b1db	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x51a2c847	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x51b7b372	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x51c8a6ad	usb_autopm_put_interface_async
+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 0x5227370d	crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x5243eed1	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x524a7826	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0x5254f437	sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x52627669	blkcg_get_weight
+EXPORT_SYMBOL_GPL vmlinux 0x526b6c29	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x52701804	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x52c7dc11	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x532f250b	crypto_unregister_pcomp
+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 0x53c8bdeb	regulator_get
+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 0x5460c8d8	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x546537bc	__fsnotify_inode_delete
+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 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 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 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 0x591a30e6	pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2	scsi_dh_handler_exist
+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 0x5a3ed8bb	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x5a3f117c	bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a7f16c2	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x5a80d267	snd_soc_register_platform
+EXPORT_SYMBOL_GPL vmlinux 0x5a847815	register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a9cd8e0	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5aae84c7	sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x5b15395d	inet_csk_listen_stop
+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 0x5b691fb2	usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x5b7d5513	crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x5b956fbd	uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7	wait_rcu_gp
+EXPORT_SYMBOL_GPL vmlinux 0x5bbd0078	shash_attr_alg
+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 0x5d730e7b	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d883a3c	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x5d88cc43	sdhci_free_host
+EXPORT_SYMBOL_GPL vmlinux 0x5d899d3e	css_depth
+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 0x5f46d244	of_irq_map_raw
+EXPORT_SYMBOL_GPL vmlinux 0x5f551108	sdhci_alloc_host
+EXPORT_SYMBOL_GPL vmlinux 0x5f645720	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x5f72125a	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff768ec	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3	synchronize_srcu_expedited
+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 0x60b06481	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0x60e2722e	pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4	regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x612d8e49	raw_hash_sk
+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 0x6187058c	rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x6235cf49	usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406	hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x6267312f	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x627976b7	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL vmlinux 0x62b518af	crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x62bcf259	blkiocg_update_completion_stats
+EXPORT_SYMBOL_GPL vmlinux 0x62d1fd70	ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x62e67818	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0x62ea44f1	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x62f16d04	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x632dee9e	ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x6373f484	find_get_pid
+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 0x63fa8a37	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x640ad778	fat_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x642f184e	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x6430a722	skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x645e56d0	blkiocg_lookup_group
+EXPORT_SYMBOL_GPL vmlinux 0x647879d8	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x64f46f6f	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x652be58c	spi_bus_lock
+EXPORT_SYMBOL_GPL vmlinux 0x652f5a30	free_css_id
+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 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 0x660864c6	dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662cc7c0	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x6639b738	crypto_shash_final
+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 0x67173efe	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x676d97b5	bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x677b9cee	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67c7d8a6	bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x68551413	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x686174d3	rtnl_link_unregister
+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 0x68a21997	inet_csk_listen_start
+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 0x69189607	dm_path_uevent
+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 0x695a7492	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x698a899f	ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x698be398	regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x69983a73	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x69ab36bb	max8997_write_reg
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x69ef3d5b	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x69fd79cc	ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x6a224e61	mtd_add_partition
+EXPORT_SYMBOL_GPL vmlinux 0x6a449327	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL vmlinux 0x6a4e6021	usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x6a6afd22	nf_unregister_afinfo
+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 0x6af7d728	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6b16371a	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa	ring_buffer_event_length
+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 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 0x6e07e741	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0x6e6b5274	ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc	xfrm_ealg_get_byid
+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 0x6f5de6ef	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x6fbd752e	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL vmlinux 0x6fdb61a8	vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf	ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff129f3	snd_soc_get_volsw_s8
+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 0x70c0698f	snd_soc_register_dai
+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 0x7207af8d	crypto_destroy_tfm
+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 0x72b212ff	regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x72ced21a	pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x72e19e16	usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e	__srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x73021c60	regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7	asic3_write_register
+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 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 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 0x75d464c8	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x75dab5ce	ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x75e1a8ee	i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x75e4dc35	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75e93367	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x760c7d9c	fat_getattr
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd	dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7630886c	add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x765bf82b	usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7665feac	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0x76dbafc7	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x7746b665	rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x775a905d	blk_end_request_err
+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 0x779ddb24	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x783ca1c3	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x7848671e	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x78da6843	device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x78f111d6	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x795bdb7e	unregister_pernet_device
+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 0x79cea966	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x79d476e4	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x79dbb3de	crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x79fea0b3	dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x7a09feea	tc3589x_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x7a1c6e06	snd_soc_register_codec
+EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44	ezx_pcap_set_bits
+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 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 0x7b3cb2e1	crypto_lookup_template
+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 0x7bd0f63a	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL vmlinux 0x7bde28d5	inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x7c119006	relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x7c166fa7	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x7c3d63cc	max8997_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x7c5bb835	bio_clone_mddev
+EXPORT_SYMBOL_GPL vmlinux 0x7c728767	zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x7c8ce73b	led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7ca0248e	__mtd_next_device
+EXPORT_SYMBOL_GPL vmlinux 0x7cbcc969	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7d18cd61	skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x7d398fdd	led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7d4601bb	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d64c692	wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7d926871	do_kern_mount
+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 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 0x7f562291	scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x7f81206d	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x7f99fafb	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7fbc8686	regmap_exit
+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 0x8036a3ed	clone_private_mount
+EXPORT_SYMBOL_GPL vmlinux 0x803d6879	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x80725b0e	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80c9049b	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x80cb4409	tcp_register_congestion_control
+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 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81b4cf2f	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x81d6a3b0	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x81e0bfde	crypto_chain
+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 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 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 0x8434406c	tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x844e4213	snd_soc_add_controls
+EXPORT_SYMBOL_GPL vmlinux 0x8469417c	sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x847dce07	snd_soc_unregister_platform
+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 0x856c25b2	unregister_wide_hw_breakpoint
+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 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 0x860fcff1	posix_timer_event
+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 0x87111807	sysfs_get_dirent
+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 0x87d71776	relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x88029e44	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e	crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x881d3a47	queue_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x8888fe92	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x88aa3e4c	snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88d4e1bc	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x88ed172a	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x88f43250	blk_queue_flush
+EXPORT_SYMBOL_GPL vmlinux 0x890b091e	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x89381409	class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8944f9d9	rtc_read_alarm
+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 0x89a82ccb	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x89b7fa5d	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf	usb_usual_check_type
+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 0x8a52b278	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80	regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5	klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8ab1a430	kobject_uevent
+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 0x8b608988	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1	ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bbb3c3c	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x8bfb05a6	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x8c101e08	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8c13b8e4	disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8c1acb57	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x8c26f943	sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x8c3cb3f6	usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8c5eeb89	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL vmlinux 0x8c7c2ae4	blk_queue_flush_queueable
+EXPORT_SYMBOL_GPL vmlinux 0x8c822a3a	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL vmlinux 0x8cdec7c7	fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x8d0f9f0c	pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8d0fea1a	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8d1694b2	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x8d19562e	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8	of_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x8db343b6	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x8dc1a5dd	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dc9ac19	fat_fill_super
+EXPORT_SYMBOL_GPL vmlinux 0x8e4d709a	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x8e7648a1	rtc_set_time
+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 0x8f07264a	wakeup_source_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8f263dc6	platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f7555a4	vfs_test_lock
+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 0x90b85f02	crypto_alloc_instance
+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 0x923295d5	regmap_write
+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 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 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92d73cca	__i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x92fd057a	aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x93321851	put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x93347585	devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x9352475e	regulator_register
+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 0x94a5e7ad	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94a7c7ee	rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x94f5ea11	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0x94f6262b	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x94ff5ca1	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x95366595	omap_dm_timer_stop
+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 0x95f6ee15	unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x961661a8	proc_net_fops_create
+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 0x96bcef7a	netdev_rx_handler_unregister
+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 0x975cbceb	snd_soc_register_dais
+EXPORT_SYMBOL_GPL vmlinux 0x976991e0	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x97b13dad	__clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0x97dbe865	fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x9804a5aa	hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x980a02a0	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x981019d0	init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9818958e	simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x9822d846	snd_soc_codec_volatile_register
+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 0x98eed76d	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x98fee210	da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x991000ad	snd_soc_new_ac97_codec
+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 0x998c4657	wm831x_regmap_config
+EXPORT_SYMBOL_GPL vmlinux 0x99a30487	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x99bb5b6a	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x99ce0ea4	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x99dfe226	inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x9a081404	ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a3ad699	debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x9aaf803b	of_alias_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74	suspend_set_ops
+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 0x9afcf2b8	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x9b0a1cdd	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x9b8ebb5d	ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x9b98add9	ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e	unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9ba1d27b	vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x9bc4acdf	sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0x9bc66d51	adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bd52866	__ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x9bdd9c01	class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x9bfcce5e	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9c169979	class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9c2d257f	driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x9c33f70f	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x9c3584bc	find_module
+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 0x9c9c1c5f	snd_soc_info_volsw_2r_sx
+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 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x9db8ba19	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9dd36690	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x9de1c137	crypto_unregister_ahash
+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 0x9e85157f	crypto_givcipher_type
+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 0xa05a170b	musb_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xa0fc1078	tps65912_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa0fc54bc	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xa1536b86	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0xa17ecedb	__trace_note_message
+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 0xa1aa30ef	perf_event_refresh
+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 0xa1d40f52	vfs_kern_mount
+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 0xa27ce9b6	__mnt_is_readonly
+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 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 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 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 0xa56da51b	locks_release_private
+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 0xa5ba7e4e	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xa5d1166b	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xa5d6c97f	security_inode_mkdir
+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 0xa6c9ff97	usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa6d778e5	platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0xa6f7db17	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xa7032ad9	user_update
+EXPORT_SYMBOL_GPL vmlinux 0xa711d0c7	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xa7764f12	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xa77ba71b	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL vmlinux 0xa79b73a4	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xa7aa4b34	inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xa7c30e8f	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL vmlinux 0xa7ef6b39	snd_soc_info_volsw
+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 0xa89b584a	of_property_read_string_index
+EXPORT_SYMBOL_GPL vmlinux 0xa8da9a3d	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xa8f0fc68	proc_net_remove
+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 0xa9c530b8	unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c6eaaf	spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261	net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xa9fefa81	device_add
+EXPORT_SYMBOL_GPL vmlinux 0xaa1685fc	inet_csk_route_req
+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 0xaaaad38c	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xaad18c36	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xab1807c0	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xab38187a	ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab799516	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xabafd772	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xabd0bb18	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xac661186	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xacaaafc6	snd_soc_read
+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 0xad5f1b39	nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad8d514b	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xad9dd1bc	crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xada38534	regulator_bulk_disable
+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 0xae09cc28	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae1e69b0	dev_attr_unload_heads
+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 0xaf0b7a4f	blk_insert_cloned_request
+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 0xaf8333a2	set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xaf894784	usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xafb5e94f	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb004e8b3	tps65910_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb04a9940	usb_free_streams
+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 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb19e83f1	kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xb1f62734	shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb23994c3	usb_bus_start_enum
+EXPORT_SYMBOL_GPL vmlinux 0xb2428097	omap_dm_timer_request_specific
+EXPORT_SYMBOL_GPL vmlinux 0xb26833b7	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xb28a15fd	omap_dm_timer_free
+EXPORT_SYMBOL_GPL vmlinux 0xb2af0bc2	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0xb2e30a3e	blk_rq_prep_clone
+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 0xb3c5f6b3	snd_soc_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb3c8ede7	blkio_policy_register
+EXPORT_SYMBOL_GPL vmlinux 0xb3e6c7fd	da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xb3f06264	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL vmlinux 0xb43907a8	i2c_adapter_type
+EXPORT_SYMBOL_GPL vmlinux 0xb4b7b453	shmem_truncate_range
+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 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 0xb5a5e88c	tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xb5c31e23	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb5d9ffcc	crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb62ebd31	omap_dm_timer_set_load_start
+EXPORT_SYMBOL_GPL vmlinux 0xb6452682	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb67b1b9a	vfs_cancel_lock
+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 0xb7b90553	gpio_export_link
+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 0xb8cf976f	crypto_grab_aead
+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 0xb9b0098f	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL vmlinux 0xb9d22ac8	console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xb9da2997	snmp_fold_field64
+EXPORT_SYMBOL_GPL vmlinux 0xb9e5b5c8	omap_dm_timer_get_fclk
+EXPORT_SYMBOL_GPL vmlinux 0xba482abe	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL vmlinux 0xba50c138	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xba65dbe9	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xba6ea394	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0xbad4c8dc	inet6_csk_xmit
+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 0xbbf8b1be	setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xbbfda9f2	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xbbfed2be	rdev_get_id
+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 0xbca6ef6a	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL vmlinux 0xbcefb76b	nf_unregister_queue_handlers
+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 0xbe269dde	snd_soc_info_enum_double
+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 0xbe995b45	sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xbf01c49b	bsg_job_done
+EXPORT_SYMBOL_GPL vmlinux 0xbf04e172	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xbf0d5d37	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xbf1d5f84	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xbf7a38df	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL vmlinux 0xbfa0f507	__tracepoint_rpm_resume
+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 0xc03c5b81	tcp_slow_start
+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 0xc10f2b8e	cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc1235594	blk_trace_setup
+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 0xc21bd0cf	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xc227dd48	sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc259073b	devres_get
+EXPORT_SYMBOL_GPL vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2cba4f0	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL vmlinux 0xc32c98f0	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27	snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f	scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3b8425d	sata_scr_write
+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 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 0xc54507e9	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc5635c76	bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xc5790a2a	aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc57a9fcf	platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc58429fe	regmap_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc5a41e55	tcp_is_cwnd_limited
+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 0xc5fd2504	css_id
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b	klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec	__ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc6289f3a	register_net_sysctl_table
+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 0xc6627d28	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL vmlinux 0xc66324ec	ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc68a13d1	clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0xc6a9d3d5	omap_uninstall_iommu_arch
+EXPORT_SYMBOL_GPL vmlinux 0xc6d03824	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xc72e1233	__trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc72faa5a	debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL vmlinux 0xc7ac5c83	fuse_get_req
+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 0xc86df30a	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84	ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc8becd1d	scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc8db737f	sysdev_show_int
+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 0xca6ebde3	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xca76fcec	rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf	tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcacc5951	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xcaf8fa7d	device_find_child
+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 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 0xcd13fa3a	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xcd263e74	blkio_alloc_blkg_stats
+EXPORT_SYMBOL_GPL vmlinux 0xcd73d337	mnt_drop_write
+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 0xce2cc613	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xce6168dd	register_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0xce66e427	snd_soc_update_bits
+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 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 0xcfc43a2a	__blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad	register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcff1a146	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700	secure_ipv4_port_ephemeral
+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 0xd08e5f67	tcp_reno_cong_avoid
+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 0xd11ebb95	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3	crypto_check_attr_type
+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 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 0xd2750880	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xd2b7da51	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xd2c4856f	snd_soc_test_bits
+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 0xd3b1a60d	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xd3e61495	raw_seq_next
+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 0xd4250b7b	ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xd42512f2	crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xd46dac49	regmap_raw_write
+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 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 0xd6459aae	blk_rq_err_bytes
+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 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 0xd7e69545	da903x_set_bits
+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 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 0xd878232d	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd879eedf	crypto_shoot_alg
+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 0xd8c3faba	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd8cf23f1	usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xd8d57b4c	ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xd8de9022	blk_queue_bio
+EXPORT_SYMBOL_GPL vmlinux 0xd8ee1bca	regmap_init
+EXPORT_SYMBOL_GPL vmlinux 0xd90b8de9	xfrm_inner_extract_output
+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 0xd9c87348	dm_set_device_limits
+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 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 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 0xdc57cb44	debugfs_create_u16
+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 0xdcd0d2f2	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xdcdf6e4f	fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xdceaafac	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xdd2fb70d	snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL vmlinux 0xdd5112a3	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xdd75ee5c	power_supply_powers
+EXPORT_SYMBOL_GPL vmlinux 0xdd7e47d0	regmap_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xdd9fba6c	irq_domain_add_simple
+EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xde1fba32	iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xde2f8c68	dev_change_net_namespace
+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 0xdea810c6	__netpoll_cleanup
+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 0xdf7d788a	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xdf961525	usb_usual_ignore_device
+EXPORT_SYMBOL_GPL vmlinux 0xdfd3d583	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xdfe9503b	each_symbol_section
+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 0xe02d682d	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xe0476be2	driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe04afcb2	skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xe056b4a1	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xe05ced89	snd_soc_cache_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0631cb6	rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe0795658	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe0820bcc	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0xe0c41e45	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xe0da9810	snd_soc_platform_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0de3485	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe17e9607	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xe1cc39f6	platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe1cf96ba	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695	__atomic_notifier_call_chain
+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 0xe2784795	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xe287b31b	sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xe2c98989	sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0xe2d11973	crypto_blkcipher_type
+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 0xe335251c	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL vmlinux 0xe384a102	usb_speed_string
+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 0xe44e4a68	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xe46e8f34	register_wide_hw_breakpoint
+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 0xe529985b	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe5a17451	crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xe5c2fad5	scsi_unregister_device_handler
+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 0xe6e1c5fe	uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe6f73341	sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885	__wake_up_sync
+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 0xe8011ccf	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xe838f679	con_debug_enter
+EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe8611953	perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe88c962d	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL vmlinux 0xe9024b74	register_kretprobes
+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 0xea065e01	task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f	atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea492dd3	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL vmlinux 0xeaaf8db7	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760	scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf8c242	blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xeb2faed6	inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0xeb3d15b9	proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xeb42c49c	bsg_request_fn
+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 0xec991e62	snd_soc_cnew
+EXPORT_SYMBOL_GPL vmlinux 0xecabd75d	blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xecdd4d44	part_round_stats
+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 0xed9cfa5a	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xeda63db3	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xedcd8303	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0xedd3e344	blk_add_request_payload
+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 0xee9e9f7b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xeec75f31	rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef8c7850	pcap_adc_async
+EXPORT_SYMBOL_GPL vmlinux 0xefb53b7e	iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xefb64e58	replace_page_cache_page
+EXPORT_SYMBOL_GPL vmlinux 0xefb72398	pstore_write
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63	ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xeff9157c	kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xf03b9de8	power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0xf06ccfec	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xf0c46139	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0xf0e7af21	spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1a841e0	crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL vmlinux 0xf1c7676a	__sock_recv_timestamp
+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 0xf2923150	inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0xf2939d72	get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xf2bb2baf	bsg_remove_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf2c6396d	tps6586x_write
+EXPORT_SYMBOL_GPL vmlinux 0xf2d75b75	skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922	uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30317c7	anon_transport_class_unregister
+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 0xf3d5238c	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL vmlinux 0xf3e4a3df	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xf3ec7ae1	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xf42cb3e1	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xf477b7a8	stmpe_block_write
+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 0xf5288eb5	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL vmlinux 0xf52d2fbd	pm_stay_awake
+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 0xf55e5288	usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf568869e	hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf578f99b	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xf58d6875	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd	invalidate_bh_lrus
+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 0xf67a4b0f	map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xf68e44fc	blk_unprep_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 0xf70e4e1f	find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xf71f3f65	__root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xf728f707	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf72ee27e	__irq_set_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf7435b59	blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf7713218	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf7a0480e	blkdev_aio_write
+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 0xf849c797	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0xf85c20d7	sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492	print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf893a8e7	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf8b4efdd	yield_to
+EXPORT_SYMBOL_GPL vmlinux 0xf8b99b28	sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0xf8c5521c	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8f42f0a	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xf92ce956	kdb_printf
+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 0xfa100118	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfa26ce94	crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0xfae557d7	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xfb217ca0	bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0xfb2687f5	__get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xfb2a4020	fat_sync_inode
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb41e8de	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfb49a8c2	skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL vmlinux 0xfb9430d4	usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xfba7bc5f	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xfbce4236	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xfbcefb86	relay_reset
+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 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 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 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 0xff2e180b	skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0xff3e5e39	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xff41151f	platform_device_add
+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-36.57/armhf/highbank.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/armhf/highbank
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armhf/highbank
@@ -0,0 +1,8965 @@
+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_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_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	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_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_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_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_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_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_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	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_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_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	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000	nfs4_reset_write
+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_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	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_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_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	cpuset_mem_spread_node
+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	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-36.57/armhf/omap.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/amd64/virtual.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/amd64/generic.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/amd64/generic
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/amd64/generic
@@ -0,0 +1,12500 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x0aa3335b	kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x8ea5b962	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 0xb6821400	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0xe18d0820	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 0x49120f54	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 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 0x3a84746f	ibnl_put_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c6ea337	ib_get_dma_mr
+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 0x46a5a128	ibnl_put_msg
+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 0x76e9586e	ibnl_add_client
+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 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 0x0758a2e7	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10105ca9	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21c83a03	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x256b44c6	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x490ecfc0	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4d944683	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x592bd884	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6031789b	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66916c45	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x68721a93	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6bbce513	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74df6f7a	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x75e580f2	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x86cb4b76	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x983a7c66	rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa2804f1a	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb533bddb	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd53d96a3	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfd2b4407	rdma_set_ib_paths
+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 0x01ce2eec	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf	unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0bc71907	capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2a2a0f10	capi_ctr_suspend_output
+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 0x44e4d04c	capi_ctr_handle_message
+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 0x5b304b9a	capi_ctr_resume_output
+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 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 0x7e85e317	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 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 0xc0173053	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcd53a43e	capi_ctr_down
+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 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xedacaef4	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf64de464	attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x085a2d7a	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0dc64d40	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x139f336c	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32b8af7c	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x432995d5	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x47283f23	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x676c53d5	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa89baf5f	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaaef241c	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xac6da30f	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc74c6470	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcc605715	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd1ab4035	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf76f529e	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfb35ffc3	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x07fd8849	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x28b5e2c1	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2c3205bc	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x63f9678e	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x770016f7	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x80c1ee27	b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa6d3ccd1	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa8c52436	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf8883738	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 0x2974ead1	DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x74829163	proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x20ac53df	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x3f4fbff1	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe4962d13	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe674be0a	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x064991a4	mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc4aa32af	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 0x74d230bb	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 0x53663b61	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8f7d7dfc	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x906481ac	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa45b5f57	isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xcb344d45	isac_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x6b919cac	isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x8112e9bf	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc72fee08	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 0x05230097	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0dc12eb5	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f6a8b83	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b62c660	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x31c0fc3d	mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x344200bf	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x486a5ca3	mISDN_register_Bprotocol
+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 0x59568b0e	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5af1a947	get_next_bframe
+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 0x662cbae7	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84f3775d	get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x90ef666d	mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9117c786	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9d3a06bd	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xabd15917	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb9704ca6	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb9ae2a06	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbb8feee5	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc2aef88b	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcab7e775	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 0xe87943cf	mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb	mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeabc37cb	mISDN_unregister_Bprotocol
+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 0x027f8511	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x461b49e8	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x51fe1b78	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0x927c82ea	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x005240ad	dm_exception_store_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 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 0x046a46a3	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1ec61cf6	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x226a7741	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3f0ff581	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4df06e97	flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5d1e48b9	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5f50fbeb	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x643752cc	flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x65b9b0c5	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8f7538dd	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9fff51ac	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa12887fc	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa705494a	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa9d70b84	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbe2ee335	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd772a410	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe2ab8b8a	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe31d2419	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeca69177	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf0f36c37	flexcop_dma_xfer_control
+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 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 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 0xdca164d4	dvb_net_release
+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 0xeab9761f	dvb_net_init
+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 0x01251ea6	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x33458cfe	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x54eff095	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x602a27de	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x85935fa5	dvb_usb_get_hexline
+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-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 0xe8c64c68	af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x031a465e	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2f633e08	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x50e7a04f	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x632793a6	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x64e7b982	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6f26a23c	dibusb_read_eeprom_byte
+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 0x84ea6087	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9c32115a	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 0xeeca6ea7	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf122febb	dibusb_power_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 0x0ea11f97	cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x167984ba	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3460eb7e	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4a0183ef	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcd33073f	cx18_ext_init
+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 0x2eb69b5f	videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8a205bce	videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa0ff915c	videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa4ce56f3	videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc3802277	videobuf_dvb_get_frontend
+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 0x27e1d074	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6329bb5f	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x67739caf	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x706df130	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x73064d99	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbb4b9c03	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd5a7c2cc	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd7da67c4	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xde5273ff	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfba0dd55	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x27d0bfd4	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3cb234b3	com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdd582d38	com20020_found
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1ec27090	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4a49955f	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4ce4e6c8	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x842fd0e0	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9da61a67	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9f12391f	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa7a9fd0b	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcf341120	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd3979067	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xef879093	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xc37b9367	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0xe58225c0	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x3e0008ae	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x05912c28	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0b08e361	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5a1eb495	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6b3e6a25	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6efe65d6	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x88ad34fa	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8ef3e3c7	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8fb9d768	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa2d343a5	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xae693d36	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd98eae6f	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe6847cd5	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeccec083	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xee4454db	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf072eb7c	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf89a4df4	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x113b97ba	cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12ea3180	cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x16ab12e7	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3717207d	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a134abb	cxgb4_port_idx
+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 0x618da1b3	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ae7cee2	cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84cf61da	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8e4b8ed4	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x93a93f32	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9619e5c8	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x96f3194e	cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaa717686	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc127546e	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 0xfae66a38	cxgb4_free_stid
+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 0x4189c3d8	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5965010e	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7587f2d7	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9b2a6c60	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfa524ea1	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x18f002f6	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x29754911	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3b4b1250	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3f732910	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x47246c32	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6d8ae9ed	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa1106afd	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaabb6da8	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb1b721a4	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf8d14a14	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 0x100af77b	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x438497c2	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x14e0c5c9	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x3c219301	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xd20fa8bf	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xe53f0102	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1c8e4767	tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x75bac05b	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8b6bf948	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc4d72273	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794	tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf57736a9	tms380tr_netdev_ops
+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 0x14ae1f7a	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x2ccf64f5	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x55d7e532	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6379b532	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8a24f953	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xbb202b03	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf2f5d19	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe2d62763	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xef7cf6e5	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfda26d93	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xff78b4dd	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb955a03e	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x170b0e5c	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x49bdde85	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xd9c98577	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1d08f69b	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x290242fa	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x39bc8c2c	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5	ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x76d7b7d2	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90cc7422	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6c99965	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbdc3d7bd	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd14c458e	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf83617fa	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0e494a58	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 0x5326c3e8	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8e968d71	ath9k_cmn_update_txpow
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb4836f2d	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 0x00345f5f	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0085d1df	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a7caeb5	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a996577	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0aa22913	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e1236c8	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1104f9d7	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x129ab642	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12e7ec03	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1587c813	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x163a202b	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19d969c3	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1edcbaee	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x235e0d9f	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26ea2aff	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27c9abbd	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2821b9d1	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28c4ed1f	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f808bf4	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32d0021a	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36a7e970	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38a5f35d	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c3c0d8b	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x402aee12	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4732e7ba	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48739dc2	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49142272	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b9fbf52	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c810344	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d9a3dbf	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5336910b	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56d88d27	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57149f1e	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e4de039	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64db70fd	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6654c649	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6aa6bbd5	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6da22fa7	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e45c688	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72c03295	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x750404a2	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x755f0aa2	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x764a22f2	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76bb2cdd	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f09a89b	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80dd0089	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x839f324a	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85f81c51	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8925f782	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89cc374e	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b3a1083	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ccc54b0	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cdb5aa9	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d8d1837	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98fc2d2a	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1f2f99b	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6d99f20	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab8d7924	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacc4f922	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae83e919	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb024cdc4	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2336988	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5716741	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbecb2e49	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3f5033e	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4de3403	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9435584	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca4f1d21	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca783f01	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc2cf5a7	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc3cc30a	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf80e921	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2420e42	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd268bd61	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4409d52	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5ab3c6c	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbd6acfa	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd3e6bbc	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd7a703e	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd9608ac	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdec82e00	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe03043e9	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2934ff1	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4cc3540	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8f3ff70	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef83d4f2	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5b06496	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf89f2088	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x375b7443	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x73c4d658	stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xbf28014c	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 0x1b414232	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1ed927a7	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x25aea93d	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x282595ee	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2f960bab	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3e6b7395	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4ada12d6	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4e8167be	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x800c626e	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x983991b2	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa4169d80	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa99d2cf8	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc56b8509	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf3ba9bad	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x06645286	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x085dfda5	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12b22f1c	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x161e3324	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x195b3961	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1bd16aeb	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1d225cf3	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2696ae4b	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x37639434	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3bd8ccd5	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50f4e8bf	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x68ac0a6f	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6953b596	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69989238	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b57f852	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c95fc3d	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6d18386c	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f8b1c18	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x906a441d	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa163ecf2	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7b3c1a8	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0	hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb34fbad3	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb48e8287	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbaa62dbc	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe9c8da52	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x069bdedb	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x127e134a	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x31b02404	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34116a7d	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3893d8cc	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x41fc0222	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4e3650a3	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x55bf2f88	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x60083961	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x63ce7a3a	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6f555075	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x70c19a6a	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d49ac3f	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8403bc69	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa95805de	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xad41dcb9	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xad450c2e	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbe4c2be1	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdb35c0d9	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe0affdf2	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xedaedeb4	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x03f9b7de	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x06aef0ed	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a75d120	iwl_legacy_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0e2f33c2	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0fbdab58	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0fff9825	iwl_legacy_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x15c04676	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x17387399	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1a7d7dbd	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1c3f48e2	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1dd7d126	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x205aa28d	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x23ce607d	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27dd19c6	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2c9bd3e3	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e6f4fdd	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x32ca8911	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x33a14a11	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x346c76e4	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3e38b8b9	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ef73f9a	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ffc3281	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4299bf95	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x45438775	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x46ace62a	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48c0b2ca	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c431eaf	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5391eddc	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5af461ce	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5fab577a	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x66d01023	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6857a49c	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6b08ae27	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6c6668a5	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x71957551	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7600ebdc	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x783d19de	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x79411e15	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x795743dd	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7983ce1e	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc	iwl_legacy_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b7464a6	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7c7a37da	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7e4352a9	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x804b527f	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x81c54036	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8555cf8d	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x86e62a43	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x879de50d	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a2162c6	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d624464	iwl_legacy_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8f9c7bea	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9062f19f	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x936f8e4e	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x93a886ce	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9522aaa1	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9555a24f	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x960ce9d5	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9c3b53e1	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa14ba81f	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa1c09649	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa591341f	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa9bcad0c	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaa30056a	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaab1076c	iwl_legacy_power_initialize
+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 0xb6e74944	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb845ead2	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb8b81633	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb986507b	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc2b8f7d1	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc465cd7f	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc4c5c34e	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc827bc81	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xca58011d	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcd882a09	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd0c6fde5	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd573eba1	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd75baa84	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdc0cc2e7	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdf66ef5f	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe0f036b6	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe1f8398c	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe27c5000	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf158eadf	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf20f9a79	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf36510e2	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf3c08a8b	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf94d9025	iwl_legacy_send_bt_config
+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 0x24ff741e	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3a9ea128	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x444b87eb	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c8de647	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x663d3620	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a467d76	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x76f83878	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa86775b7	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb2700f33	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb2ee1deb	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb721387d	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbaf3e988	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbc2e4a01	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcf78a285	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd1d9bf79	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb0cbd65	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe50dfe1d	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0d414222	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0f660c29	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x19a091b8	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1b6f7b71	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1beba910	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1fc96a03	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x25332178	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f26e7b4	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f7367b5	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3523c320	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x35a671de	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x44f25f1d	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x535870f2	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5b32e901	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6308b204	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6327792e	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6e93d8de	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72b28050	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x776911b6	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x798d528e	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x92baea4f	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x93501791	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9b8c867d	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2015c23	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaf9d88ae	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3ba2fc7	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb48eb038	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb52db463	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb5be5271	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe6046e5	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc5bd7eb9	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc5bdb2b6	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8f35c57	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xca9f3571	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcab3f0dd	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc6ce85c	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde9b81e2	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe228cc5b	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe7104d98	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xee804d90	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf1dcd3e0	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf521b5a7	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x09d5603b	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x19de22ec	rtl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x21a69bbd	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x24306f07	rtl_usb_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x341b2d48	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3696913a	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x50cafb5e	rtl_usb_suspend
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x68692c64	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x731a2675	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x73cf5fe2	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x74fdbbb2	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x86f8df50	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb4bc33c5	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc5ee50d7	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc6f84362	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc7e9415e	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd19268dc	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeb209d34	rtl_pci_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xec6a570f	rtl_cam_empty_entry
+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/net/wireless/rtlwifi/rtlwifi 0xfd9fecf8	rtlwifi_rate_mapping
+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 0x6b9e78e3	pcmcia_get_mac_from_cis
+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_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 0x03afbadc	pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x500e4384	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xde844ab0	pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x464a0444	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x626e83ea	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x68a992d9	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x77868193	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8ec7d741	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb83b6f3a	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc0b48256	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd29e9d7e	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdf03c3a4	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00d832ba	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03dc46b8	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08a0dc27	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09d643b1	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ab60eb4	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1138132c	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x133fd130	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a5a90ff	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x214f8b5f	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25aa4a01	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33dd5e71	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x38d6f657	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x445e5974	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4697e97d	fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52b43d41	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b13460c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c6c521c	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5fcc3603	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64bc649d	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c20dd6a	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72c7494d	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75429bd7	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75cb68b5	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c427bca	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81e98448	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8272d479	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8448635f	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b822070	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x92db0329	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93eee28c	fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9452276e	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x957607ce	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x970253f7	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa25cbaac	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3c42699	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa91093a5	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0cbf1d5	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6768895	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd57defe	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd741db3	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc0e53573	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcecfd240	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2ea7fcf	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7e8bb51	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd85fcf03	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0606733	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2ef33ee	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd56a481	fc_eh_device_reset
+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 0x0347d3a0	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x036f8a92	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1069e638	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x130f5979	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17f16083	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f7a1935	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27175146	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x291048f9	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29383eb2	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bb2de35	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32348683	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3ad49ecd	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b6d99e5	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d7733ef	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f0edc0a	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x516ac57a	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x53c27c48	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57a33978	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x58821247	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x643fe3b9	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x66c0b7f4	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d5406e4	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x721cbffe	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x766a44ee	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78452b1a	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7df85690	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7ee2e750	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80f97908	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x84f50dc0	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8585c586	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8cc4d453	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8fb9f9d7	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92fb25c2	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa12369e6	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2b124bf	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8f04ccf	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1c8a2f4	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb96f7c3	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcd621b8	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4966bed	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcbb0d4de	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd396ae0f	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6be4b2c	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd70b2d31	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1b1a34a	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4bf596d	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe6774265	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7bbfec1	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec2024e0	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf356f799	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf35f4f4c	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf51ca960	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf5437086	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc9663b2	ieee80211_send_probe_requests_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 0x0e10859d	vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe	vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x1a613858	vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x204859ab	vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x209a7d7a	vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2281d07d	vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2a93632f	vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3714605a	vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x388884cc	vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf	vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x41a6f1cf	vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x42623e2b	vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154	vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x47e839e9	vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x4980557e	vme_master_request
+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 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 0x9db88bd1	vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f	vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa70e57ec	vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbcefe6d7	vme_slave_request
+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 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 0xea28becc	vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeaeb661b	vme_irq_generate
+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 0xf367f97e	vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfff82f5c	vme_irq_request
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0207ed99	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x04eed689	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x066682d9	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x094ad82d	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0be310d0	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0beb5e6e	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0f170c8f	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x11db93be	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0x122c3d31	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x174a0243	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1bd7f00b	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1df84d53	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1eb4de08	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x204437e9	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x28917035	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2ac6c680	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2be1462d	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x32f7542d	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x36f612b0	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3830b227	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3ac10238	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x444d1e94	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x54cfa0af	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5a5cf645	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x65c65c18	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x65dc094e	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x65e43c7b	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7144531e	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x763628a4	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x792544aa	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x79c66008	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7d831186	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d	transport_set_vpd_ident_type
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7ebc39dc	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8151282b	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8f47ca37	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8fcf957a	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x900c2181	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0x975baf0e	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9eb586f7	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa046ba22	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xac220a56	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb451c92b	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbe6ca77a	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbf52cf97	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc29d7a91	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc4a2bbdc	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc5decf4a	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc5fd9f3c	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0xca63354a	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd0761e45	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd31df31f	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd6e66abc	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xda43b37e	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdaef563f	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe0ffd0c3	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe4ec592a	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe62d9262	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0xefc8c6c7	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf3ee239b	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf5f4b09b	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf6202afe	fc_parse_pr_out_transport_id
+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 0x122c2704	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x14a1ee73	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x196863e1	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2f8ab94d	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x35a2ec30	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4cb4cf6a	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x512feabe	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5b2f64e3	usb_wwan_ioctl
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c76c424	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x82bc6230	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x87ac36b7	usb_wwan_close
+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 0xd4532dea	usb_wwan_disconnect
+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 0x736fa18d	w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xd020c953	w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xf2bc7a9f	w1_remove_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 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 0x0ff20f97	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x293844b0	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0x329615e2	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0x35ba2095	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0x52e2957c	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x55ccfba1	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0x79dc5d08	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0xa3b73493	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xe5de7b19	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0xfd2c893b	extract_attr_from_ios
+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 0x617cff8e	make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xfa9b84c9	destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x019c16ee	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x0c29a752	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x0e0f1c83	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x0edf20aa	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x1508e668	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x169798c6	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x1825e0fa	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x18afd770	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x277724d1	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x28a6ed5a	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x28ee9bc6	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x39228a1c	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x3a1fb641	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x51d21266	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x52fbc512	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x6103a67f	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x6501b327	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x65d81413	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0x723fa37c	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x7b9efc48	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x83c6d0c1	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0x89fc6627	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x8cff57ef	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x9bce2503	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9df6e606	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa54b42ae	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xa9ea97d4	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xb2c8cff2	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0xb2dd34cc	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xb4785b8d	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0xb93b57de	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc75f8514	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xc80852c9	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xcbd945cf	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xccf0e3e2	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0xd48246ea	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0xdb11e56e	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0xdf631f84	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xe06edf65	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0xe55f29b3	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xedccc337	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf6250696	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xfcd24608	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0x333cc2db	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xa47e197d	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xb582895d	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xb65eb020	atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x09708543	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x35293dfa	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x38ba8f31	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x4a60b52b	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x5530bfec	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x5f04e311	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x6fca3543	atm_dev_deregister
+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 0xad78f089	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0xb0046755	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0xb77ee4a4	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xd72a773e	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xe87c3aaa	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0xe938b2f6	atm_charge
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x0479d44f	ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x1142faff	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x23e4a77f	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x7a376735	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x7ff4bbe2	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x92cb9b8e	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xa2ad1fe7	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xa750cf8c	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xe563337a	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xf5f8d381	ax25_listen_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0633da9c	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f272693	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x100bc277	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x11e28fc9	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x18eafdc6	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x22ac54a6	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x22d1fed2	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ef123fb	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2fc6ddb1	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x30161b36	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x30dd7c9e	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x448aea63	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d66666b	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5748b8e8	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b56a6f6	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b73b993	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x63622401	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x64feb530	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6b64490b	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x709c8bcb	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ac4b2a9	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x864681bf	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e68433b	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x92b5983c	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d4d0872	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9b01313	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9e7fac9	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb13bc506	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb582d882	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xca4b20f0	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbaca098	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcec3789e	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7284a13	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0889fd3	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe1ca72b5	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe7a087a5	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xea244b54	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xebc78514	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xedc37d07	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf027a27f	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bridge/bridge 0xb3eb22d7	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4b1ea1d3	ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x76dba959	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x94a9cfa0	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 0x450bbeaf	caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x473c3688	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0x4a237e57	cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x4cc4fdf7	cfcnfg_add_phy_layer
+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 0xedefbfc4	caif_disconnect_client
+EXPORT_SYMBOL net/can/can 0x22636578	can_rx_register
+EXPORT_SYMBOL net/can/can 0x40460b18	can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x42ab839f	can_proto_register
+EXPORT_SYMBOL net/can/can 0x5770524a	can_send
+EXPORT_SYMBOL net/can/can 0xaa6b5eb4	can_ioctl
+EXPORT_SYMBOL net/can/can 0xfd5430e2	can_rx_unregister
+EXPORT_SYMBOL net/ceph/libceph 0x047aad83	ceph_monc_init
+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 0x197effcb	ceph_osdc_release_request
+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 0x3abec91f	ceph_pr_addr
+EXPORT_SYMBOL net/ceph/libceph 0x3b051a2f	ceph_monc_got_mdsmap
+EXPORT_SYMBOL net/ceph/libceph 0x3d21529f	ceph_con_close
+EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a	ceph_destroy_options
+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 0x4b78517d	ceph_msg_new
+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 0x8fc12402	ceph_messenger_destroy
+EXPORT_SYMBOL net/ceph/libceph 0x91742005	ceph_buffer_new
+EXPORT_SYMBOL net/ceph/libceph 0x9af519d7	ceph_con_open
+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 0xafd4caa6	ceph_con_init
+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 0xb89a5bb5	ceph_con_send
+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 0xc993de45	ceph_msg_dump
+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 0xd64bec4b	ceph_pagelist_append
+EXPORT_SYMBOL net/ceph/libceph 0xd83831fa	ceph_messenger_create
+EXPORT_SYMBOL net/ceph/libceph 0xda0cbe8c	ceph_con_keepalive
+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 0x079c1871	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0d7390a6	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1494f0f3	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x51eb3493	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x75e2dfcf	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fa179db	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x84ec2afe	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa26acf42	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xae0bb6ed	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbc886619	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcb12a276	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcde29191	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xedbfa8bc	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x52671377	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x622a5284	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x88308861	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6a32efc7	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf0a44149	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xfc833a6e	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x023cc115	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x07d5bcc6	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x390907da	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4edb8ac4	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x80fe4719	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xacf30267	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb2c6f453	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x67cc2d9b	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xc1533084	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x24aa99c1	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x500ab80d	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5d66643c	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xffbde304	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x75724f5e	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xa6414300	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x24101091	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x27dbe47a	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1421541e	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x171c390c	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7151dca9	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x76f2ff35	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9fa48ad8	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb8732c89	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe89ff888	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xefd972fb	ircomm_disconnect_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 0x1c52753e	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x1de92823	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x26e6b539	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x298e0dc1	proc_irda
+EXPORT_SYMBOL net/irda/irda 0x2caea2e1	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x37dbf36c	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3b6d5f65	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x41749507	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x41d72c2a	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x42a9904d	irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa	irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x44c4e719	irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2	irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x46e4790e	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x50c212dd	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x50cec577	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x54f23703	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x5d087591	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x615ee918	irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x63fa183e	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x66ec526e	iriap_close
+EXPORT_SYMBOL net/irda/irda 0x66ef7db3	irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x6b043eba	irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6d495377	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x7042bc54	irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x75167d50	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x763e54a4	irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x76ef9f52	irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x7957f728	irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7b8c9ebd	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x7dabe31e	hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x7dfcc498	irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x7fb81606	irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x86b5f4ce	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x86baa932	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x8b69b459	hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xa307a827	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xa4548c32	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0xa749a3b4	iriap_open
+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 0xbe40ace9	irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbe54ac2d	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xc310cf21	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xc6293ddc	irlmp_open_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 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe6651b2d	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf7f1b521	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x780e7b9e	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x24a3bed2	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x6dc92bd3	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x7025b634	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x84b04498	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x8ee567ca	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xae9cdead	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xb069f813	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xe7006b5b	lapb_disconnect_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x05247095	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x17f4507a	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0x19bfdd8c	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c9c1495	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0x264df5e6	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x291ee79c	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x2d1195c6	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x376d9ec8	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x3a329780	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x3de27bca	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x457c7627	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x46ced6b5	ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x49f5b4b7	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x500c352b	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x55a125f0	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x589ff181	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x59b35085	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5	ieee80211_get_tkip_p1k_iv
+EXPORT_SYMBOL net/mac80211/mac80211 0x6138010b	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x6180bd93	ieee80211_rts_get
+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 0x68a01a7a	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x69da6880	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x707a3fea	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x72776951	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x73d304be	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x7610d075	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7d720ec7	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e	ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x8de2873f	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b40df0e	__ieee80211_get_radio_led_name
+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 0xad8ec6f7	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf5e31e1	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xb7f37286	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xba3e77b4	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0xba926a46	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xbfeb0494	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xc70cabd5	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xd34db6d8	ieee80211_register_hw
+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 0xe59dde15	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02	ieee80211_report_low_ack
+EXPORT_SYMBOL net/mac80211/mac80211 0xeef73c06	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xf20bc598	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xf34773a2	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5e603e2	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xf94ddbbf	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfaa00a35	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfc8d0cd7	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0xfd25bcc3	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x115f92fe	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1dbecfa5	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2b40b68c	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2f511406	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3970459c	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4497ba6b	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x736dab1e	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7bb30522	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa2778cfc	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb11545d4	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb76d83ca	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc096b865	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf11aa8b5	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5866cb2	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b7ad298	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa6e37e92	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xfb2fe71d	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf70d878f	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44	xt_compat_init_offsets
+EXPORT_SYMBOL net/netfilter/x_tables 0x45911d92	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x4e2bfcb8	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x60f02300	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x783b2c40	xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x92e4f114	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x9a2d3d5c	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xa12d36b3	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xa5a15480	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xc5671edf	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xe70e8215	xt_find_match
+EXPORT_SYMBOL net/nfc/nci/nci 0x0a69843b	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x0ffad0ef	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x22019e36	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x64918f37	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0xa0f618ca	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nfc 0x17bd0b1a	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x3f411087	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x547592ec	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0x7597483a	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0x77edd9c5	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0x7db4756c	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0xe33895b4	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xff69fb99	nfc_alloc_skb
+EXPORT_SYMBOL net/phonet/phonet 0x15a16e17	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x34dd25a4	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x3d99a846	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x5c52e458	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xcc8f98d0	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xe3fe47b8	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xe7d6fc04	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xf6eb25b7	pn_sock_get_port
+EXPORT_SYMBOL net/rds/rds 0x1c9be661	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1cb0b5d3	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x20e13511	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2e409aaa	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x38aa09f1	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x446405e0	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x54d7f259	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x553e1d7d	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6bfd2ed1	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88ce2d8e	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaa329bb0	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab3d0fd6	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd8bf7987	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdca91132	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xed3ea7b4	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf32da8e9	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x485531ee	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x2b00c344	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x874b0159	wimax_rfkill
+EXPORT_SYMBOL net/wimax/wimax 0xf9d84553	wimax_reset
+EXPORT_SYMBOL net/wireless/cfg80211 0x02d8430f	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x0359beac	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x07c6da35	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x08464b70	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x08cdf697	cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x26c47d3a	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c32e24a	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x3550701c	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x37047f58	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x378fb41c	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x3ae52549	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x3d4ab884	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x411ca591	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x499a5603	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x4a3e5e99	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d7111ae	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x546b6bc9	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x55e543df	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x55eec9f0	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x56df93d1	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x5a3fddfb	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ce9d5ed	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x5df60023	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x73c0767d	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x7da571df	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x80f7bbee	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x85eaa715	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0x8763432c	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x8b60d372	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x8d080cec	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x94de56d2	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9971b672	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x9a3fe653	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x9d3cf452	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f036b48	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xa0664892	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa3519d4f	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xa4178b5f	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xa5d198de	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xb6113215	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc2476e7b	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0xc33585d5	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xc429ff6f	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc7e7bb11	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xc942be6b	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xc9a129ce	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0xca18cf1b	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xdc1a3904	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0d77ddc	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xe39f620e	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xebe078d8	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xec58ec61	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xee005619	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbec7e57	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbf9ee20	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x26de83c9	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x454fa1fd	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x5e8ca823	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x6d0e9130	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0xa04a9afd	lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xd825c183	lib80211_register_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 0x002de09c	vfsmount_lock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x0037dceb	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x0046dabd	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x0056818a	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0x00726cce	pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x007cce1f	vga_put
+EXPORT_SYMBOL vmlinux 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0099a753	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x00a67e8a	mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x00c6ffae	ll_rw_block
+EXPORT_SYMBOL vmlinux 0x00cf71f3	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x00d23aa2	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x00dca601	serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x00e188de	unregister_console
+EXPORT_SYMBOL vmlinux 0x00e55f45	file_update_time
+EXPORT_SYMBOL vmlinux 0x00f10cb1	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x00f42699	files_lglock_global_unlock
+EXPORT_SYMBOL vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL vmlinux 0x01093ca5	cpu_info
+EXPORT_SYMBOL vmlinux 0x010cf85b	init_task
+EXPORT_SYMBOL vmlinux 0x012c5da9	skb_copy_bits
+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 0x01bf7932	soft_cursor
+EXPORT_SYMBOL vmlinux 0x01c3f3a0	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x01cefa6e	blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x01d19038	acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01e25a93	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x01e29791	__dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x01f37fab	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x0207c022	dev_crit
+EXPORT_SYMBOL vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL vmlinux 0x0237b57a	arch_unregister_cpu
+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 0x026fe903	generic_file_buffered_write
+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 0x02a7c854	softnet_data
+EXPORT_SYMBOL vmlinux 0x02c1e3e0	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x02d81845	audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x031f1fd8	kernel_accept
+EXPORT_SYMBOL vmlinux 0x032fcb28	console_stop
+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 0x03592ea0	security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0x0376fe09	md_register_thread
+EXPORT_SYMBOL vmlinux 0x037758f6	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x037a88ed	vfs_mkdir
+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 0x042e544b	path_put
+EXPORT_SYMBOL vmlinux 0x0461942f	d_genocide
+EXPORT_SYMBOL vmlinux 0x046f990c	generic_setxattr
+EXPORT_SYMBOL vmlinux 0x047c7224	__dst_destroy_metrics_generic
+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 0x04d38965	kernel_connect
+EXPORT_SYMBOL vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04dab654	skb_pull
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x04ec6022	pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0x04f279cc	unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x04feed1e	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x05058927	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x05147ba5	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x052e31df	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x054dd23a	compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x055ce0ad	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x05a0e8b9	pci_bus_type
+EXPORT_SYMBOL vmlinux 0x05af3f9c	d_add_ci
+EXPORT_SYMBOL vmlinux 0x05b3b22c	journal_force_commit_nested
+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 0x061b4946	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x061f4039	acpi_get_table_with_size
+EXPORT_SYMBOL vmlinux 0x062c8d33	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x064777ce	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x064783f8	proc_create_data
+EXPORT_SYMBOL vmlinux 0x0647853e	may_umount_tree
+EXPORT_SYMBOL vmlinux 0x0656c3df	pci_disable_link_state_locked
+EXPORT_SYMBOL vmlinux 0x06690a3b	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x0670e592	generic_file_splice_write
+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 0x069b92c2	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x06a485f2	__krealloc
+EXPORT_SYMBOL vmlinux 0x06be6e5b	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x06c1f1c7	simple_rename
+EXPORT_SYMBOL vmlinux 0x06cd5133	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x06ff506a	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x07017ce6	sget
+EXPORT_SYMBOL vmlinux 0x0717ba62	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12	generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x07442a29	vga_tryget
+EXPORT_SYMBOL vmlinux 0x07512fc7	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x0757f3d6	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x07696044	get_fs_type
+EXPORT_SYMBOL vmlinux 0x076a2864	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x077e5a49	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x079480be	pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+EXPORT_SYMBOL vmlinux 0x07a890c8	fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07cc4a5d	printk_timed_ratelimit
+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 0x08207e3f	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x086dd516	blk_integrity_is_initialized
+EXPORT_SYMBOL vmlinux 0x08936583	mpage_readpages
+EXPORT_SYMBOL vmlinux 0x0897287b	acpi_disable_all_gpes
+EXPORT_SYMBOL vmlinux 0x089f28c3	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x08ad86ac	mapping_tagged
+EXPORT_SYMBOL vmlinux 0x08b2fed7	igrab
+EXPORT_SYMBOL vmlinux 0x08c0b273	d_alloc_root
+EXPORT_SYMBOL vmlinux 0x08c24b37	elv_register_queue
+EXPORT_SYMBOL vmlinux 0x08c3a73c	tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x08cf2e85	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x08edd3ac	kthread_create_on_node
+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 0x09308484	idr_get_new
+EXPORT_SYMBOL vmlinux 0x0933aae1	efi_enabled
+EXPORT_SYMBOL vmlinux 0x0935e36e	pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x095314ea	skb_recycle
+EXPORT_SYMBOL vmlinux 0x0964bcb2	boot_cpu_data
+EXPORT_SYMBOL vmlinux 0x096b84b6	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x098431ba	acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09b0ba97	dquot_release
+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 0x09e2373b	kick_iocb
+EXPORT_SYMBOL vmlinux 0x09ec6489	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x09fac9af	abort_creds
+EXPORT_SYMBOL vmlinux 0x0a0735b3	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a4a1905	fb_pan_display
+EXPORT_SYMBOL vmlinux 0x0a4e78a4	read_cache_pages
+EXPORT_SYMBOL vmlinux 0x0a68e566	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x0a76d62c	input_close_device
+EXPORT_SYMBOL vmlinux 0x0a7b53b6	journal_errno
+EXPORT_SYMBOL vmlinux 0x0a7ccac3	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x0a810ee5	phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x0a8bd841	skb_push
+EXPORT_SYMBOL vmlinux 0x0aa41534	i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x0aac5118	blk_init_tags
+EXPORT_SYMBOL vmlinux 0x0aacd352	__kfifo_len_r
+EXPORT_SYMBOL vmlinux 0x0ac4563d	dst_alloc
+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 0x0ad72303	inet6_getname
+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 0x0b2291b1	inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x0b409bea	key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x0b7086d9	param_get_short
+EXPORT_SYMBOL vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b8492e4	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x0b8e5078	security_path_chmod
+EXPORT_SYMBOL vmlinux 0x0b9da97e	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL vmlinux 0x0bc68a69	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x0bd71b4b	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x0be2b239	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x0becd8cb	tcp_connect
+EXPORT_SYMBOL vmlinux 0x0bf8c53c	vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x0c01e169	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x0c095cb3	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0x0c17be8c	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x0c1c6037	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x0c23976a	vfs_writev
+EXPORT_SYMBOL vmlinux 0x0c3449b7	swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x0c3bd925	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x0c65e73c	scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c7b3a23	netdev_bonding_change
+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 0x0ca7b7a8	acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc2f35a	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x0cdf6247	da903x_query_status
+EXPORT_SYMBOL vmlinux 0x0cec3e2c	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x0cf122f8	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x0d0bd878	seq_puts
+EXPORT_SYMBOL vmlinux 0x0d3dda14	acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d652bb4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x0d6e711b	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x0d7605cc	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x0d7ed18a	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dd189ee	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x0dddec68	scsi_execute
+EXPORT_SYMBOL vmlinux 0x0dee8e87	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x0dfe6b10	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x0e1655f1	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x0e20d739	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0e2fa1fb	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x0e4fb4b0	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e705e5d	skb_make_writable
+EXPORT_SYMBOL vmlinux 0x0e73d2a9	tcp_close
+EXPORT_SYMBOL vmlinux 0x0ebebe14	groups_free
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b	acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0ed918a7	kern_path
+EXPORT_SYMBOL vmlinux 0x0ef2a8bd	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x0f1631e4	otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x0f2157ea	ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x0f30d588	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fca4cba	scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x0fd00a68	acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fd38c8e	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x0fd5b0a6	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x0ff13254	no_llseek
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x1000f051	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x101c3932	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x10272c6d	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x107e03b0	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x1085568b	ping_prot
+EXPORT_SYMBOL vmlinux 0x1089421b	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x10b3b4da	security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x10b5da7c	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x10b96e2d	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10e127ce	writeback_inodes_sb
+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 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 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 0x11b55794	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x11d57733	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x11d754d0	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x11dc143f	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x11e2ec12	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x11f160d6	mntget
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fd3ba1	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x1212584f	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x121f0d45	tty_port_put
+EXPORT_SYMBOL vmlinux 0x1228d28a	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x123a796b	cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x1245ed39	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x1276969c	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x128be7e3	sock_release
+EXPORT_SYMBOL vmlinux 0x129de341	wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x12a38747	usleep_range
+EXPORT_SYMBOL vmlinux 0x12b72e64	mount_ns
+EXPORT_SYMBOL vmlinux 0x12eaaa8e	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x12f5c779	scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x130db1fd	vga_switcheroo_unregister_client
+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 0x13905dbf	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x13962d44	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x13a4d16c	dma_find_channel
+EXPORT_SYMBOL vmlinux 0x13b65a01	x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13e2659e	blk_make_request
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x142b218f	set_device_ro
+EXPORT_SYMBOL vmlinux 0x1430e6e0	unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1447b833	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0x144fcac8	seq_release_private
+EXPORT_SYMBOL vmlinux 0x1469077e	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x1482e800	rt6_lookup
+EXPORT_SYMBOL vmlinux 0x1483a0bc	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x149a0346	cdev_add
+EXPORT_SYMBOL vmlinux 0x14e7ca7c	alloc_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x151d4b4d	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x15405b6c	d_path
+EXPORT_SYMBOL vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x1551dc51	bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x15705d03	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x157411f5	seq_read
+EXPORT_SYMBOL vmlinux 0x1577caba	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x1578571e	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x15b9f439	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x15d74a18	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0x15f8fd8d	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x15fb79c2	mmc_hw_reset
+EXPORT_SYMBOL vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x162e5510	filp_open
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x1637ff0f	_raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x164ad225	empty_aops
+EXPORT_SYMBOL vmlinux 0x164f8144	dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x1666a786	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x166f0d5a	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x1679872f	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL vmlinux 0x168f1082	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x16b837e6	kernel_bind
+EXPORT_SYMBOL vmlinux 0x16bb5f82	xfrm_state_walk
+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 0x171130b7	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x17115cde	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x17124eae	ht_create_irq
+EXPORT_SYMBOL vmlinux 0x1715c8f7	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x17203b43	max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x173d59e1	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x174f0da6	agp_backend_release
+EXPORT_SYMBOL vmlinux 0x1768ba7f	free_netdev
+EXPORT_SYMBOL vmlinux 0x176b441f	uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x1790d76b	_raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x1799879d	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x17b64d09	dqstats
+EXPORT_SYMBOL vmlinux 0x17c3f237	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x17d2f246	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e07ff4	noop_qdisc
+EXPORT_SYMBOL vmlinux 0x17e93562	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1803ce3d	journal_forget
+EXPORT_SYMBOL vmlinux 0x180a16a3	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x180b4d43	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x1818aba4	tcp_enter_memory_pressure
+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 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x189b6bac	memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18af1516	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x18b72573	register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x18c799a6	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x18d5fa86	tcp_prot
+EXPORT_SYMBOL vmlinux 0x18d89970	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x18de1c7b	xfrm_state_flush
+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 0x19901ec5	dev_get_flags
+EXPORT_SYMBOL vmlinux 0x1997c193	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x1997e248	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19c56540	setattr_copy
+EXPORT_SYMBOL vmlinux 0x1a1209be	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x1a1bca9d	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a4c24a2	mmc_free_host
+EXPORT_SYMBOL vmlinux 0x1a4f1852	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x1a63af34	vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a937674	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x1accced5	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x1ace138d	bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad4033e	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x1ad6b607	set_user_nice
+EXPORT_SYMBOL vmlinux 0x1ae14ef5	_raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b0a1d31	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x1b197b9b	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x1b19af65	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x1b386fbf	kobject_init
+EXPORT_SYMBOL vmlinux 0x1b5945fc	vga_client_register
+EXPORT_SYMBOL vmlinux 0x1b6314fd	in_aton
+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 0x1c053e49	__dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x1c06fec6	neigh_event_ns
+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 0x1c1f7bb5	d_set_d_op
+EXPORT_SYMBOL vmlinux 0x1c3e512c	input_free_device
+EXPORT_SYMBOL vmlinux 0x1c64ed86	textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x1c75a78f	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x1c8a04b0	acpi_reset
+EXPORT_SYMBOL vmlinux 0x1cbad0e3	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cdccda9	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x1cdd9e13	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d55b5f3	tty_kref_put
+EXPORT_SYMBOL vmlinux 0x1d850c52	security_file_permission
+EXPORT_SYMBOL vmlinux 0x1d86e2dd	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x1d8e1143	blk_register_region
+EXPORT_SYMBOL vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dca4f0f	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+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 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e37e619	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0x1e3c480a	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e80e2d0	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1efd7046	agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x1f00031d	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x1f17d1aa	inet_sendpage
+EXPORT_SYMBOL vmlinux 0x1f1ad837	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x1f35893a	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x1f54646d	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x1f661532	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x1f798989	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0x1f8da9cc	scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0x1f92c266	bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x1f95cbff	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x1fc1dfdd	pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x1fcde2df	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x1fd07fff	kdb_grepping_flag
+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 0x20128589	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x2016e54f	md_flush_request
+EXPORT_SYMBOL vmlinux 0x2036a1b7	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x203c3940	inet_accept
+EXPORT_SYMBOL vmlinux 0x204f0c3d	pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x2068b3c7	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x20854027	nf_unregister_sockopt
+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 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x20ecf60f	inet_bind
+EXPORT_SYMBOL vmlinux 0x20f36aaf	blkdev_put
+EXPORT_SYMBOL vmlinux 0x20f37ed2	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x20f39520	ns_capable
+EXPORT_SYMBOL vmlinux 0x210c2fef	unload_nls
+EXPORT_SYMBOL vmlinux 0x211767c7	ida_destroy
+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 0x21b8912a	tty_register_device
+EXPORT_SYMBOL vmlinux 0x21bdd271	kill_pgrp
+EXPORT_SYMBOL vmlinux 0x21cb7e58	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x21e0ea22	acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f9d321	dev_driver_string
+EXPORT_SYMBOL vmlinux 0x222d5b67	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL vmlinux 0x222ed0c2	security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x22381fa2	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2288378f	system_state
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22eb79a4	pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x22fd9ad0	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x23039724	page_symlink
+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 0x235417ba	netdev_alert
+EXPORT_SYMBOL vmlinux 0x236a8e6d	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x236c8c64	memcpy
+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 0x23c6af38	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23e950e2	abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2402f0b4	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x24055ab3	writeback_in_progress
+EXPORT_SYMBOL vmlinux 0x241d345b	rtnl_configure_link
+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 0x24968c72	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x24a61d80	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x24ad3705	deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x24b13606	input_mt_report_finger_count
+EXPORT_SYMBOL vmlinux 0x24b5556e	__rta_fill
+EXPORT_SYMBOL vmlinux 0x24bba6db	udplite_prot
+EXPORT_SYMBOL vmlinux 0x24f41ee7	kmem_cache_alloc_trace
+EXPORT_SYMBOL vmlinux 0x24f934db	register_nls
+EXPORT_SYMBOL vmlinux 0x24fdac79	wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250340a5	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x2511771d	x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x2512b0c1	phy_driver_register
+EXPORT_SYMBOL vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL vmlinux 0x252a130a	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x253ca91b	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x254101c7	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x25623446	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x2578079c	load_nls
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25967ba7	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25e0494e	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0x25e08df2	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x25eb8630	vmap
+EXPORT_SYMBOL vmlinux 0x25ec1b28	strlen
+EXPORT_SYMBOL vmlinux 0x25f3cd7d	uart_register_driver
+EXPORT_SYMBOL vmlinux 0x26083ec1	udp_proc_register
+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 0x2640fbdd	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x2642e7ce	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x2643becf	__bforget
+EXPORT_SYMBOL vmlinux 0x26579475	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x266788a7	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x267765d2	dcb_getapp
+EXPORT_SYMBOL vmlinux 0x2685c3d7	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26b64321	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x26be6b76	gnet_stats_copy_basic
+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 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 0x27375154	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x27386122	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x2739ce5a	security_file_mmap
+EXPORT_SYMBOL vmlinux 0x274d08dc	__kfifo_dma_out_prepare
+EXPORT_SYMBOL vmlinux 0x2753b952	ppp_input_error
+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 0x27bf530b	d_drop
+EXPORT_SYMBOL vmlinux 0x27c33efe	csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x27cbe3e7	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x27cdcfd7	fput
+EXPORT_SYMBOL vmlinux 0x27d782b1	km_query
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x27f0a60a	user_path_at
+EXPORT_SYMBOL vmlinux 0x27f30289	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x280fa263	thaw_process
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x2820c39e	scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x28343bad	scnprintf
+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 0x2892d94e	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28d2195e	vfs_write
+EXPORT_SYMBOL vmlinux 0x28d8c836	compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0x28f1a453	dev_alert
+EXPORT_SYMBOL vmlinux 0x292093f4	native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x2939e057	dev_addr_del
+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 0x29c88d55	register_filesystem
+EXPORT_SYMBOL vmlinux 0x29d456fe	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0x29dc7da0	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x29e0fcf9	mii_link_ok
+EXPORT_SYMBOL vmlinux 0x29e1b496	serio_close
+EXPORT_SYMBOL vmlinux 0x2a2abf73	bio_clone
+EXPORT_SYMBOL vmlinux 0x2a2fa556	mnt_pin
+EXPORT_SYMBOL vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL vmlinux 0x2a32c3f1	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x2a37d074	dma_pool_free
+EXPORT_SYMBOL vmlinux 0x2a6e6109	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x2a78a62f	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x2a7e0b1d	i2c_release_client
+EXPORT_SYMBOL vmlinux 0x2abb7e88	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x2aecd115	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x2aef3573	make_EII_client
+EXPORT_SYMBOL vmlinux 0x2af59102	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b3aaa43	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x2b43ce6f	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0x2b809c8e	dev_mc_del_global
+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 0x2bc969b2	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x2bd4c039	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x2bd9c1bc	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x2be3204c	is_container_init
+EXPORT_SYMBOL vmlinux 0x2bfeb410	acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c18b4e8	udp_ioctl
+EXPORT_SYMBOL vmlinux 0x2c231c04	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL vmlinux 0x2c31ae2b	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x2c6b1568	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x2c8def60	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x2cb34b45	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x2cd28ca2	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x2ce75672	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x2cf99e04	free_inode_nonrcu
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d38e159	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x2d3db2b7	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x2d5528c9	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d669f11	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x2d75188b	mdiobus_unregister
+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 0x2dbe51a5	ida_get_new
+EXPORT_SYMBOL vmlinux 0x2dc1982f	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dde7e1c	pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x2de79ebb	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x2dedc4c2	acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76	rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2dfb6cdb	generic_write_end
+EXPORT_SYMBOL vmlinux 0x2e1d1647	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x2e25f4f3	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0	sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e37f506	d_validate
+EXPORT_SYMBOL vmlinux 0x2e527fcb	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x2e59fc7a	ab8500_gpadc_get
+EXPORT_SYMBOL vmlinux 0x2e5a704c	udp_table
+EXPORT_SYMBOL vmlinux 0x2e5c7ad5	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x2e62a278	take_over_console
+EXPORT_SYMBOL vmlinux 0x2e815ac5	kset_unregister
+EXPORT_SYMBOL vmlinux 0x2ee91b51	set_pages_wb
+EXPORT_SYMBOL vmlinux 0x2eeceb42	sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x2ef631cb	tcf_exts_destroy
+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 0x2f0dc836	filp_close
+EXPORT_SYMBOL vmlinux 0x2f33ffb3	kill_fasync
+EXPORT_SYMBOL vmlinux 0x2f5c447f	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x2f5cd5de	pci_release_regions
+EXPORT_SYMBOL vmlinux 0x2f773401	generic_pipe_buf_map
+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 0x2fd51568	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x2fe45b6f	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x2feffd9f	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x2ff063b5	acpi_get_name
+EXPORT_SYMBOL vmlinux 0x2fffb216	tcp_poll
+EXPORT_SYMBOL vmlinux 0x3016cec4	sock_no_connect
+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 0x3069b0c2	agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x306bc77a	simple_readpage
+EXPORT_SYMBOL vmlinux 0x3079ec27	generic_setlease
+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 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30efaf69	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x30f18b1e	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x310487ce	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0x312093d1	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x312bed7b	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x314fc766	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x315a1094	filemap_fault
+EXPORT_SYMBOL vmlinux 0x315e17a7	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x31948a14	dma_ops
+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 0x31f23c41	init_buffer
+EXPORT_SYMBOL vmlinux 0x31f82605	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x3205845e	generic_write_sync
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x3255a65a	search_binary_handler
+EXPORT_SYMBOL vmlinux 0x325bc5f1	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0x325c0a62	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL vmlinux 0x327af8b8	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x32a8eb28	devm_iounmap
+EXPORT_SYMBOL vmlinux 0x32b6af26	pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x32debb16	cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x32eeaded	_raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x334e5f5e	skb_append
+EXPORT_SYMBOL vmlinux 0x3396e5d7	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL vmlinux 0x33e6e6c8	pci_dev_put
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL vmlinux 0x33f96c1e	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x341cbed2	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x34346635	unregister_key_type
+EXPORT_SYMBOL vmlinux 0x345ca6b0	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x3472eabc	journal_stop
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34d2caad	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x34e5a92e	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x34f8511b	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0x34fc2d1d	bioset_create
+EXPORT_SYMBOL vmlinux 0x3510e2db	wake_up_process
+EXPORT_SYMBOL vmlinux 0x351de130	posix_lock_file
+EXPORT_SYMBOL vmlinux 0x35225ea3	down_write_trylock
+EXPORT_SYMBOL vmlinux 0x3527b4cf	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x355b345a	i2c_use_client
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x359c5a64	scsi_print_result
+EXPORT_SYMBOL vmlinux 0x35a56833	drop_super
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35c80df7	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x35c8cc02	tty_free_termios
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35f32ff3	padata_alloc
+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 0x361b63b0	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x361cb895	netif_rx
+EXPORT_SYMBOL vmlinux 0x3629b076	vfs_rename
+EXPORT_SYMBOL vmlinux 0x36331a75	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x3643b254	blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x3657d0d6	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL vmlinux 0x368a52d5	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x3693ade5	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x36d746fc	put_tty_driver
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f96c7b	pipe_to_file
+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 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374e87c5	fsync_bdev
+EXPORT_SYMBOL vmlinux 0x3763c724	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x376a7c5e	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x3784adff	register_netdevice
+EXPORT_SYMBOL vmlinux 0x379f5837	param_set_invbool
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37dbdcfc	d_invalidate
+EXPORT_SYMBOL vmlinux 0x37ea921e	vfsmount_lock_local_lock_cpu
+EXPORT_SYMBOL vmlinux 0x381505c2	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL vmlinux 0x38356c9f	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x384173a1	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x38457ae9	skb_trim
+EXPORT_SYMBOL vmlinux 0x38588830	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x38626706	sg_miter_next
+EXPORT_SYMBOL vmlinux 0x387a323d	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x3886bd0b	max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x388f9128	xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x389bfe0d	rtc_lock
+EXPORT_SYMBOL vmlinux 0x38a087ec	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38bc6149	mem_cgroup_update_page_stat
+EXPORT_SYMBOL vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL vmlinux 0x38f37f5c	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x3906eb11	mii_check_link
+EXPORT_SYMBOL vmlinux 0x390f3b09	__dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x39262f96	pipe_unlock
+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 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x3985360c	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x39a055f3	acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0x39a6a340	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x39baf975	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x39bb372f	dq_data_lock
+EXPORT_SYMBOL vmlinux 0x39d2b703	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x39db0046	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x39e684e8	dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a2d5d29	mfd_cell_disable
+EXPORT_SYMBOL vmlinux 0x3a2efd34	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL vmlinux 0x3a3ecffa	iget_failed
+EXPORT_SYMBOL vmlinux 0x3a43aa0d	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x3a4fec59	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x3a541b4a	pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x3a6273ab	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x3a6b6586	netif_skb_features
+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 0x3ada2bec	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x3b00559f	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b419fc8	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x3b437079	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x3b474404	dump_seek
+EXPORT_SYMBOL vmlinux 0x3b4ceb4a	up_write
+EXPORT_SYMBOL vmlinux 0x3b5acd0b	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x3b63c8a2	phy_print_status
+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 0x3b9b351f	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x3ba54fe5	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x3babb38a	dev_change_flags
+EXPORT_SYMBOL vmlinux 0x3bb6b3db	netpoll_send_skb_on_dev
+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 0x3bd446da	netdev_update_features
+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 0x3c78e159	pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c8ba4b5	security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x3c94af03	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca49dfb	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3ceec3ec	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x3cfa16f8	blk_queue_physical_block_size
+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 0x3d8234e4	buffer_migrate_page
+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 0x3dc144d0	input_mt_init_slots
+EXPORT_SYMBOL vmlinux 0x3dc5af60	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e0c2b66	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x3e0e9023	param_set_long
+EXPORT_SYMBOL vmlinux 0x3e179b77	d_instantiate
+EXPORT_SYMBOL vmlinux 0x3e2a9bb1	dev_uc_del
+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 0x3e5ee960	ppp_input
+EXPORT_SYMBOL vmlinux 0x3e72c290	dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x3e81be4e	input_unregister_device
+EXPORT_SYMBOL vmlinux 0x3e869bb1	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x3e882943	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e94a893	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x3ec28389	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ee3101f	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x3f0309cf	journal_clear_err
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f301577	agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0x3f324381	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f514190	compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x3f517c4d	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x3f71faa1	mempool_create
+EXPORT_SYMBOL vmlinux 0x3f83165d	phy_connect
+EXPORT_SYMBOL vmlinux 0x3fa913da	strspn
+EXPORT_SYMBOL vmlinux 0x3fb5b290	file_open_root
+EXPORT_SYMBOL vmlinux 0x3fc52f6c	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x3fd70534	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x3fda31c2	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x3fdc4955	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x3fe9389d	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x3fec048f	sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ff870d0	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x40134eef	get_user_pages
+EXPORT_SYMBOL vmlinux 0x40256835	complete_all
+EXPORT_SYMBOL vmlinux 0x40280dbe	ip6_dst_hoplimit
+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 0x40806776	ip_nat_decode_session
+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 0x40bc02d0	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x40c00933	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x40c7fe54	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x40c89d46	acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x40cc37c8	arp_xmit
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40d62e69	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x40f11b28	pcim_iomap
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x4115cc99	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x4162a206	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41aed4ef	agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0x420546a6	alloc_fddidev
+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 0x4245acdf	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x4251293d	tty_port_tty_set
+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 0x42b7f274	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x42c8de35	ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42d3d51c	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x42e4759c	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x42ff2205	I_BDEV
+EXPORT_SYMBOL vmlinux 0x43003d60	tr_type_trans
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x430c6a86	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4313bf36	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x43261dca	_raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0x43385ad9	acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x43493d5e	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x43754927	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x438741bb	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x438a3694	elv_rb_add
+EXPORT_SYMBOL vmlinux 0x439347d3	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43ac4f4f	security_path_rename
+EXPORT_SYMBOL vmlinux 0x43b50f56	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x43bfeae7	block_commit_write
+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 0x4400440d	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x440c1de5	lookup_one_len
+EXPORT_SYMBOL vmlinux 0x44205bcb	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x4438aa4f	fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x4440963c	sock_no_getname
+EXPORT_SYMBOL vmlinux 0x446a23a1	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x446f25a1	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x447dadd6	padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x44a81d5f	acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL vmlinux 0x44b098a2	submit_bh
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44c292ce	kernel_read
+EXPORT_SYMBOL vmlinux 0x44cfe900	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x44dc7f3b	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x44e412aa	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x45044497	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL vmlinux 0x450f621c	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x45199f91	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x45230835	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x452ebe86	schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x45357e96	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x453c8403	pci_msi_enabled
+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 0x45de1a2b	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x45ea21fd	xfrm_input
+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 0x466b1461	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x46af2cf9	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x46b67693	hex2bin
+EXPORT_SYMBOL vmlinux 0x46b67a2b	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x46c47fb6	__node_distance
+EXPORT_SYMBOL vmlinux 0x46c9b839	send_sig_info
+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 0x47325350	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x473c63e1	proto_unregister
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x47518ffe	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x475f010b	acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x477b734c	elv_rb_del
+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 0x47a58f97	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x47aa267a	dentry_open
+EXPORT_SYMBOL vmlinux 0x47b3a74f	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x47b3f862	radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x47b6a10f	ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c081a0	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x47c7b0d2	cpu_number
+EXPORT_SYMBOL vmlinux 0x47f1b74e	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x47fd2596	eth_header
+EXPORT_SYMBOL vmlinux 0x47ff79ff	netif_stacked_transfer_operstate
+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 0x4820eb04	n_tty_compat_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x483978db	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x484141a7	path_is_under
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4870969d	sock_wfree
+EXPORT_SYMBOL vmlinux 0x48958510	dev_load
+EXPORT_SYMBOL vmlinux 0x48b280f4	agp_bridge
+EXPORT_SYMBOL vmlinux 0x48d2141d	misc_register
+EXPORT_SYMBOL vmlinux 0x49282344	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x4964787b	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x498f7277	find_get_page
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b171d8	__page_symlink
+EXPORT_SYMBOL vmlinux 0x49c0111e	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x49d8406b	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x49e92677	padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x4a00dd00	set_disk_ro
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a411abe	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x4a61c289	pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x4a6f7694	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x4a9609af	tty_vhangup
+EXPORT_SYMBOL vmlinux 0x4a97bcdd	uart_resume_port
+EXPORT_SYMBOL vmlinux 0x4a9e858f	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x4aa1c2b4	agp_enable
+EXPORT_SYMBOL vmlinux 0x4aad52d7	mempool_free
+EXPORT_SYMBOL vmlinux 0x4ab7cc19	cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x4abba35f	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x4acd93d3	release_resource
+EXPORT_SYMBOL vmlinux 0x4ad55aa6	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x4ad903d0	phy_stop_interrupts
+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 0x4b06d2e7	complete
+EXPORT_SYMBOL vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b093ba5	dquot_commit
+EXPORT_SYMBOL vmlinux 0x4b16d23a	phy_register_fixup_for_id
+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 0x4b670ab4	udp_poll
+EXPORT_SYMBOL vmlinux 0x4b76845a	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0x4b9daba5	write_inode_now
+EXPORT_SYMBOL vmlinux 0x4b9e9e65	pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x4ba94aff	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x4bbacf1b	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0x4bbb797d	ip_fragment
+EXPORT_SYMBOL vmlinux 0x4c1182cb	bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c11ca9f	efi
+EXPORT_SYMBOL vmlinux 0x4c15eb2f	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x4c22b828	__dst_free
+EXPORT_SYMBOL vmlinux 0x4c4c956e	nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c4fef19	kernel_stack
+EXPORT_SYMBOL vmlinux 0x4c683578	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4ca0604e	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cc53557	sk_dst_check
+EXPORT_SYMBOL vmlinux 0x4cd6a05a	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x4cf65b02	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x4cf6f784	intel_gmch_remove
+EXPORT_SYMBOL vmlinux 0x4d00a3c6	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x4d0f2a86	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x4d1023f8	mempool_resize
+EXPORT_SYMBOL vmlinux 0x4d571d12	inet_frag_evictor
+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 0x4dcb6675	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x4dcf3781	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x4dda726b	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4def9388	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfa4696	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e122f07	writeback_inodes_sb_nr_if_idle
+EXPORT_SYMBOL vmlinux 0x4e21999c	acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e225071	compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL vmlinux 0x4e36656a	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x4e5c5549	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x4e5ea21c	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x4e6c2ccc	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e7c3e54	fb_set_var
+EXPORT_SYMBOL vmlinux 0x4ec7875a	arp_find
+EXPORT_SYMBOL vmlinux 0x4ed2f809	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x4ed73e64	single_release
+EXPORT_SYMBOL vmlinux 0x4edb0146	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x4edd72f7	block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee0c478	simple_empty
+EXPORT_SYMBOL vmlinux 0x4f10507e	fb_show_logo
+EXPORT_SYMBOL vmlinux 0x4f178784	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f27f9f9	kill_litter_super
+EXPORT_SYMBOL vmlinux 0x4f283db0	framebuffer_release
+EXPORT_SYMBOL vmlinux 0x4f3073c9	__ht_create_irq
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f476e96	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5e3adc	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x4f6b400b	_copy_from_user
+EXPORT_SYMBOL vmlinux 0x4f783f30	acpi_read
+EXPORT_SYMBOL vmlinux 0x4f7ffbcc	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0x4f8b5ddb	_copy_to_user
+EXPORT_SYMBOL vmlinux 0x4f909d9d	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x4faa226e	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x4fbaa16f	__cleancache_flush_inode
+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 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50486393	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x50529870	acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x50720c5f	snprintf
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50cc094a	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x50d0cadd	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x50d3c7e3	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x50e02260	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x50ea08b5	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0x510c2535	xz_dec_run
+EXPORT_SYMBOL vmlinux 0x51180830	vfs_readdir
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511ab427	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x51510f6e	compat_ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x515144bd	task_nice
+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 0x518460aa	dump_write
+EXPORT_SYMBOL vmlinux 0x518d2fe4	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x519fd146	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x51b6b99c	compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x51c76288	mdiobus_write
+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 0x51ddf090	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x51e48b54	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x52026cdf	security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19	acpi_get_data
+EXPORT_SYMBOL vmlinux 0x5232fa8b	xfrm_lookup
+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 0x526787f4	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x52760ca9	getnstimeofday
+EXPORT_SYMBOL vmlinux 0x5295f485	posix_acl_from_xattr
+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 0x52f16193	blk_insert_request
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x5314151e	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x53174093	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531	mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5342e12b	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x5346716e	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x536cc511	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x537ec83e	tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x5389d5b1	unregister_netdevice_queue
+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 0x53d8427c	___pskb_trim
+EXPORT_SYMBOL vmlinux 0x53e0001a	generic_getxattr
+EXPORT_SYMBOL vmlinux 0x53f04062	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x53f1af44	sock_no_getsockopt
+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 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x54568b75	register_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x545d15d8	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x5460c4c1	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x547e55a0	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x54954347	dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x5496a23e	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54bae130	simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x54c66364	inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x54d80d26	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x54dcbab0	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x54e2b167	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x54e59841	open_exec
+EXPORT_SYMBOL vmlinux 0x54e617b4	mmc_add_host
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54e75f5f	pid_task
+EXPORT_SYMBOL vmlinux 0x54edaa44	intel_gtt_map_memory
+EXPORT_SYMBOL vmlinux 0x5509987b	do_sync_read
+EXPORT_SYMBOL vmlinux 0x550d5e51	iget_locked
+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 0x5578b195	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x557c0dab	mfd_cell_enable
+EXPORT_SYMBOL vmlinux 0x558256c2	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x559093a6	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a1620d	kobject_get
+EXPORT_SYMBOL vmlinux 0x55cab84b	register_qdisc
+EXPORT_SYMBOL vmlinux 0x55d60a56	xfrm_state_delete_tunnel
+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 0x5642361a	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x565b3c6f	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x565cfac9	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x5669b49f	flush_signals
+EXPORT_SYMBOL vmlinux 0x5694ea32	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x570158f1	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x57089f98	__register_chrdev
+EXPORT_SYMBOL vmlinux 0x572597bf	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5735ae1e	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57608851	replace_mount_options
+EXPORT_SYMBOL vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57909ede	pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0x57a6ccd0	down_read
+EXPORT_SYMBOL vmlinux 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57b6ef56	dev_mc_init
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x5826a723	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x583cb228	ipv6_chk_prefix
+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 0x5862a659	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x5881ac8f	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x58876848	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x588ee1ae	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x5892ef56	pci_select_bars
+EXPORT_SYMBOL vmlinux 0x58da0801	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x58dd4da4	inet_release
+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 0x5966d064	__seq_open_private
+EXPORT_SYMBOL vmlinux 0x59bc9609	acpi_write_bit_register
+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 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x5a07adc8	pskb_copy
+EXPORT_SYMBOL vmlinux 0x5a0f2d84	journal_extend
+EXPORT_SYMBOL vmlinux 0x5a2c7c08	tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x5a2ca7a2	sk_stream_error
+EXPORT_SYMBOL vmlinux 0x5a315474	pci_dev_get
+EXPORT_SYMBOL vmlinux 0x5a34a45c	__kmalloc
+EXPORT_SYMBOL vmlinux 0x5a361e17	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3	simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a6b789f	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a85328e	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x5a903436	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x5ab05971	generic_make_request
+EXPORT_SYMBOL vmlinux 0x5ac376a5	acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5aca02c4	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x5acf2a23	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x5aeb145f	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x5b15736c	phy_device_free
+EXPORT_SYMBOL vmlinux 0x5b161eeb	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x5b19ee99	x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0x5b51c6a7	acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b855409	compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x5ba3280b	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x5bb5ea91	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x5bc8b828	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x5bd0436e	keyring_clear
+EXPORT_SYMBOL vmlinux 0x5be0c831	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x5bfac8b3	mdiobus_free
+EXPORT_SYMBOL vmlinux 0x5c176503	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x5c1b1c8b	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0x5c26deca	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x5c301236	scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x5c3edd59	_raw_write_unlock_bh
+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 0x5ce1feb4	d_find_alias
+EXPORT_SYMBOL vmlinux 0x5d3261f5	neigh_create
+EXPORT_SYMBOL vmlinux 0x5d5ad540	follow_down_one
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d74dbcf	pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5db8c089	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x5de12c84	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x5e266aca	mmc_can_secure_erase_trim
+EXPORT_SYMBOL vmlinux 0x5e2d2687	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0x5e4f8fe8	journal_flush
+EXPORT_SYMBOL vmlinux 0x5e625857	dm_get_device
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e920590	blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5e9692fd	pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x5ea20e3f	page_zero_new_buffers
+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 0x5eb8dad2	nobh_write_begin
+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 0x5edc4422	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee2e031	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x5eec1a6e	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f110497	inet_frag_find
+EXPORT_SYMBOL vmlinux 0x5f14cc01	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x5f263eb2	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x5f2a0641	blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x5f323f62	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x5f34259f	__blk_run_queue
+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 0x5f85312b	neigh_update
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fccf955	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x5fd2298e	strnstr
+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 0x600d000b	first_ec
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x6020540b	scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x6028abd4	blk_rq_init
+EXPORT_SYMBOL vmlinux 0x602ed00d	acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x6034f29e	bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x606816d5	blk_end_request_all
+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 0x607bfebe	agp_free_page_array
+EXPORT_SYMBOL vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL vmlinux 0x60c4be35	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x60d27b5b	key_revoke
+EXPORT_SYMBOL vmlinux 0x60f21583	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x612a668e	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x61368179	inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x6144a3aa	mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x6159bf99	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x61770c2f	fb_get_mode
+EXPORT_SYMBOL vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL vmlinux 0x619e82bd	kobject_put
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c0cc07	tcp_seq_open
+EXPORT_SYMBOL vmlinux 0x61c3fe71	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0x61cacffe	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x61d3dd22	md_check_recovery
+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 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL vmlinux 0x622a3b60	security_path_link
+EXPORT_SYMBOL vmlinux 0x6237f6b5	acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x6246abce	kmem_cache_alloc_node_trace
+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 0x62a2b726	ip_options_compile
+EXPORT_SYMBOL vmlinux 0x62b5bbad	mpage_readpage
+EXPORT_SYMBOL vmlinux 0x62d895f3	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x62dad99a	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x6316525f	zero_fill_bio
+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 0x63516055	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0x6353ad2b	init_special_inode
+EXPORT_SYMBOL vmlinux 0x6353b7e7	scsi_init_io
+EXPORT_SYMBOL vmlinux 0x636a5691	acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x636c30f0	get_phy_device
+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 0x63d9f7ec	tcf_em_tree_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 0x640fdd90	netdev_info
+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 0x6478134c	ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x6483b2a4	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x6484a487	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x6492adf2	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a92a22	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x64bb5772	jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x64eae7ad	set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x651a3e53	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL vmlinux 0x651abc77	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x65291cff	timekeeping_inject_offset
+EXPORT_SYMBOL vmlinux 0x653de96f	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67	dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6545033c	blk_put_request
+EXPORT_SYMBOL vmlinux 0x655f1ab0	set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6569861f	ppp_register_compressor
+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 0x659f5a7b	journal_set_features
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x6605f97f	flex_array_clear
+EXPORT_SYMBOL vmlinux 0x6612a771	bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x663438e1	tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x663dadc8	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x664d0f32	blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x6674ce38	vc_resize
+EXPORT_SYMBOL vmlinux 0x66795b2b	pci_save_state
+EXPORT_SYMBOL vmlinux 0x668da8d5	zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66a67dab	flex_array_shrink
+EXPORT_SYMBOL vmlinux 0x66abebb6	blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x66c3df58	invalidate_partition
+EXPORT_SYMBOL vmlinux 0x66c66292	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x66cc0ebc	mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x66d0ee54	vfsmount_lock_global_unlock
+EXPORT_SYMBOL vmlinux 0x66df5c25	d_splice_alias
+EXPORT_SYMBOL vmlinux 0x67053080	current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670a7f23	blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x671da5f8	compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x672144bd	strlcpy
+EXPORT_SYMBOL vmlinux 0x6729d3df	__get_user_4
+EXPORT_SYMBOL vmlinux 0x67353c54	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x673f815e	agp_bridges
+EXPORT_SYMBOL vmlinux 0x67478e7c	dput
+EXPORT_SYMBOL vmlinux 0x67507862	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x675a9f84	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x675d658b	devm_ioremap
+EXPORT_SYMBOL vmlinux 0x67656293	journal_abort
+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 0x67a7e492	xfrm_policy_destroy
+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 0x680551e9	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x68390e4b	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x683d2b68	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x6842b4a3	iunique
+EXPORT_SYMBOL vmlinux 0x68608f65	skb_split
+EXPORT_SYMBOL vmlinux 0x6878f62a	__inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x689097ee	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x68aca4ad	down
+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 0x691d10e8	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x692bd118	agp_free_memory
+EXPORT_SYMBOL vmlinux 0x692be294	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x692f895c	mdiobus_register
+EXPORT_SYMBOL vmlinux 0x6938ed88	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x693bb359	__scm_send
+EXPORT_SYMBOL vmlinux 0x6940ed2e	mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x69506579	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x695bc3a6	journal_start_commit
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x69771d82	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x69856324	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL vmlinux 0x699795cc	dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x6997c261	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x69a0ca7d	iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a13ef9	tty_throttle
+EXPORT_SYMBOL vmlinux 0x69a358a6	iomem_resource
+EXPORT_SYMBOL vmlinux 0x69ad2f20	kstrtouint
+EXPORT_SYMBOL vmlinux 0x69c9f5da	tc_classify
+EXPORT_SYMBOL vmlinux 0x69cb1a8f	put_io_context
+EXPORT_SYMBOL vmlinux 0x69d38ed9	__scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a	bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69f22f84	jbd2_journal_get_undo_access
+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 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a7a0fad	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x6a988861	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x6aa339b3	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x6aba8f4c	would_dump
+EXPORT_SYMBOL vmlinux 0x6ac27584	noop_fsync
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6acfbeb4	seq_escape
+EXPORT_SYMBOL vmlinux 0x6ad85887	acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6aeee676	padata_stop
+EXPORT_SYMBOL vmlinux 0x6b064b00	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b1f33e9	__ps2_command
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b44abd7	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x6b460967	idr_get_next
+EXPORT_SYMBOL vmlinux 0x6b4eee5c	inet6_bind
+EXPORT_SYMBOL vmlinux 0x6b5aef9c	read_cache_page
+EXPORT_SYMBOL vmlinux 0x6b702d07	udp_prot
+EXPORT_SYMBOL vmlinux 0x6ba3e44e	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x6bbd3988	simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc66d54	nla_reserve
+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 0x6c00aa18	tcp_ioctl
+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 0x6cb60b9b	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x6cbe7f87	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x6cdec079	nf_unregister_hooks
+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 0x6d2152c7	tcp_get_md5sig_pool
+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 0x6d2a3483	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x6d2a9932	__page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6d334118	__get_user_8
+EXPORT_SYMBOL vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d53432d	unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x6d69359c	sk_common_release
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d73ad19	scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x6d8f365d	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x6d9d63b4	md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e297a62	__percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x6e4cacf6	i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e855f72	find_vma
+EXPORT_SYMBOL vmlinux 0x6e932a7e	phy_start
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ea39e09	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x6eb312db	sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x6ec5bb62	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x6edd7068	nobh_write_end
+EXPORT_SYMBOL vmlinux 0x6f061c19	register_framebuffer
+EXPORT_SYMBOL vmlinux 0x6f160a27	pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x6f20fdce	kill_pid
+EXPORT_SYMBOL vmlinux 0x6f29a9b9	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x6f4c812f	__percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x6f556bdb	acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f5ef93d	memchr_inv
+EXPORT_SYMBOL vmlinux 0x6f6855b4	kern_path_create
+EXPORT_SYMBOL vmlinux 0x6f87a911	fsnotify_destroy_mark
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fd46844	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x6fd944e2	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x6feb2039	acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffbaa16	scsi_verify_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x6fff393f	time_to_tm
+EXPORT_SYMBOL vmlinux 0x700e8bc3	request_key_async
+EXPORT_SYMBOL vmlinux 0x70107dc2	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x701a19bd	save_mount_options
+EXPORT_SYMBOL vmlinux 0x7026f1bc	kobject_set_name
+EXPORT_SYMBOL vmlinux 0x702b0c5c	follow_down
+EXPORT_SYMBOL vmlinux 0x702b6c54	udplite_table
+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 0x705c2d96	__tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x70685e98	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x707f9fe3	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x707ffd49	pci_set_master
+EXPORT_SYMBOL vmlinux 0x70927fca	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x70b014bf	blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x70bc17d7	inode_wait
+EXPORT_SYMBOL vmlinux 0x70ca08c9	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x70d053fd	try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x70d8ab82	acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70e1c775	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x710cda50	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x71171197	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x711bc247	dqput
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x7131a4dc	sock_create
+EXPORT_SYMBOL vmlinux 0x715633a1	__f_setown
+EXPORT_SYMBOL vmlinux 0x716071de	lookup_hash
+EXPORT_SYMBOL vmlinux 0x716708d1	ata_print_version
+EXPORT_SYMBOL vmlinux 0x7169c0c9	scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x7178f4cc	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x71832f64	poll_freewait
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71df3ac1	bmap
+EXPORT_SYMBOL vmlinux 0x71e3cecb	up
+EXPORT_SYMBOL vmlinux 0x71f6eb38	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x721e7373	prepare_binprm
+EXPORT_SYMBOL vmlinux 0x721f833f	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x7242e96d	strnchr
+EXPORT_SYMBOL vmlinux 0x72527dfc	input_register_device
+EXPORT_SYMBOL vmlinux 0x72917ecc	dev_addr_add
+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 0x72b0a83b	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140	mtrr_add
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x730ff363	param_set_uint
+EXPORT_SYMBOL vmlinux 0x7316b67d	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x731c74f8	i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x732b7833	irq_cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x733c3b54	kasprintf
+EXPORT_SYMBOL vmlinux 0x7341a99c	submit_bio
+EXPORT_SYMBOL vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL vmlinux 0x735a6c8d	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x735b444d	aio_complete
+EXPORT_SYMBOL vmlinux 0x736bc764	tty_shutdown
+EXPORT_SYMBOL vmlinux 0x736c79dc	param_get_byte
+EXPORT_SYMBOL vmlinux 0x736ff33e	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x737829bb	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x737de5e9	radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x7381449f	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x73846fcd	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x73a6a2a0	write_cache_pages
+EXPORT_SYMBOL vmlinux 0x73a78bc4	downgrade_write
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73c07897	mii_check_media
+EXPORT_SYMBOL vmlinux 0x73c2be7f	tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x73e2c2ef	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x73e93441	do_SAK
+EXPORT_SYMBOL vmlinux 0x73eb0bc5	padata_set_cpumasks
+EXPORT_SYMBOL vmlinux 0x73ee6c18	seq_open
+EXPORT_SYMBOL vmlinux 0x73fd7998	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x742ebeef	kfree_skb
+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 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c984c1	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x74cc1cbe	unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74dc11e3	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x7506d1de	__xfrm_route_forward
+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 0x7551debc	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x7566c095	mntput
+EXPORT_SYMBOL vmlinux 0x756e6992	strnicmp
+EXPORT_SYMBOL vmlinux 0x75802232	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x758e6e45	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0x7593ae10	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x75ac0197	kstrtoul_from_user
+EXPORT_SYMBOL vmlinux 0x75b076d1	scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x75b4087d	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12	iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75cabc77	skb_clone
+EXPORT_SYMBOL vmlinux 0x75dde766	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x75eaa178	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x75f38c16	__register_binfmt
+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 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 0x76692f6d	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x76742a7f	scsi_host_put
+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 0x76a718c2	tcp_valid_rtt_meas
+EXPORT_SYMBOL vmlinux 0x76bbca7a	__serio_register_port
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76d7c6b4	backlight_device_register
+EXPORT_SYMBOL vmlinux 0x76ed25b8	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x771cf835	dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x773b3c3b	vfs_readlink
+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 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77ca9d47	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x77dda689	page_readlink
+EXPORT_SYMBOL vmlinux 0x77df0847	__set_personality
+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 0x781e1a02	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x782acba5	crc_t10dif
+EXPORT_SYMBOL vmlinux 0x783bbb98	dns_query
+EXPORT_SYMBOL vmlinux 0x786d0f15	inet_select_addr
+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 0x78822dc8	register_console
+EXPORT_SYMBOL vmlinux 0x78afad46	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x78bb3e24	abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x78deb1a4	__mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x78dee49e	journal_destroy
+EXPORT_SYMBOL vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e33310	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x78e5fe1d	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x79068fda	acpi_install_method
+EXPORT_SYMBOL vmlinux 0x79087f3c	sock_i_uid
+EXPORT_SYMBOL vmlinux 0x791bfa95	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x79278ced	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7988169a	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x79a38e61	___ratelimit
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79bd1760	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0x79c6a1e5	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x79c7d978	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x79d38470	nf_log_register
+EXPORT_SYMBOL vmlinux 0x79f28447	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x7a133bff	set_pages_uc
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a391112	simple_release_fs
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a5e10f9	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x7a8e2587	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x7a90d598	inode_init_always
+EXPORT_SYMBOL vmlinux 0x7aaf2ec5	path_get
+EXPORT_SYMBOL vmlinux 0x7abf23f0	truncate_setsize
+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 0x7b52a859	wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05	acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b59a03d	tcp_check_req
+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 0x7ba874fe	brioctl_set
+EXPORT_SYMBOL vmlinux 0x7bb22654	scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7bb5bfe7	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x7bff3be7	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c0d529e	set_page_dirty
+EXPORT_SYMBOL vmlinux 0x7c1d27b7	bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x7c3dbaac	kstrtou8_from_user
+EXPORT_SYMBOL vmlinux 0x7c3ef241	start_tty
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c61340c	__release_region
+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 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7cedc658	idr_remove_all
+EXPORT_SYMBOL vmlinux 0x7cf09a76	pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x7cf549b9	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x7d11c268	jiffies
+EXPORT_SYMBOL vmlinux 0x7d53da15	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x7d646311	key_task_permission
+EXPORT_SYMBOL vmlinux 0x7d82dbba	nf_log_packet
+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 0x7e03328a	skb_insert
+EXPORT_SYMBOL vmlinux 0x7e11e053	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x7e394c4e	sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e5e7a32	md_error
+EXPORT_SYMBOL vmlinux 0x7e68ca53	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x7e6bb8ad	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ea14e72	mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x7ea48c6e	posix_lock_file_wait
+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 0x7f080cbf	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x7f18b194	kacpi_hotplug_wq
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f658e80	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0x7f81f523	jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x7fb21d7f	unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x7fc9094b	thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x7fcf594d	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0x7fe20afb	gen_pool_add_virt
+EXPORT_SYMBOL vmlinux 0x7fe3b51d	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x7fe4a3ee	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x7feb6f8c	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x7ff5e866	vm_insert_page
+EXPORT_SYMBOL vmlinux 0x8007349e	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x8008ef2c	max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x80184053	create_proc_entry
+EXPORT_SYMBOL vmlinux 0x801ea900	lock_rename
+EXPORT_SYMBOL vmlinux 0x801f17d4	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x80380510	simple_unlink
+EXPORT_SYMBOL vmlinux 0x805485ab	__kfifo_out_r
+EXPORT_SYMBOL vmlinux 0x805fd8a0	elevator_init
+EXPORT_SYMBOL vmlinux 0x8088c51a	__blk_end_request_all
+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 0x80f5417e	iput
+EXPORT_SYMBOL vmlinux 0x80f56916	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x80fadfcc	bio_endio
+EXPORT_SYMBOL vmlinux 0x810a50c5	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x810b3618	param_ops_string
+EXPORT_SYMBOL vmlinux 0x81317012	tmem_enabled
+EXPORT_SYMBOL vmlinux 0x814706b8	sk_release_kernel
+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 0x8170617a	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x818e8412	force_sig
+EXPORT_SYMBOL vmlinux 0x81a71252	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x81a79020	__generic_file_aio_write
+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 0x81ec0789	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x81ee17e2	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x820228c6	balance_dirty_pages_ratelimited_nr
+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 0x8212b0d1	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x8227d8b0	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x82409f93	do_splice_to
+EXPORT_SYMBOL vmlinux 0x824de640	__napi_complete
+EXPORT_SYMBOL vmlinux 0x8251bcc3	bitmap_release_region
+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 0x829d4e08	rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x82acfb70	blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b7db2c	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x82ca44dd	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x82e8ce99	journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x82e9c083	csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x830e547b	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x83101415	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x8321d6e2	skb_add_rx_frag
+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 0x8365452d	netdev_notice
+EXPORT_SYMBOL vmlinux 0x83693c1d	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x83800bfa	kref_init
+EXPORT_SYMBOL vmlinux 0x8384a2c5	tty_unlock
+EXPORT_SYMBOL vmlinux 0x838d9cf9	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x839d558e	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x83a24b0d	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x83a476ce	bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83f14dec	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x83f43806	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x83f51dfc	arp_invalidate
+EXPORT_SYMBOL vmlinux 0x84060081	xen_poll_irq_timeout
+EXPORT_SYMBOL vmlinux 0x8417f512	acpi_update_all_gpes
+EXPORT_SYMBOL vmlinux 0x84279c83	ilookup5
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x845d2342	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x848b949f	arp_send
+EXPORT_SYMBOL vmlinux 0x848ee70c	idr_remove
+EXPORT_SYMBOL vmlinux 0x8495e121	module_layout
+EXPORT_SYMBOL vmlinux 0x84a24861	tty_devnum
+EXPORT_SYMBOL vmlinux 0x84b37458	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x84b69767	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x84c75654	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x84e56b39	sock_init_data
+EXPORT_SYMBOL vmlinux 0x8505e934	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x85173030	bd_set_size
+EXPORT_SYMBOL vmlinux 0x852eb26c	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x8556df7a	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x8567b1c3	default_llseek
+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 0x858ee959	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x859f1fb4	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x85abc85f	strncmp
+EXPORT_SYMBOL vmlinux 0x85b555df	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85d564af	request_firmware
+EXPORT_SYMBOL vmlinux 0x85df7d53	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x861beb99	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x8620f903	misc_deregister
+EXPORT_SYMBOL vmlinux 0x862a13dc	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f469	freeze_super
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x8672d2e5	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x86b7d903	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x86bb7806	block_write_full_page_endio
+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 0x8763dc89	netlink_ack
+EXPORT_SYMBOL vmlinux 0x876dafc3	ec_write
+EXPORT_SYMBOL vmlinux 0x87790b7a	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87aaddf8	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87bdd628	pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x87bf15ac	km_report
+EXPORT_SYMBOL vmlinux 0x87c58a96	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x8800428e	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x880798df	backlight_force_update
+EXPORT_SYMBOL vmlinux 0x880ca4bb	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8818ab73	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x8833bc7e	__kfifo_dma_out_finish_r
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x8854cf0f	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x885aec2f	sk_filter
+EXPORT_SYMBOL vmlinux 0x886ed19f	iterate_mounts
+EXPORT_SYMBOL vmlinux 0x88814389	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x88904d02	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0x889dbb1f	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x88a3243c	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x88bab960	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x88c64ec6	block_write_begin
+EXPORT_SYMBOL vmlinux 0x8901e929	__get_user_pages
+EXPORT_SYMBOL vmlinux 0x891f0a61	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x892b26a0	set_memory_nx
+EXPORT_SYMBOL vmlinux 0x895027d2	sock_i_ino
+EXPORT_SYMBOL vmlinux 0x8963f8b6	poll_initwait
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x899f13a1	pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x89a081c1	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x89afe34e	__kfifo_dma_in_prepare
+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 0x8a0b5c44	skb_find_text
+EXPORT_SYMBOL vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x8a5b2e5b	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x8a6ea7fd	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a7e184d	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x8a86c097	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x8a899472	vfs_mknod
+EXPORT_SYMBOL vmlinux 0x8a92e81b	notify_change
+EXPORT_SYMBOL vmlinux 0x8a945bb6	block_write_end
+EXPORT_SYMBOL vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aa9d5fc	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x8ab8e18c	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x8abe34e9	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x8ae42a29	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x8b0ac28f	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0x8b1a7a66	pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b337536	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x8b35e873	sg_last
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b69a432	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x8b7fe311	kmemdup
+EXPORT_SYMBOL vmlinux 0x8b817787	dev_printk
+EXPORT_SYMBOL vmlinux 0x8b922c0f	__strnlen_user
+EXPORT_SYMBOL vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8ba5472e	unlock_rename
+EXPORT_SYMBOL vmlinux 0x8bbe986f	acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x8bd433ac	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x8be53297	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x8c115760	generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c4a8b0d	__brelse
+EXPORT_SYMBOL vmlinux 0x8c578e78	udp_disconnect
+EXPORT_SYMBOL vmlinux 0x8c5fdcc0	seq_release
+EXPORT_SYMBOL vmlinux 0x8c62ebbf	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x8c6dfc0a	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x8c9981ff	simple_statfs
+EXPORT_SYMBOL vmlinux 0x8cb2adc3	idr_for_each
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccb9692	inet_shutdown
+EXPORT_SYMBOL vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL vmlinux 0x8cfecb84	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x8d0a9c25	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x8d15f59e	inet6_release
+EXPORT_SYMBOL vmlinux 0x8d551bef	sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6906d4	unregister_memory_notifier
+EXPORT_SYMBOL vmlinux 0x8d70e71c	__pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x8d73b1b9	__lock_page
+EXPORT_SYMBOL vmlinux 0x8d7c0e07	vfs_getattr
+EXPORT_SYMBOL vmlinux 0x8d8d96c6	acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d9bdeb8	dev_kfree_skb_any
+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 0x8e002cda	acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0761e6	compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e0bc35e	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+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 0x8ee27c82	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef3117b	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x8eff6e54	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x8f1bdbc5	mmc_hw_reset_check
+EXPORT_SYMBOL vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f2cd56d	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x8f2e5f39	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+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 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x904409c6	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x905a4427	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x907f375e	bdi_init
+EXPORT_SYMBOL vmlinux 0x90831c38	pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x908cee48	pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x90923da1	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x909dec6b	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x90a0fe4c	release_firmware
+EXPORT_SYMBOL vmlinux 0x90a1601f	dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90e349df	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x90f6a961	agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x9105f863	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x910a1255	sk_free
+EXPORT_SYMBOL vmlinux 0x910a9c83	tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x91112155	lease_modify
+EXPORT_SYMBOL vmlinux 0x9140a63e	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x9144a8e2	ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x91463b1d	kstrtos16
+EXPORT_SYMBOL vmlinux 0x91550800	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x91607d95	set_memory_wb
+EXPORT_SYMBOL vmlinux 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x9182094c	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x91a3cdf4	down_timeout
+EXPORT_SYMBOL vmlinux 0x91a5cc46	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x91a93782	set_trace_device
+EXPORT_SYMBOL vmlinux 0x91b1c90e	gen_pool_virt_to_phys
+EXPORT_SYMBOL vmlinux 0x91ca4955	dev_close
+EXPORT_SYMBOL vmlinux 0x91dc5b16	write_one_page
+EXPORT_SYMBOL vmlinux 0x91f2a9fa	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x9219e761	pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x92392cd9	iov_shorten
+EXPORT_SYMBOL vmlinux 0x92399501	dev_emerg
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923c80d7	__d_drop
+EXPORT_SYMBOL vmlinux 0x923ce847	put_disk
+EXPORT_SYMBOL vmlinux 0x9255bcf1	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x92681d8d	d_lookup
+EXPORT_SYMBOL vmlinux 0x9268bf0c	input_set_keycode
+EXPORT_SYMBOL vmlinux 0x9278346d	phy_stop
+EXPORT_SYMBOL vmlinux 0x9281e86b	touch_atime
+EXPORT_SYMBOL vmlinux 0x929835a8	node_data
+EXPORT_SYMBOL vmlinux 0x92db316e	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x92ea4ae4	crc32_le
+EXPORT_SYMBOL vmlinux 0x92fcda43	bio_add_page
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9327f5ce	_raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x934822a2	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x93598a25	dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x935ad226	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x93694be3	vc_cons
+EXPORT_SYMBOL vmlinux 0x9388fafd	dm_put_device
+EXPORT_SYMBOL vmlinux 0x939c62a4	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+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 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x94116c4e	ps2_init
+EXPORT_SYMBOL vmlinux 0x9425e015	scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x942f1a00	get_phy_id
+EXPORT_SYMBOL vmlinux 0x9440e2aa	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x9443f2cf	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x94775ed2	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x94801963	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94b12654	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x94b7b534	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x94ed05f8	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x94f82e18	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x950179bc	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x950b5f8a	n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x9518b623	register_shrinker
+EXPORT_SYMBOL vmlinux 0x952bf7b4	tty_port_close_end
+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 0x955fe537	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x95630afc	netdev_rx_csum_fault
+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 0x95f32874	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x95f89a33	_raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x95f992ad	bdput
+EXPORT_SYMBOL vmlinux 0x9605e887	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x964cc371	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x966115c3	send_sig
+EXPORT_SYMBOL vmlinux 0x9675d86a	agp_generic_type_to_mask_type
+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 0x96d8c1e0	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x96de393e	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x96ec962b	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x96f0c11d	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x96fd590e	inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x9717ad97	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x976cb04d	ihold
+EXPORT_SYMBOL vmlinux 0x9797cf03	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x979fc463	processors
+EXPORT_SYMBOL vmlinux 0x97a2b048	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x97c143d5	input_inject_event
+EXPORT_SYMBOL vmlinux 0x97c73f9b	skb_put
+EXPORT_SYMBOL vmlinux 0x97cfbdad	netdev_printk
+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 0x97ef1b85	inet_getname
+EXPORT_SYMBOL vmlinux 0x980004d5	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x9803dcbf	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x9817ccd3	free_buffer_head
+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 0x98827bc2	dquot_alloc
+EXPORT_SYMBOL vmlinux 0x988dbda5	tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x988ed85d	set_memory_x
+EXPORT_SYMBOL vmlinux 0x9890c633	journal_revoke
+EXPORT_SYMBOL vmlinux 0x989de12e	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x98ad299f	dst_discard
+EXPORT_SYMBOL vmlinux 0x98b48e4c	journal_ack_err
+EXPORT_SYMBOL vmlinux 0x98d692fc	do_truncate
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x991049a3	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x991399f4	mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x99160629	thaw_bdev
+EXPORT_SYMBOL vmlinux 0x991ab8d1	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x99323e75	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x9942cbe2	__cleancache_init_fs
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+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 0x99d3a43c	dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x99e09ecd	__getblk
+EXPORT_SYMBOL vmlinux 0x99f068d5	x86_cpu_to_node_map
+EXPORT_SYMBOL vmlinux 0x9a0cffa7	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a274cd1	max8998_bulk_write
+EXPORT_SYMBOL vmlinux 0x9a537c99	idr_pre_get
+EXPORT_SYMBOL vmlinux 0x9a56b86e	d_delete
+EXPORT_SYMBOL vmlinux 0x9a63dfcf	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x9a707613	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x9aabc564	crc16
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9ad3a0b6	fsnotify_put_group
+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 0x9b7b2797	__break_lease
+EXPORT_SYMBOL vmlinux 0x9b839f57	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x9b97f50d	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x9b9e95f1	swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x9b9f95c6	skb_pad
+EXPORT_SYMBOL vmlinux 0x9ba7089d	argv_split
+EXPORT_SYMBOL vmlinux 0x9bd36510	do_splice_direct
+EXPORT_SYMBOL vmlinux 0x9be3705d	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c014123	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd	memscan
+EXPORT_SYMBOL vmlinux 0x9c13bd54	input_event
+EXPORT_SYMBOL vmlinux 0x9c46d06b	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x9c491f60	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c577649	cad_pid
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c74c924	led_blink_set
+EXPORT_SYMBOL vmlinux 0x9c8e9776	security_path_unlink
+EXPORT_SYMBOL vmlinux 0x9c9d9be6	nla_append
+EXPORT_SYMBOL vmlinux 0x9c9dc5a6	dquot_enable
+EXPORT_SYMBOL vmlinux 0x9ca95a0e	sort
+EXPORT_SYMBOL vmlinux 0x9caa6efe	pcim_enable_device
+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 0x9cea111f	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x9cfd56c5	scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d2b0bc6	sock_rfree
+EXPORT_SYMBOL vmlinux 0x9d33ef5e	acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d82b63b	set_binfmt
+EXPORT_SYMBOL vmlinux 0x9d9b8631	scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x9db21624	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e131016	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x9e363b6b	acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x9e4250bb	netpoll_setup
+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 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e90ad57	journal_check_used_features
+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 0x9ed46ad2	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x9eda1fd6	module_refcount
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9f0e924e	register_cdrom
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f340d19	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x9f345bb3	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f50f656	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x9f6d55af	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x9f6e19ab	mem_section
+EXPORT_SYMBOL vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL vmlinux 0x9fa3b826	phy_find_first
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa0028afc	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xa00f3d44	genlmsg_multicast_allns
+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 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 0xa06782e6	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0xa077140d	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa093e139	compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xa095f916	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xa0a58ac3	stop_tty
+EXPORT_SYMBOL vmlinux 0xa0a957a9	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xa0ade3aa	serial8250_do_set_termios
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+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 0xa11629dc	console_start
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa12ecf5e	nobh_writepage
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa154c5d9	vfs_link
+EXPORT_SYMBOL vmlinux 0xa155fb5b	tty_name
+EXPORT_SYMBOL vmlinux 0xa19257eb	acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0xa1aabaa2	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xa1ac6d14	filemap_fdatawait
+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 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 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 0xa2925d13	phy_disconnect
+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 0xa2f9e285	dquot_destroy
+EXPORT_SYMBOL vmlinux 0xa2fe63fc	__elv_add_request
+EXPORT_SYMBOL vmlinux 0xa31d7185	scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa323bd38	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0xa327fbe2	locks_init_lock
+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 0xa3a5be95	memmove
+EXPORT_SYMBOL vmlinux 0xa3a77c69	down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa3aa11d6	set_blocksize
+EXPORT_SYMBOL vmlinux 0xa3c94d26	user_path_create
+EXPORT_SYMBOL vmlinux 0xa3e512bc	unregister_con_driver
+EXPORT_SYMBOL vmlinux 0xa3f37906	acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0xa409bf1d	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xa412a8b1	alloc_file
+EXPORT_SYMBOL vmlinux 0xa4223ddc	deactivate_super
+EXPORT_SYMBOL vmlinux 0xa4258cfe	d_move
+EXPORT_SYMBOL vmlinux 0xa44eb749	do_splice_from
+EXPORT_SYMBOL vmlinux 0xa4506c68	alloc_pages_current
+EXPORT_SYMBOL vmlinux 0xa45322ae	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xa45cd972	do_sync_write
+EXPORT_SYMBOL vmlinux 0xa465444a	dm_kcopyd_zero
+EXPORT_SYMBOL vmlinux 0xa49ca796	serial8250_set_isa_configurator
+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 0xa4d5eb5c	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0xa4ea847d	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0xa51893de	mempool_create_node
+EXPORT_SYMBOL vmlinux 0xa51df2b4	down_killable
+EXPORT_SYMBOL vmlinux 0xa54bac05	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0xa573c0c5	blk_get_request
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5e29911	set_bh_page
+EXPORT_SYMBOL vmlinux 0xa5e4f65c	__next_cpu_nr
+EXPORT_SYMBOL vmlinux 0xa5e9b0ba	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xa60090fb	padata_free
+EXPORT_SYMBOL vmlinux 0xa61874e3	compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xa62b7944	cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0xa63d85ab	slhc_remember
+EXPORT_SYMBOL vmlinux 0xa63e460c	names_cachep
+EXPORT_SYMBOL vmlinux 0xa667426d	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xa66c88ed	inet_dgram_ops
+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 0xa6addbc6	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6dddde9	mpage_writepages
+EXPORT_SYMBOL vmlinux 0xa6e8bd3e	skb_unlink
+EXPORT_SYMBOL vmlinux 0xa6fc3747	bio_map_user
+EXPORT_SYMBOL vmlinux 0xa7087e75	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa716beec	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xa72a0f5b	nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa77238ba	log_wait_commit
+EXPORT_SYMBOL vmlinux 0xa7a22484	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0xa7a72550	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xa7b4b4de	blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xa7bb3e18	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xa7ca21df	dquot_acquire
+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 0xa837d844	scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xa87d31b2	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xa884a98e	pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xa886a958	krealloc
+EXPORT_SYMBOL vmlinux 0xa89550d0	freeze_bdev
+EXPORT_SYMBOL vmlinux 0xa8a6f639	__check_region
+EXPORT_SYMBOL vmlinux 0xa8a74a63	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xa8b0eabe	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xa8b2bb39	lock_may_write
+EXPORT_SYMBOL vmlinux 0xa8d68abd	acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8fef7bb	security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa90471d5	dst_destroy
+EXPORT_SYMBOL vmlinux 0xa91b5561	acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa941e311	pm860x_page_bulk_read
+EXPORT_SYMBOL vmlinux 0xa9b64cd7	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xa9bd2676	__vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c1b627	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL vmlinux 0xa9d3c26e	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xa9f5a57b	__put_cred
+EXPORT_SYMBOL vmlinux 0xa9f86088	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xaa170372	pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xaa221e8b	journal_create
+EXPORT_SYMBOL vmlinux 0xaa59c270	journal_load
+EXPORT_SYMBOL vmlinux 0xaa6ee44a	inode_init_owner
+EXPORT_SYMBOL vmlinux 0xaa84a8ae	acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaaa8628c	do_munmap
+EXPORT_SYMBOL vmlinux 0xaaab0652	pnp_device_attach
+EXPORT_SYMBOL vmlinux 0xaac3fd6d	pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xaacfbf16	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xaae8ab0e	acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaef585b	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xaaf45875	acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL vmlinux 0xab2abddf	dma_spin_lock
+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 0xac0dac68	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xac58ea5e	acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac608055	idr_init
+EXPORT_SYMBOL vmlinux 0xac6855b0	gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac795291	tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0xac903640	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xac96ec0d	clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xac9bea1c	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xaccc799e	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xaceb2b4c	amd_northbridges
+EXPORT_SYMBOL vmlinux 0xacf0a8f1	get_write_access
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad108e92	pci_biosrom_size
+EXPORT_SYMBOL vmlinux 0xad13c689	acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad1b58ba	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xad25fb12	__memcpy
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad543d4d	journal_update_format
+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 0xadaa1416	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadaabe1b	pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xadc8e892	swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xadca5e67	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xadcac4a3	vfsmount_lock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0xaddf66df	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0xadfecac2	dev_get_stats
+EXPORT_SYMBOL vmlinux 0xae002b66	__devm_release_region
+EXPORT_SYMBOL vmlinux 0xae00add2	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xae34b114	filemap_write_and_wait_range
+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 0xaea976a8	acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaec96fe2	acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0xaed5f603	writeback_inodes_sb_nr
+EXPORT_SYMBOL vmlinux 0xaee26c50	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0xaf223b77	textsearch_register
+EXPORT_SYMBOL vmlinux 0xaf271de6	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf40317f	dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL vmlinux 0xaf803ced	request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xafb88450	journal_start
+EXPORT_SYMBOL vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL vmlinux 0xafda7428	ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xafe82e10	strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9	register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb02fdc3a	cdev_init
+EXPORT_SYMBOL vmlinux 0xb061295b	set_groups
+EXPORT_SYMBOL vmlinux 0xb0a8fd0a	intel_gtt_unmap_memory
+EXPORT_SYMBOL vmlinux 0xb0ab61b4	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0d85581	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0ee1267	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xb1113b81	sync_blockdev
+EXPORT_SYMBOL vmlinux 0xb11fa1ce	strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb138d0bf	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0xb14605e4	mnt_unpin
+EXPORT_SYMBOL vmlinux 0xb14cd917	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xb14e5625	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0xb163ff52	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xb1645a2e	sg_free_table
+EXPORT_SYMBOL vmlinux 0xb167e6b5	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xb1776e9e	scsi_device_get
+EXPORT_SYMBOL vmlinux 0xb17e3a77	pci_get_device
+EXPORT_SYMBOL vmlinux 0xb185c526	pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xb1882fbc	xfrm_state_lookup_byaddr
+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 0xb1ef0eb3	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0xb1f7a583	__cleancache_init_shared_fs
+EXPORT_SYMBOL vmlinux 0xb20ecf88	acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb244e63a	scm_detach_fds
+EXPORT_SYMBOL vmlinux 0xb260ea24	blk_start_request
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2b0d772	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0xb2c7ecc5	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xb2d583ad	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0xb2d824d2	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xb2f763b0	vfs_create
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL vmlinux 0xb31dba54	arp_create
+EXPORT_SYMBOL vmlinux 0xb3284531	acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb328e634	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb34d4c2e	acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL vmlinux 0xb368c100	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0xb36b0616	mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0xb38be6ae	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xb39cb6cb	simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3c80af8	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xb3df1995	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xb3e3d17c	agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0xb3ff1f69	free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb401c184	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+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 0xb4a0e360	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xb4a45120	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xb4b3dc2f	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xb4b7b067	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+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 0xb5477b44	km_state_expired
+EXPORT_SYMBOL vmlinux 0xb5599d88	scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xb57eaf14	dev_uc_unsync
+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 0xb6244511	sg_init_one
+EXPORT_SYMBOL vmlinux 0xb6267c88	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb6641144	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xb66e22fc	scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0xb670d596	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb682c343	phy_detach
+EXPORT_SYMBOL vmlinux 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cab86e	simple_write_end
+EXPORT_SYMBOL vmlinux 0xb6cbe886	acpi_get_node
+EXPORT_SYMBOL vmlinux 0xb6d550aa	sk_alloc
+EXPORT_SYMBOL vmlinux 0xb6e76606	inode_change_ok
+EXPORT_SYMBOL vmlinux 0xb6f23c14	inode_init_once
+EXPORT_SYMBOL vmlinux 0xb7162306	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xb751174a	dentry_unhash
+EXPORT_SYMBOL vmlinux 0xb758b225	acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb759ab86	genphy_suspend
+EXPORT_SYMBOL vmlinux 0xb76f650c	pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb7981453	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xb7a4acdf	fasync_helper
+EXPORT_SYMBOL vmlinux 0xb7b8f583	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xb7bac1cb	bioset_free
+EXPORT_SYMBOL vmlinux 0xb7c91aa8	commit_creds
+EXPORT_SYMBOL vmlinux 0xb7ccec71	proto_register
+EXPORT_SYMBOL vmlinux 0xb7e00230	__invalidate_device
+EXPORT_SYMBOL vmlinux 0xb7f0446f	pci_find_bus
+EXPORT_SYMBOL vmlinux 0xb7f47feb	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0xb811cc39	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xb816fcc5	dquot_disable
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb854858c	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xb86e4ab9	random32
+EXPORT_SYMBOL vmlinux 0xb878f73e	__cleancache_flush_fs
+EXPORT_SYMBOL vmlinux 0xb87a0ea6	compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0xb89110a6	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb8c0a8f2	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xb8e7277b	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb9249d16	cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xb9520b12	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xb965da20	dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9d9f514	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0xb9fd2205	add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba2a4d65	compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xba2d8594	ec_read
+EXPORT_SYMBOL vmlinux 0xba3eceb6	tty_hangup
+EXPORT_SYMBOL vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba4b468e	pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xba63339c	_raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xba841213	mmc_host_disable
+EXPORT_SYMBOL vmlinux 0xba8ce730	eth_header_parse
+EXPORT_SYMBOL vmlinux 0xbaa2782a	kstrndup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbae6792b	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xbaec021c	mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0xbaec6251	devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xbb0d2323	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xbb0dde70	seq_write
+EXPORT_SYMBOL vmlinux 0xbb164397	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb24d65e	km_new_mapping
+EXPORT_SYMBOL vmlinux 0xbb290b7f	generic_file_open
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb65a035	input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xbb67ba6e	ethtool_op_set_tx_ipv6_csum
+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 0xbbd36718	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xbbe2a9c2	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xbbe61f5f	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xbbfcaca5	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xbc0349ff	scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xbc0b9baf	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc21b5bc	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xbc2f11c5	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xbc3e54c3	pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0xbc682ed9	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xbc902b5f	cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xbcadc897	__nla_put
+EXPORT_SYMBOL vmlinux 0xbcb78641	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xbcbc33e6	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcd25013	ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xbcd5e74d	sock_no_listen
+EXPORT_SYMBOL vmlinux 0xbd0b2f1b	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xbd100793	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xbd20c880	register_md_personality
+EXPORT_SYMBOL vmlinux 0xbd34a1c2	dm_io
+EXPORT_SYMBOL vmlinux 0xbd516f45	loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xbd5f0bdf	vfs_read
+EXPORT_SYMBOL vmlinux 0xbd747eda	led_brightness_set
+EXPORT_SYMBOL vmlinux 0xbd7eb1e8	fget
+EXPORT_SYMBOL vmlinux 0xbd81d261	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0xbda19fb4	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0xbdaec29d	cont_write_begin
+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 0xbdddb9d5	sk_prot_clear_portaddr_nulls
+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 0xbe39021e	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xbe4890a7	skb_copy
+EXPORT_SYMBOL vmlinux 0xbe4c7df4	input_mt_report_pointer_emulation
+EXPORT_SYMBOL vmlinux 0xbe67af3f	netif_napi_add
+EXPORT_SYMBOL vmlinux 0xbe95b12b	dev_activate
+EXPORT_SYMBOL vmlinux 0xbea44f2a	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xbea98b5a	i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xbec9970a	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xbec9b4f6	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xbed6021f	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef8baea	xfrm_spd_getinfo
+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 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8ba54a	vprintk
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfbb93e3	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xbfc177bc	iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfe5aa95	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xbfe63ba8	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff98dda	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xbffec797	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xc003c637	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc00c5ef0	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xc01c16a9	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xc01cf848	_raw_read_lock
+EXPORT_SYMBOL vmlinux 0xc027e19d	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xc04beb63	vfs_readv
+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 0xc0a952df	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xc0b2494c	vfsmount_lock_lock_init
+EXPORT_SYMBOL vmlinux 0xc0bbd1eb	netif_napi_del
+EXPORT_SYMBOL vmlinux 0xc0d0170d	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xc0f5ab01	pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xc10780ac	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xc10b2a44	dev_open
+EXPORT_SYMBOL vmlinux 0xc10d7897	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xc1140887	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xc1201591	scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xc15741ce	complete_request_key
+EXPORT_SYMBOL vmlinux 0xc1bd54b2	tcf_em_register
+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 0xc227a93d	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc24e0fcf	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc26ced6d	dev_uc_init
+EXPORT_SYMBOL vmlinux 0xc2728311	thaw_super
+EXPORT_SYMBOL vmlinux 0xc2964851	input_grab_device
+EXPORT_SYMBOL vmlinux 0xc298c638	dcache_readdir
+EXPORT_SYMBOL vmlinux 0xc2a20ee8	scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xc2cd1320	sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xc2d3b8de	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xc2da04c2	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xc2dc228c	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc2ea69ad	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc31fae16	mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xc3460901	blk_end_request
+EXPORT_SYMBOL vmlinux 0xc35577a0	unlock_buffer
+EXPORT_SYMBOL vmlinux 0xc3557800	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xc3575ea3	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xc36bb9db	generic_fillattr
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL vmlinux 0xc3e1fc86	netdev_warn
+EXPORT_SYMBOL vmlinux 0xc3e49cc4	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xc3fc35f5	idr_find
+EXPORT_SYMBOL vmlinux 0xc3fe87c8	param_ops_uint
+EXPORT_SYMBOL vmlinux 0xc402cc99	register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc450e3a5	genphy_resume
+EXPORT_SYMBOL vmlinux 0xc4539fbd	__mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xc471f346	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xc4968b71	fd_install
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc50bab05	unregister_shrinker
+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 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL vmlinux 0xc573668b	input_reset_device
+EXPORT_SYMBOL vmlinux 0xc5848566	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xc5a07295	pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5cd3941	sock_create_kern
+EXPORT_SYMBOL vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc5f45ab2	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xc5f46566	rb_augment_insert
+EXPORT_SYMBOL vmlinux 0xc6155c19	pci_enable_ltr
+EXPORT_SYMBOL vmlinux 0xc62fdc66	dev_mc_add
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc65abeb7	agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc6634736	agp_bind_memory
+EXPORT_SYMBOL vmlinux 0xc6701be9	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xc67ee67b	generic_write_checks
+EXPORT_SYMBOL vmlinux 0xc6890ef3	acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc68c9682	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0xc694ee39	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0xc6a66180	rwsem_wake
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc6d08280	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xc6fdec50	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc740c64a	memchr
+EXPORT_SYMBOL vmlinux 0xc742ff6e	fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xc76ea0a3	dm_register_target
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc78c9a56	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7c80bb3	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xc7cdc9be	bio_init
+EXPORT_SYMBOL vmlinux 0xc7e41c6c	gen_pool_for_each_chunk
+EXPORT_SYMBOL vmlinux 0xc7ed5247	pci_iomap
+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 0xc86a6174	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0xc87ee7b8	scsi_unregister
+EXPORT_SYMBOL vmlinux 0xc888d7ee	md_write_start
+EXPORT_SYMBOL vmlinux 0xc88a881d	__free_pages
+EXPORT_SYMBOL vmlinux 0xc88fa9c5	find_or_create_page
+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 0xc8bfef1d	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xc8c0ba8e	lock_may_read
+EXPORT_SYMBOL vmlinux 0xc8c32319	tty_check_change
+EXPORT_SYMBOL vmlinux 0xc8d962f7	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xc8da674a	skb_queue_tail
+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 0xc90467dd	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xc92011f7	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0xc92ba882	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xc92c49d5	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xc93608ac	vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0xc9454822	tcf_destroy_chain
+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 0xc9584bef	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xc970b94a	bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc9a630b5	blk_run_queue
+EXPORT_SYMBOL vmlinux 0xc9ab2eef	acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9dba887	alloc_trdev
+EXPORT_SYMBOL vmlinux 0xc9f792bd	scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xca028436	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0xca44088c	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xca4c923d	vscnprintf
+EXPORT_SYMBOL vmlinux 0xca4c94ee	netif_device_detach
+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 0xcb4f799d	ip_defrag
+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 0xcb83b9e1	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xcb99edb0	posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0xcbaa26a8	pcim_pin_device
+EXPORT_SYMBOL vmlinux 0xcbb10d3f	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbcc685e	ether_setup
+EXPORT_SYMBOL vmlinux 0xcc07af75	strnlen
+EXPORT_SYMBOL vmlinux 0xcc07bdbf	napi_complete
+EXPORT_SYMBOL vmlinux 0xcc23be45	dst_release
+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 0xcc88a68d	migrate_page
+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 0xccbd2575	llc_add_pack
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd2cefe8	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xcd2d54dd	flush_old_exec
+EXPORT_SYMBOL vmlinux 0xcd2dfcf9	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xcd30033b	ip6_route_output
+EXPORT_SYMBOL vmlinux 0xcd3bc598	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0xcd4d6119	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0xcd4ee005	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0xcd60e72f	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xcd8b8191	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xcdad5521	set_security_override
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcde35486	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xcde672b6	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xcde82c4f	cdrom_release
+EXPORT_SYMBOL vmlinux 0xcdf6c68d	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0xce0833ec	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL vmlinux 0xce3fc5c2	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xce4904a4	acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce4b0185	pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xce5816d7	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce7502b1	netif_device_attach
+EXPORT_SYMBOL vmlinux 0xce7a7440	new_inode
+EXPORT_SYMBOL vmlinux 0xce9b3d3b	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xceb569e1	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xcec3a908	kstrtos8_from_user
+EXPORT_SYMBOL vmlinux 0xced3ff83	mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xceed9927	shrink_dcache_parent
+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 0xcf1d2846	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xcf1d28ab	acpi_error
+EXPORT_SYMBOL vmlinux 0xcf21d241	__wake_up
+EXPORT_SYMBOL vmlinux 0xcf30bf81	napi_get_frags
+EXPORT_SYMBOL vmlinux 0xcf38b966	scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0xcf4347cc	inet_put_port
+EXPORT_SYMBOL vmlinux 0xcf4dee8d	keyring_search
+EXPORT_SYMBOL vmlinux 0xcf579332	sock_register
+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 0xcfbda8fd	mount_subtree
+EXPORT_SYMBOL vmlinux 0xcfc8269b	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcff7c5b9	filemap_flush
+EXPORT_SYMBOL vmlinux 0xcfffb440	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0xd00314a4	bio_put
+EXPORT_SYMBOL vmlinux 0xd00dad00	__netif_schedule
+EXPORT_SYMBOL vmlinux 0xd00e2a56	netdev_crit
+EXPORT_SYMBOL vmlinux 0xd0163d3b	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd01fb75d	generic_listxattr
+EXPORT_SYMBOL vmlinux 0xd0205390	pnp_register_driver
+EXPORT_SYMBOL vmlinux 0xd03466fa	free_xenballooned_pages
+EXPORT_SYMBOL vmlinux 0xd057da17	release_sock
+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 0xd0aa9f2d	dev_getfirstbyhwtype
+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 0xd0fdea4a	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL vmlinux 0xd103bd58	dev_set_mtu
+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 0xd138dfbd	lro_flush_pkt
+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 0xd18b6eb2	acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd194e97d	__sock_create
+EXPORT_SYMBOL vmlinux 0xd1a17801	neigh_destroy
+EXPORT_SYMBOL vmlinux 0xd1b832c1	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xd1c09c76	datagram_poll
+EXPORT_SYMBOL vmlinux 0xd1cc4380	set_create_files_as
+EXPORT_SYMBOL vmlinux 0xd1d4ae47	f_setown
+EXPORT_SYMBOL vmlinux 0xd1e5549d	max8998_bulk_read
+EXPORT_SYMBOL vmlinux 0xd1f152ad	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd203819f	follow_up
+EXPORT_SYMBOL vmlinux 0xd227892e	sleep_on
+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 0xd26b983e	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xd26f09ac	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xd270f07e	xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xd276f795	param_ops_invbool
+EXPORT_SYMBOL vmlinux 0xd2965f6f	kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2967724	block_write_full_page
+EXPORT_SYMBOL vmlinux 0xd2975043	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xd2a75ee0	dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2b41211	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xd2c02dc4	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xd2c0cb03	put_page
+EXPORT_SYMBOL vmlinux 0xd2c7ee76	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xd2e0c3dd	i2c_transfer
+EXPORT_SYMBOL vmlinux 0xd2f1b260	interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xd2f74211	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xd340cf3d	tcf_action_dump_1
+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 0xd3af979c	memdup_user
+EXPORT_SYMBOL vmlinux 0xd3b124c6	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0xd3c22f2f	get_super
+EXPORT_SYMBOL vmlinux 0xd3d9a578	__find_get_block
+EXPORT_SYMBOL vmlinux 0xd3dcab0b	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0xd42a5a4c	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xd42e525e	generic_removexattr
+EXPORT_SYMBOL vmlinux 0xd43762b1	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xd4788b0b	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xd487f6a8	find_inode_number
+EXPORT_SYMBOL vmlinux 0xd4990b98	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xd49b13a5	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0xd4a94617	uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xd4f93a5a	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xd50fef48	acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd52bf1ce	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0xd540ca32	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xd54581b4	writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xd56a2984	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xd582b85e	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xd58ee469	mmc_calc_max_discard
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5d89b0b	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xd5f2172f	del_timer_sync
+EXPORT_SYMBOL vmlinux 0xd611bca3	completion_done
+EXPORT_SYMBOL vmlinux 0xd616683a	ecryptfs_fill_auth_tok
+EXPORT_SYMBOL vmlinux 0xd62641ba	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xd62c833f	schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd6473160	netdev_err
+EXPORT_SYMBOL vmlinux 0xd6584c27	mmc_flush_cache
+EXPORT_SYMBOL vmlinux 0xd665ac96	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6b5cc3e	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0xd6c74882	blk_start_queue
+EXPORT_SYMBOL vmlinux 0xd6d485ad	serio_interrupt
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd6ef1385	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xd7318737	jbd2_journal_get_write_access
+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 0xd7581811	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd775a872	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77f068b	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0xd78c02b9	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7cecc0d	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+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 0xd806ae15	phy_attach
+EXPORT_SYMBOL vmlinux 0xd811624a	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xd813aee5	acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0xd81fd443	skb_checksum
+EXPORT_SYMBOL vmlinux 0xd8629f3a	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0xd8754b57	address_space_init_once
+EXPORT_SYMBOL vmlinux 0xd883fc00	simple_getattr
+EXPORT_SYMBOL vmlinux 0xd88f31d7	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL vmlinux 0xd89f3326	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xd8a22a7a	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0xd8a40bff	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xd8cd0af9	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0xd8e484f0	register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd9091363	acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd912b5eb	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0xd913f4e6	simple_fill_super
+EXPORT_SYMBOL vmlinux 0xd91ea38c	x86_hyper_xen_hvm
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+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 0xd969b2c7	amd_e400_c1e_detected
+EXPORT_SYMBOL vmlinux 0xd97b12cc	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd996b7b8	revert_creds
+EXPORT_SYMBOL vmlinux 0xd9975cbd	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xd9a0b070	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xd9c7f4fd	pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0xd9ce24fa	input_allocate_device
+EXPORT_SYMBOL vmlinux 0xd9d42857	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xda052442	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xda0a6b0e	acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda0af252	security_path_chown
+EXPORT_SYMBOL vmlinux 0xda1ae6b2	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xda285931	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xda3b6095	km_state_notify
+EXPORT_SYMBOL vmlinux 0xda4a6b74	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xda7ca6cb	fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8a8b13	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xda8af7ad	fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdac9c07a	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xdae3a1c7	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xdaf516fe	page_symlink_inode_operations
+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 0xdb4b769f	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb792dc0	otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xdb8ed7aa	module_put
+EXPORT_SYMBOL vmlinux 0xdb9e2c22	posix_acl_create
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe8c1ec	generic_file_direct_write
+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 0xdc8d1dde	_raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xdc92559c	register_snap_client
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdcc9c27e	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xdcd8f64f	pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xdcf32219	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xdd045a43	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xdd15a065	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd350e15	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xdd68800f	generic_read_dir
+EXPORT_SYMBOL vmlinux 0xdd76533a	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xdd9b9379	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0xdda68499	vga_get
+EXPORT_SYMBOL vmlinux 0xddc8dacf	jbd2_journal_flush
+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 0xde38a4c6	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xde6151db	tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xde63340c	init_net
+EXPORT_SYMBOL vmlinux 0xde6ff8a8	fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0xde896a59	proc_mkdir
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xde94e8dd	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdea87189	netdev_state_change
+EXPORT_SYMBOL vmlinux 0xdf0da3cc	acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf1806bc	simple_transaction_get
+EXPORT_SYMBOL vmlinux 0xdf404da3	neigh_seq_stop
+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 0xdfdf7585	unlock_page
+EXPORT_SYMBOL vmlinux 0xdfe160c9	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xe0041394	set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0xe0086907	truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xe0255822	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xe04026ef	intel_gtt_insert_pages
+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 0xe06d0216	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xe06e4199	cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xe0726f9b	__sk_mem_schedule
+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 0xe0bf5a0c	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0xe0c991dd	generic_show_options
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL vmlinux 0xe1235c17	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0xe13664e3	nf_register_hook
+EXPORT_SYMBOL vmlinux 0xe136ffea	genl_register_ops
+EXPORT_SYMBOL vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe15f42bb	_raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1a67ff3	mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0xe1bacfa5	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xe1d0b54b	override_creds
+EXPORT_SYMBOL vmlinux 0xe1f8a896	sock_create_lite
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe2040406	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xe238429e	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe23ae481	blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97	jiffies_64
+EXPORT_SYMBOL vmlinux 0xe25b78f1	log_start_commit
+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 0xe2c106cc	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xe2c8c83e	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xe2cfb038	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL vmlinux 0xe319eb24	acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0xe33dea65	agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0xe36590ac	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xe3865c57	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xe3acb444	llc_sap_open
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3d9df0b	neigh_direct_output
+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 0xe43617f7	acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe439eef7	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xe443cd07	arp_tbl
+EXPORT_SYMBOL vmlinux 0xe44912d1	have_submounts
+EXPORT_SYMBOL vmlinux 0xe44c2328	locks_free_lock
+EXPORT_SYMBOL vmlinux 0xe456544b	input_get_keycode
+EXPORT_SYMBOL vmlinux 0xe472140d	__bread
+EXPORT_SYMBOL vmlinux 0xe476b8a2	generic_readlink
+EXPORT_SYMBOL vmlinux 0xe47e86b0	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xe48022bb	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe485c4bd	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xe49685e5	cdev_del
+EXPORT_SYMBOL vmlinux 0xe4bc6174	rename_lock
+EXPORT_SYMBOL vmlinux 0xe4bde001	pci_disable_device
+EXPORT_SYMBOL vmlinux 0xe4cf7d72	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xe4d85c1d	ida_pre_get
+EXPORT_SYMBOL vmlinux 0xe4e8eb53	sync_inode
+EXPORT_SYMBOL vmlinux 0xe50726a6	dquot_drop
+EXPORT_SYMBOL vmlinux 0xe5122890	flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe51b86e1	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe525ea90	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xe52947e7	__phys_addr
+EXPORT_SYMBOL vmlinux 0xe530d757	acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe537a1d9	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0xe553d5aa	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe57dbce8	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xe58484d4	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe58a8f2a	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xe591ad30	genl_register_family
+EXPORT_SYMBOL vmlinux 0xe59a638f	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xe5bec95c	i8253_lock
+EXPORT_SYMBOL vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5e88edc	__breadahead
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5ee6cc2	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xe608c13c	cdev_alloc
+EXPORT_SYMBOL vmlinux 0xe610d41e	register_gifconf
+EXPORT_SYMBOL vmlinux 0xe61e39e0	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xe62ba79d	pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xe638402b	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xe63bc950	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0xe66557a7	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xe667ed43	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xe69529c6	may_umount
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe69b8be8	agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0xe6ba3a1a	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xe6bd544c	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xe6e3b875	down_write
+EXPORT_SYMBOL vmlinux 0xe6e9574a	scsi_cmd_get_serial
+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 0xe72934e1	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xe74542b0	bdget_disk
+EXPORT_SYMBOL vmlinux 0xe74cb292	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xe7609b0d	generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe77120a9	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xe7722171	flex_array_free
+EXPORT_SYMBOL vmlinux 0xe7765e69	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xe7800e19	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xe798d260	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7dafd19	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0xe7de6f9f	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xe7e58d30	key_unlink
+EXPORT_SYMBOL vmlinux 0xe7eed0b7	nla_put
+EXPORT_SYMBOL vmlinux 0xe7f1423a	qdisc_tree_decrease_qlen
+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 0xe81a28a2	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xe84c8676	con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xe8568cbf	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe888da2b	cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8dbafef	__next_cpu
+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 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe921d70e	set_pages_nx
+EXPORT_SYMBOL vmlinux 0xe9345143	ilookup
+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 0xe97b777f	__pagevec_release
+EXPORT_SYMBOL vmlinux 0xe98eca0d	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xe997667b	wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9bd0cde	ida_init
+EXPORT_SYMBOL vmlinux 0xe9d18e15	pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xe9dff136	mempool_alloc
+EXPORT_SYMBOL vmlinux 0xe9f12936	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xea054b22	nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea07ee8f	d_alloc
+EXPORT_SYMBOL vmlinux 0xea10212a	int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a	__bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea32cf35	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0xea3896c3	mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xea48a891	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xea529f91	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xea562175	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xea589d71	lookup_bdev
+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 0xea9c27b8	pci_disable_msix
+EXPORT_SYMBOL vmlinux 0xeaa9cbb0	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xeabfc510	pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xeac73847	irq_regs
+EXPORT_SYMBOL vmlinux 0xead02353	wireless_send_event
+EXPORT_SYMBOL vmlinux 0xead58fb9	print_hex_dump
+EXPORT_SYMBOL vmlinux 0xead9a49c	set_anon_super
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeafbd11a	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xeb2281e4	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+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 0xeba677bd	posix_acl_chmod
+EXPORT_SYMBOL vmlinux 0xebaf5460	blkdev_get_by_path
+EXPORT_SYMBOL vmlinux 0xebbf1dba	strncasecmp
+EXPORT_SYMBOL vmlinux 0xebcc9e5b	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xebcd8c8d	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xebcecec7	__scsi_put_command
+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 0xec27c4d1	kstrtoull_from_user
+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 0xec730387	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0xec7a730d	inode_permission
+EXPORT_SYMBOL vmlinux 0xec7ab5ed	secpath_dup
+EXPORT_SYMBOL vmlinux 0xec846f8e	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xec94bf57	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0xeca5806a	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xecc46efd	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xecca1499	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xecd4031d	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xecfb5331	journal_restart
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed434a65	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xed4b900e	vfs_fstatat
+EXPORT_SYMBOL vmlinux 0xed62f41f	vfs_fsync
+EXPORT_SYMBOL vmlinux 0xed668c4b	__tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0xed6ba331	revalidate_disk
+EXPORT_SYMBOL vmlinux 0xed76f3a1	mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xed8b766b	genphy_read_status
+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 0xedb5395c	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL vmlinux 0xee0a055c	__percpu_counter_sum
+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 0xee5fc4e0	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xee618323	pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xee747416	redraw_screen
+EXPORT_SYMBOL vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee83a066	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xee9a0f6e	bdevname
+EXPORT_SYMBOL vmlinux 0xeea9dbaf	bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeb75f5b	dquot_transfer
+EXPORT_SYMBOL vmlinux 0xeef3aff2	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0xef1306d1	mount_pseudo
+EXPORT_SYMBOL vmlinux 0xef21c1f2	dget_parent
+EXPORT_SYMBOL vmlinux 0xef45d32c	__kfifo_init
+EXPORT_SYMBOL vmlinux 0xef4c6f5f	elv_rb_find
+EXPORT_SYMBOL vmlinux 0xef56707c	dev_warn
+EXPORT_SYMBOL vmlinux 0xef58579f	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xef67e06f	fsnotify_alloc_group
+EXPORT_SYMBOL vmlinux 0xef78fb5e	netdev_change_features
+EXPORT_SYMBOL vmlinux 0xef806229	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xef9aedfc	boot_option_idle_override
+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 0xefd956c1	icmp_send
+EXPORT_SYMBOL vmlinux 0xefdd70ce	security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3	acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL vmlinux 0xf00c9624	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xf00fb9e6	inet_frags_init
+EXPORT_SYMBOL vmlinux 0xf02798cd	tty_mutex
+EXPORT_SYMBOL vmlinux 0xf049e7fb	find_lock_page
+EXPORT_SYMBOL vmlinux 0xf0579e6d	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xf061e94d	agp_create_memory
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf0668483	cpu_rmap_update
+EXPORT_SYMBOL vmlinux 0xf06ffc83	free_task
+EXPORT_SYMBOL vmlinux 0xf076ca3a	consume_skb
+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 0xf0c5c23f	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xf0eed885	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0xf0ef15b4	list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c	kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f912f6	unregister_qdisc
+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 0xf1216c75	prandom32
+EXPORT_SYMBOL vmlinux 0xf140da71	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0xf14577d0	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xf147ecb1	down_trylock
+EXPORT_SYMBOL vmlinux 0xf14f113d	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xf167da29	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xf192f854	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1bd73cc	dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xf1bea6f1	schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xf1c09907	generic_permission
+EXPORT_SYMBOL vmlinux 0xf1ca7b0b	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xf1cf3036	blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0xf1dabcc4	pnp_is_active
+EXPORT_SYMBOL vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1db945f	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xf1e98c74	avenrun
+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 0xf2439965	dev_set_group
+EXPORT_SYMBOL vmlinux 0xf24c4176	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xf2516109	mutex_lock
+EXPORT_SYMBOL vmlinux 0xf25b2328	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0xf25dc7a6	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xf276d13e	noop_llseek
+EXPORT_SYMBOL vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2a6236b	fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xf2ab9358	pci_pme_active
+EXPORT_SYMBOL vmlinux 0xf2b36225	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xf2b47211	set_page_dirty_lock
+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 0xf35e10ed	aio_put_req
+EXPORT_SYMBOL vmlinux 0xf3653834	pci_target_state
+EXPORT_SYMBOL vmlinux 0xf37260ab	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xf381d533	dev_mc_del
+EXPORT_SYMBOL vmlinux 0xf3840301	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf3918487	__napi_schedule
+EXPORT_SYMBOL vmlinux 0xf396cd21	tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0xf3b35185	page_put_link
+EXPORT_SYMBOL vmlinux 0xf3bf0bce	__bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3dac553	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xf40598a5	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xf4294595	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xf42b4528	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4491940	dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xf4528073	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf4662085	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xf472fb3e	sched_autogroup_detach
+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 0xf4b48ba8	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0xf4b72034	unregister_netdev
+EXPORT_SYMBOL vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4c8f673	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xf4cb4178	kernel_listen
+EXPORT_SYMBOL vmlinux 0xf4d0dd35	skb_store_bits
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f1d73f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xf4fd2454	phy_device_register
+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 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 0xf5aad833	invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xf5b1811d	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xf5bafa36	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xf5c9012e	timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cb1af7	pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0xf5cb4773	kern_unmount
+EXPORT_SYMBOL vmlinux 0xf5cf326a	param_ops_short
+EXPORT_SYMBOL vmlinux 0xf5e26928	inet_listen
+EXPORT_SYMBOL vmlinux 0xf5e2f80e	bdi_register
+EXPORT_SYMBOL vmlinux 0xf5e4d44e	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xf5eb86ea	blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5ec056c	blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0xf60273a3	scsi_register
+EXPORT_SYMBOL vmlinux 0xf603e350	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0xf605a369	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf613a265	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xf61abf90	blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xf629897b	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf668be81	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xf697c677	generic_writepages
+EXPORT_SYMBOL vmlinux 0xf69d91a7	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0xf6a2048b	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+EXPORT_SYMBOL vmlinux 0xf6cff718	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0xf6d8c2c2	register_netdev
+EXPORT_SYMBOL vmlinux 0xf6db33bf	mmc_request_done
+EXPORT_SYMBOL vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf70fc3c2	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xf710df57	tty_write_room
+EXPORT_SYMBOL vmlinux 0xf71ca3ab	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xf736d0dd	register_8022_client
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf748ba7f	__bio_clone
+EXPORT_SYMBOL vmlinux 0xf7506c41	__any_online_cpu
+EXPORT_SYMBOL vmlinux 0xf757942e	__alloc_skb
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf75d01eb	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xf768f3a2	i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7934163	__inet6_hash
+EXPORT_SYMBOL vmlinux 0xf7999edd	pipe_lock
+EXPORT_SYMBOL vmlinux 0xf7acf827	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf7c25ce6	sock_no_accept
+EXPORT_SYMBOL vmlinux 0xf7d71918	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0xf7fd7763	d_rehash
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf80d781b	__mutex_init
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8173f40	ip6_frag_match
+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 0xf83e19d1	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xf863743e	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xf8746782	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0xf88e0ee2	acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf896536a	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xf8983de7	prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xf89843f9	schedule_work
+EXPORT_SYMBOL vmlinux 0xf8b9c546	unregister_binfmt
+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 0xf8d64caf	nf_reinject
+EXPORT_SYMBOL vmlinux 0xf8d7663c	pci_enable_device
+EXPORT_SYMBOL vmlinux 0xf9124dad	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xf92c5ea4	agp_collect_device_status
+EXPORT_SYMBOL vmlinux 0xf9300775	seq_bitmap
+EXPORT_SYMBOL vmlinux 0xf9448827	registered_fb
+EXPORT_SYMBOL vmlinux 0xf9597a48	sock_wmalloc
+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 0xfa3359f9	current_fs_time
+EXPORT_SYMBOL vmlinux 0xfa5d6b7b	vfs_open
+EXPORT_SYMBOL vmlinux 0xfa66f77c	finish_wait
+EXPORT_SYMBOL vmlinux 0xfa67c245	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xfa94b071	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xface5af2	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xfad8f33a	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb	acpi_get_parent
+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 0xfb95443b	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL vmlinux 0xfbe27a1c	rb_first
+EXPORT_SYMBOL vmlinux 0xfbe97842	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0xfbfd1642	nf_hook_slow
+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 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc6b894e	swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xfc6e2418	llc_sap_close
+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 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd0bfab3	bh_submit_read
+EXPORT_SYMBOL vmlinux 0xfd178d00	dev_deactivate
+EXPORT_SYMBOL vmlinux 0xfd1bb3d0	blk_init_queue_node
+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 0xfda0dbe8	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL vmlinux 0xfdbf70bf	blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0xfdc95fe9	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xfde8a992	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0xfdee7d42	_raw_read_lock_bh
+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 0xfe2fbe95	inode_get_bytes
+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 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287	nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe8cf94a	journal_wipe
+EXPORT_SYMBOL vmlinux 0xfe92af7f	mount_nodev
+EXPORT_SYMBOL vmlinux 0xfea82ed1	fget_raw
+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 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2102e5	compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xff25e316	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xff3e2780	scsi_command_normalize_sense
+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 0xff7b61e4	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xff8681cc	nf_afinfo
+EXPORT_SYMBOL vmlinux 0xff94b6ba	pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffb35491	sock_no_poll
+EXPORT_SYMBOL vmlinux 0xffb82296	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xffc9ae5a	input_open_device
+EXPORT_SYMBOL vmlinux 0xffd5a395	default_wake_function
+EXPORT_SYMBOL vmlinux 0xffd8208c	tcf_exts_dump_stats
+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 0x00363215	gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0303e44e	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03192163	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05817a7a	kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x07600076	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0779a4ac	kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09beee46	kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ab0e784	kvm_mmu_unload
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f013b76	gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x155dc5cb	kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1df18015	kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2052a5d9	kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x268fee2c	kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x297cb2df	kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a8927d4	kvm_mmu_load
+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 0x317f9e6b	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34b9496d	gfn_to_pfn_async
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3527e6b7	kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36c6abb0	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x375b8a96	kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39b7c198	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d605cc4	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e19af4b	kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46682e52	kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4969e54f	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e9b6058	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f9efccf	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x530c4892	kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x581e593a	kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58333860	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f728236	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x600dcf1b	kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x61c8a5a2	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64f2705e	is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65c7eca2	kvm_requeue_exception_e
+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 0x66cc2392	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ae5774a	kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d5fbf7f	kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d8b0f3b	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d980e06	kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07	is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ece093a	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7018b1e6	kvm_read_guest_page_mmu
+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 0x771f8fbc	gfn_to_pfn_prot
+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 0x80cb27cc	handle_mmio_page_fault_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x859507c4	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85f3ae82	gfn_to_memslot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87d03440	kvm_read_guest
+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 0x900aabe3	kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x910d8e46	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x942a98c6	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d972c50	gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa106c7	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fbd986e	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec705d	kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1096dae	x86_emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1396c6a	kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa14dba09	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4b8e95b	kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa60e7bdf	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6134d43	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7159e00	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7299d5d	kvm_get_cr8
+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 0xa9cf884f	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa52120d	kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb04c9d65	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2d3e738	kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb382064e	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbbe9ee79	kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d	is_hwpoison_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd98ff0d	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0a13a50	kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc32e5bcd	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3b0d127	kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9535050	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca54fed5	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcadcc9c1	kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc33d62d	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcd930e00	kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf2b2070	__tracepoint_kvm_invlpga
+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 0xd61f235e	kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd69a37ed	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd6a248c0	kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7f827bb	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb1cd11a	kvm_write_tsc
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdeb15165	kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1411ca9	fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1f13aac	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe33be504	kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8aeb4fa	kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea66377e	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeeb04290	load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefed7a41	hva_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf47be6ae	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4814e9d	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf58f3ca8	kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8f11645	kvm_set_xcr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa3fb4d3	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd3cc16a	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfdd24928	kvm_set_cr3
+EXPORT_SYMBOL_GPL crypto/af_alg 0x19e7a48a	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x5b75ad70	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 0x6f95d01d	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x856fe1ae	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xa07c6a2d	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xbb3e6a38	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0xfd699b04	af_alg_complete
+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 0x15a5d2e2	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x41b39966	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x46e3ce38	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x875fb51e	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x89735e05	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xa69a8b3a	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb372bdb3	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb89af55d	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbc0db8eb	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe5545ee6	cryptd_free_ahash
+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 0x25d6837c	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2a4d7f78	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6562b7b0	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x716162d8	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8ba8f4af	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8d244fea	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc702bee4	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd7d34df0	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 0x0883b7bc	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1b1c22b6	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x42ef83b9	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x533d1f90	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61604f83	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71a8b773	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7590805a	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7bda4d2d	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9b85391c	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5cc6f95	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaeca2baf	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbdb8b3b3	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb2f4e43	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xea5b6173	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf396006b	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfaebba51	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfd78708e	gigaset_initcs
+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 0x0174b28b	dm_rh_dirty_log
+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 0xa76edbf1	dm_region_hash_create
+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 0xd8aa4284	dm_rh_region_context
+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 0xa418222f	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0xa2f642f6	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x6719ce8b	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x05ab61e4	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x132cb2e8	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x18af7978	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1b4abf70	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1c702542	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1ed3f958	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4fd28d71	mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x59555e7d	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5c80e7c1	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa534e7f9	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb152ec58	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe55150bb	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf0ab0cc3	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf3b8539e	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf88c5ba2	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf9c21496	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfb2b00cd	mantis_dma_exit
+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 0x48c6cada	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7fd9a579	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x90668f8b	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xaade7fe0	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc476002e	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf53442e1	ttpci_budget_debiwrite
+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 0x636e2e9f	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe3a291ea	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 0x73758c8a	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xac1ca524	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xd16e3c78	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe9be52fd	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x06d61a7f	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x12dadf2c	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1edf6c63	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x50f0a17b	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6802c7f1	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x763d199e	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7727ed4e	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8010f290	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9b9b2d25	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbc15adaf	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdfff0258	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff7b5db0	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3d255579	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4a044424	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7bb5a3e2	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x84ff6b65	free_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 0x2d50eade	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4e11b1d4	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8e435ca0	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa246f9e2	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd680138d	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0x92ff4554	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x212d63d7	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x937670bb	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc20ea188	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcde41f54	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1f6f9c5f	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x651f557c	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6e892277	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb78e9d02	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd021c574	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfc010581	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1d3284a7	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x219ce07f	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x30029748	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x350f3ce1	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43ed732d	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49d97d59	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4e106156	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5f998257	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x68b9d037	usbnet_open
+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 0x8b059386	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8baff644	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d014935	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8f679534	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa358b219	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2ac41f2	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb6c7031	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc2856fd	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd2b985a0	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd39598c5	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdc939998	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xef166a40	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe3bd072	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x166fcbf8	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3597b266	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3d2d7981	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x41e865bb	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4c185b05	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x51abce26	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7dbd3d9f	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8921a333	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8957e5e4	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa033ce67	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa7d17626	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb25211e8	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb9196823	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd92339fc	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe9370c23	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf2548839	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19	libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x96636d7f	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x4c25688f	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xa4124af2	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xc3f823ed	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xefd315ef	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1cebdc7d	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x466dc633	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x48768e1c	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6357c0ee	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7160badd	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x739e06b1	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7441a28f	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8394510b	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x90755ba6	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91483dc2	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa2a94c20	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd4fcb443	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd9995152	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe4008a7d	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeffcbc63	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x305699a5	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x45c27ea1	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x47a48b51	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5c950914	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x61084d8f	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6323e2df	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899	lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xec147413	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfce4bb75	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x5e547bea	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x658d4978	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x37aa1470	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4a3555a8	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x70a3a427	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x96a6d358	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaf94bd96	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xafaae7ee	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xafd9ed7a	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xccea9485	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xda0324cf	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe30124cd	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xeac07efe	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12d1f242	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x18464768	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x89ee95f0	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9058fe2d	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa7bfda07	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaf7a4028	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd5ee69f9	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe11aa0e1	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf9f4ecf6	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x03ac4495	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0633904a	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x070cc528	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0daf0c03	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x14f5f22b	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1a4f4e88	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26038798	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2b3833a9	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2cfac390	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33106f15	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x377f6425	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40493295	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4dbc501c	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50073cb4	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50f62572	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x512aa7d4	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55aa395c	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58627fac	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e8bd869	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d1eea30	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e6483e5	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8187d6a5	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85699db7	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9174baca	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9231e5d7	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x957bb57f	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa02ebfba	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa758a729	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa7af8fd	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaefba0d4	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc1b31984	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf5ae5ce	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd277b4a6	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd59f0bc1	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf381eff4	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf65a1e75	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe6283a0	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x02511149	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x06eac82d	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ed922d3	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1149182c	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x121ec643	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x230bfa7f	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x345ca6b8	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35b141e2	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x363a0098	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36e65e8f	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x376e0ed6	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3bfe4261	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d09c4f5	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4482eebd	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46986f0f	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48d573a4	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x494bd5bc	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c376f2c	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63b9d4c7	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x712b5720	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7886aacd	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c0aba7f	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c56ef89	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d457024	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x841bcebf	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8839f37a	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8ae77b3c	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bc14b10	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90ea04a5	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91fd8f17	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96f5f942	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa15f14a3	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab04ce3d	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xadd157c4	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaeefe8aa	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb2868391	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb7160a8b	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd24fde4e	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd319c97e	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd60d86c5	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7493c3f	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd76f34b4	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xda695b4d	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe249c5fc	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb9ed966	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfcca32bd	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x08a1ddce	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3ce6f7cc	rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x656ddf9c	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa3a2d7c2	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb28cf87a	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe0682f63	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xecc606cd	rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xeeb5b7a3	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf7ae346a	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x06abe896	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0852311a	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e25bb6b	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x216f441f	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3cff848d	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x411fbf4d	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7cafe8a5	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7f6391ed	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8d507476	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c3ca420	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa61da301	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb8191987	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdbd95f8b	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdc56fc0f	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe2c4716c	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe8e084d6	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x133c3bc1	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x82c64af3	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xca68bff4	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x333539a8	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xb06efb3f	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xc388a4fe	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe4036db9	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xebcbfa23	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xee28a52c	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf8a7f394	wl1271_free_hw
+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 0x02febcd5	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b95dd03	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b59cd30	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1bfdc348	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1e879d07	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1fbff9e3	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x20f8a491	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x21b185d3	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x246cab5f	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x25cfa94c	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2cd028e2	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2d77a385	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x40e25ee3	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x45d2e661	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x477683b5	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b4f02a8	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c029b9c	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x53c33e17	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5464634d	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x57622c1f	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5e938c22	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5fa53219	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5fb47141	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d869544	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73674704	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x75c8b8da	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7b7755ea	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c775ac9	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 0x82959af5	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8537a767	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x96b6205e	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9838d6f2	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x98428fe0	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9af47f5f	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa208e214	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa75aa992	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad952629	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbf0735a2	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcdf2beb7	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcfa0e632	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe8dc55f6	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe9d398be	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed783a43	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfcc60f6c	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x41e1bbe3	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4d23d04f	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x692fa1e8	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9fecd67f	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb464d141	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdead5b0a	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea024c7d	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf6d939e8	fcoe_clean_pending_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 0x055eb92f	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11cbd4b6	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15c20956	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x18449408	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c1819fd	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e39a5fa	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e7b56a4	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x306de360	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b076432	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44bb457c	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x452f9f0c	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5135e8dc	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5862a450	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59f38447	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e9a406c	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c984429	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x734d4285	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d3cff44	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x854eb5d0	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93cac0b5	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9869e910	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e3d5f73	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaec1066d	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xafd050e9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5262b18	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb2ce75c	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4196d88	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc6a2bb8b	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7144a58	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc85b693	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xccb2e1f3	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd135e1cd	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6ea553b	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe25e05ad	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe80703e9	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf13460da	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf15060ea	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5070f49	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6248a5f	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6642bdb	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf72d768d	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfaee5ac2	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff507c4e	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00019726	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x11fb3281	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18f7efb3	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x298262d0	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x359197a3	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x369698a8	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x53a98f47	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x838f720c	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x88d7c527	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ecfef8b	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa87dde38	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xab3aadf5	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb5969cfa	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6caf986	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd72f547e	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe5d8598b	iscsi_tcp_segment_unmap
+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 0x1601245c	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x211c053f	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x222ae7cc	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2369bd90	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ef90ea7	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x433a7441	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4564017e	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x52d6652f	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x543cd63c	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5aff34bc	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x63bafb2e	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6e196577	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7cbf6b7d	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d36b7c4	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98b58872	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xabbda2eb	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xabd18866	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8352af1	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc48e0eb	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbcc5f47a	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbde00637	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc623f16e	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcec1ee8f	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xced0e5ab	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdae7c5f2	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe179e6f9	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf79a3790	iscsi_conn_login_event
+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 0xe85df94c	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 0x137daa79	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x15a2be8b	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x25df715e	sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x277aaecf	usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3e82a580	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4c8d2ebc	usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6e55b1d2	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x70e708b4	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7b1c32ce	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x88393901	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x95407e2a	usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa1f3470f	usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc4c33816	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 0x4cd3835c	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x4f333431	usbatm_usb_disconnect
+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 0x04d8d476	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26061ebc	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2956a5de	usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2f993983	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4b1532cf	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5924ec7f	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6edd557c	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7adc4d2b	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92cca7ee	usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9d651aa8	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xae0f1ca1	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc5ad8254	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xce9a01f5	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 0xe8aafa76	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef80c581	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9a8f222	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd24c5be	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xff1c248d	ezusb_set_reset
+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 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x18ce4596	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x22bcddba	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6d5484a5	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 0x7b3fbf1c	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 0xdcde09a4	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x082fb43a	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0aa847e4	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23890116	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e6e12f5	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x329c97af	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54ccd34d	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d43bd51	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71631044	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76dff53e	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x779966af	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e9c94dd	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84116806	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf588492	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0e66ce2	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf91782ee	nfs_initiate_read
+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 0x13624a46	o2hb_register_callback
+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 0x2ec0d211	o2hb_setup_callback
+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 0x4d635381	o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726	o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6f0ef3f5	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 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 0xab7bc02d	o2hb_unregister_callback
+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 0xc389fe81	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 0xe3e44f0b	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x09f8db10	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6f131a59	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7007016d	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 0xd248935c	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd43e1df1	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf99a3023	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 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 0x2ccf829e	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x2e591017	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x3579aec8	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x65687d1c	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xc090f652	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xff8867bc	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x59d6f476	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xc408bb35	stp_proto_register
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x2614f5bf	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x8d0ef55f	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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xee9bf771	ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xc25fb6e0	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0685450d	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x07711391	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x09b782f6	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x129d1ca5	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x12f5e558	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bac6832	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x228e65db	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x22d66d49	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x26723995	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d6d8710	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x305dd95b	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x397dd029	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a410953	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x476c1211	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x492d59da	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x499bdb33	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e635cf5	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fae99c5	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x546fc810	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x54f8bf83	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x63c194b7	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x68062f70	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6aceb83c	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x70f441c0	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x75f2b9cf	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x811f0394	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x857dd624	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8e1142ea	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x97bc0be2	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7406249	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4c116f3	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0e8721b	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc54c1c30	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2f457a4	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd54ddb25	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3691b9d	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xec8e4a47	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x02f4c20c	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0d505757	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8513adb2	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x86d1a19d	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbce8c338	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc7b8d3d6	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4c0d7c53	register_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdb5c8acc	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x35c0bef6	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0xbc852493	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7febcefe	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xaef3b260	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xbe0a75c5	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x66698007	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 0xc2abe6bb	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 0x932c8f7a	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 0x9522644b	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa6eae1c1	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbd3c2080	nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc902c5b4	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfa8e3979	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 0x222091fe	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x534f0f64	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7ccef47d	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8736ff4a	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf4078e2b	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x7a4619d8	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 0x1597ea6c	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3ddcedf0	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x51247e34	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x52fc4b4f	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c3cf3c7	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d989831	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xab79fc06	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbd7ab415	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdad73861	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4c5749a	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe710d5bb	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf366ad17	l2tp_session_free
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1e183e38	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x42b5394a	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x840d4b52	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1b3b3b3	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 0xe671975b	ieee80211_find_sta_by_ifaddr
+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 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 0x447bc640	ip_set_add
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4b47f621	ip_set_type_register
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5d87fbcd	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5e107dad	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6276768a	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x68e8acc2	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 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 0xdca67a24	ip_set_del
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfd87ffaa	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfef16bf9	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x04d14a88	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x4438c183	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8ee60bba	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc241c29b	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00f0f6c2	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0819ec2d	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x148d5613	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1afd47b5	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f8be519	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x246b74eb	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29322e92	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cea04bd	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39c86791	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d9c4270	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x418070bf	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45d0ad5c	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e11971d	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ff686b4	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54d3550c	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a8005f1	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c4bc5b7	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c69c47e	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ffbb4d1	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60160f48	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6182297a	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x660bedaa	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67b6e1dc	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a3ff5ad	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6cc930ed	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74605287	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76394c9c	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710	nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ccf9120	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7dc0e436	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f502233	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b73348e	nf_ct_insert_dying_list
+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 0x9331dbda	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95998c3c	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x999a3a3d	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9be5d38d	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9faffb4d	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7bfdf1c	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8a72659	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa94a8fb7	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 0xb4b1a8cf	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6f80cad	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba1dd68c	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba32997f	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf41dc6e	nf_conntrack_l3proto_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 0xc21574f2	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8e61467	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb0cfa41	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbdd71f7	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd869774	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1881fc8	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda4eadad	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe04f956e	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe659a9bf	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6fb75c4	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebd70c5f	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecebf673	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0f0a227	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffb0f5f6	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x295d26bc	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x69fe7bb3	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x05af2a9f	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f39552b	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2d5bb90e	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49d210f4	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5786b059	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x62088e87	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8356fa24	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd70fa28c	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe21c98dc	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe439dfa3	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5906409	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfd9da965	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x192be5b8	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x87d94ba0	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8e5f852e	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb2c051f	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x3d9fca0b	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x99e32ebe	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1a6ed12a	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x22ca5445	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45c6bf54	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bf1c29a	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x57d05f93	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78c45e5c	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e79b4ca	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb9e0859c	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcfd3a49a	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd56f311c	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd5c27f1e	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe42cfb36	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf8c90d7d	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x5bd0684c	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x6861ee71	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x594a0952	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2a70377f	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x372a1717	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3bd6ae60	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7f9190e7	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbdbebc67	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe9f13eaa	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xfddb0cb5	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417	xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x228bc938	xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x31ad3f2d	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x398c94b1	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3dc71a7a	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40879830	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4204760b	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54e10d86	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x676b61f5	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x84f94101	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8dfeac74	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x92506f6b	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa4a7baa1	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc3454fb5	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc58a62f3	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd175be6b	xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b	xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7331850	xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82	xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfabb39a1	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfaf4bd38	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfe74b4dc	xt_compat_match_from_user
+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 0x062d4b4b	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x12caa976	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x13673c19	rds_message_unmapped
+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 0x379fd3a2	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x433d434f	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x4c510eeb	rds_page_copy_user
+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 0x6afcede6	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x6c5aaadc	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x6cd58e58	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x6ff05390	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x73241157	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x786cdf5a	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x7c705202	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x7dd0ed7e	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x8627fa94	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xa441b030	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xa5a573c7	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xb43176d2	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xbb3759b7	rds_inc_init
+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 0xc4c0d34b	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xd52dc61c	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xe9a5521d	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x46fe5dc4	rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfbb9cb21	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 0x23ae447f	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3957a9ab	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x409968bd	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x52b12408	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x63beb191	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x90a703e1	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa04024aa	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa7f3e97b	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 0xd7aece5c	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdb9a8cf4	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdd2558bd	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe85cc591	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x025b49ec	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0444ecb1	svc_sock_names
+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 0x06bf986a	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x086bb77d	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0936b55f	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0adaa7e9	svc_xprt_enqueue
+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 0x0fa1e9dc	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11cf706c	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c4870a	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e0d7e1	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18d39d97	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x198df9c7	svc_drop
+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 0x1cc3e38c	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d0be4f2	cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23f95584	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2437d921	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27b95dcd	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29db21fa	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b235f8a	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c02e6ab	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9	xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f6f3939	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306d64c0	rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30ea93ff	xprt_complete_rqst
+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 0x33d442d6	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x357604d2	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36408559	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38adc1a6	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39c280d1	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b4b3050	xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c08a1d4	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ddafde4	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f54a8f6	xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4069dd4a	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40b925d8	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4290e553	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42fcec94	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b1417f1	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c12ae4b	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c162a2f	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c3e136d	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e3df2d5	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e7d9142	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f908686	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ba8ed1	xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50dc66b3	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5201d11a	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x556119c8	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55a01e53	xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5699d8c2	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58d98e06	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5af5b0bb	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a	rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b169890	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000	rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c3cf564	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e3dabf1	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ef2caaf	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x623d00be	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63249a11	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6759a419	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67eab35d	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6abbb11d	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c0375c7	sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d80703d	xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ddde713	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d	svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70b9af43	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x759698b2	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7872329c	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7beb1540	rpcauth_destroy_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 0x7dfc05c6	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x812faaf9	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82e76d70	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83c123f5	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8948f4dc	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89aed506	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b87b90e	xdr_enter_page
+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 0x8e03d682	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e3a4368	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9182e890	svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a	rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94a34e91	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96698438	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9764c7eb	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eb254fc	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fc5b4f1	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0423092	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0c7ce57	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3eaca8a	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4eccab8	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5fbd6fa	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82b95fa	rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa86f9fcb	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab69a372	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac218f09	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad121c56	xprt_reserve_xprt_cong
+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 0xb027edd0	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2bc78f5	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3e1f4a8	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb59a6d26	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6627846	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb86bf167	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9adf4c4	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba109e07	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf1c24fa	xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+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 0xc1e4d38c	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4507e61	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc484d7a6	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6d7c52c	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7d58666	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd6b4038	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3a3cf5e	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4cabfaf	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd56ccccf	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd60c0f53	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd69c5e0e	cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8b35f31	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbeab594	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc62fffd	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf697d90	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1dcafb3	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ffa7c4	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5f5caf2	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7fdd75e	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe87d8b99	svc_seq_show
+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 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 0xeef5d6bf	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef8ef05e	xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf001dc0d	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2ef3d39	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4af6208	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7130b55	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf76617cf	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf80b553c	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf810e3f8	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf89136c0	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8b8dd14	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb8dca9a	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc061d82	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcca1891	xdr_terminate_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdd06501	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe6dee81	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x200e7d5e	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2032d084	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x54ddfaa8	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6ffa2bcf	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x80a0ce9c	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x9b059406	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa15f3a20	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa24388ff	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6402c70	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xab3cfa68	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc929ee9a	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0dd56f5	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xfee1bdf5	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x174f80c0	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x31a2760c	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5201a795	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x521c652c	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6073cd5f	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x70658be2	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f8b4f20	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a6fbee7	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa7365c82	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5ce8d42	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd8b63614	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x223dba44	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x334d4748	ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc42978f8	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcd4e2e20	ipcomp_destroy
+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 0x000469df	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02f28d1e	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x056e2141	snd_hda_queue_unsol_event
+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 0x07ac9663	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb3c2b5	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bfd7286	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c95cdb7	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1710c3d6	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1aac8b92	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ad8fa97	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b46f6cc	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2298c8b7	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22b6e0ad	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23026071	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23e4ceeb	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dec8c5c	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2eed0dcf	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fe4c7a6	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32382770	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34df7cd3	snd_hda_spdif_ctls_unassign
+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 0x3c0a46d1	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d2ac2f7	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47aab1ad	snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48dde59e	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60	snd_hda_add_imux_item
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e440fd2	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53124e08	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63a0b945	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x663dddef	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68c43791	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e62ec88	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6fb59efb	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71daed44	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72213587	snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76275929	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77c86a41	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7da9a986	snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fd83909	query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80b90884	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8539241e	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x858860f7	snd_hda_jack_tbl_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8999ee7a	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a8c6f5a	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c56736e	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826	snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e9754d6	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9399ea76	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94934563	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95e6e876	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98ca1e36	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98f78e44	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b7ea564	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c168ca2	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d998ee4	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa24f86d7	snd_hda_mixer_bind_tlv
+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 0xa3580787	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5d054b4	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6fd3f3f	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa702b60c	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5bcdf37	snd_hda_jack_tbl_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7999c43	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb0f0be0	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbdf3a04d	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe87644b	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc07261f8	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0980579	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc461eb91	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5f4906d	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6094cfb	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc61dae87	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69	snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc67cdc93	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc76d0bea	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e	snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce63860b	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf1b38b9	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0a6eca1	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0ef5217	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3e43070	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4b2f8ce	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd72e27af	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8f417bf	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda17f5bb	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdab908eb	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbf14423	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf2abaec	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0579491	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1e2cdbb	snd_hda_mixer_bind_switch_get
+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 0xe67f946d	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8f70082	snd_hda_check_amp_list_power
+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 0xeddc7df8	snd_hda_codec_write_cache
+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 0xf26d74fb	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2b0df8f	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf30586a5	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3a1e69b	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf537c7e2	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf83699d9	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf89d7ffb	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf98b7394	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcc04cea	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff8fa7d0	snd_hda_ch_mode_get
+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 0x007ede39	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0083e209	snd_soc_dai_set_channel_map
+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 0x09e84ff7	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0caa1dbd	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d575e18	snd_soc_dai_digital_mute
+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 0x11608ac0	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12bd93d2	snd_soc_get_value_enum_double
+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 0x1971839d	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e53e0ad	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fd404a8	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21560867	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25d9b3ad	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28186c0a	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x28cfddd7	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2952c808	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x296db826	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cf9188c	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f0b6570	snd_soc_poweroff
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32ec6482	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38713a61	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d003159	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3dc66fab	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40650ef8	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4151237c	snd_soc_dai_set_pll
+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 0x4899d07b	snd_soc_cache_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d8338c9	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e0df13d	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e7d0911	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a98b48f	snd_soc_jack_free_gpios
+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 0x625a87c3	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6490ece2	snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6666343e	snd_soc_info_volsw_s8
+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 0x6a008a22	snd_soc_info_enum_double
+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 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 0x7120c9a6	snd_soc_register_platform
+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 0x7525772e	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x756e81f8	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78ade0d3	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78e66a93	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x793f8878	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80f6acf2	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81cf5fbf	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 0x87411df3	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88048eb9	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a93394f	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8aa042b6	snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c2a6d24	snd_soc_register_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91c3cc71	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9790b90d	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98b117fd	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bca134b	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3c2e05a	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb43363f9	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb91bbcdb	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9fe009e	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbf841ad	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc3ab410	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd3e1173	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf576c58	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1127529	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc19f5e4b	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc65c2a0a	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8e12d6d	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb89d33b	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcccf8d9f	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd05f65f4	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd30deb09	snd_soc_cache_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd70c9d44	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78f4afa	snd_soc_dapm_get_pin_switch
+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 0xe713253c	snd_soc_platform_read
+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 0xebcd986f	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf52fc79a	snd_soc_put_volsw
+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 0xf8055131	snd_soc_info_volsw
+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 0xfc16d62f	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe24bcc1	snd_soc_info_enum_ext
+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 0x01168ff7	ipv6_opt_accepted
+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 0x01812c25	crypto_register_pcomp
+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 0x01e8c8d0	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x0201221a	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x02548bd7	blkiocg_update_timeslice_used
+EXPORT_SYMBOL_GPL vmlinux 0x026211e2	memory_failure_queue
+EXPORT_SYMBOL_GPL vmlinux 0x028c069a	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x02a0615c	xenbus_read_otherend_details
+EXPORT_SYMBOL_GPL vmlinux 0x02c39a74	sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x02d01ff3	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x02d4d85c	platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x031a6e76	rtnl_link_register
+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 0x042ba29c	i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x04379103	blk_rq_err_bytes
+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 0x04928e8e	debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04d832c6	kobject_uevent_env
+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 0x053d77a2	crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b	kernel_halt
+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 0x06a2ade0	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x06ace32b	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x079d8839	raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea	xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x081ec13a	hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x086b0936	crypto_register_shash
+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 0x091eb9b4	round_jiffies
+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 0x0a2be479	rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x0a30b662	led_trigger_blink
+EXPORT_SYMBOL_GPL vmlinux 0x0a3c7b32	rio_get_device
+EXPORT_SYMBOL_GPL vmlinux 0x0a560c1b	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x0a711ac5	perf_event_refresh
+EXPORT_SYMBOL_GPL vmlinux 0x0a9d79b4	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0aa16da1	adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x0ac87c24	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x0acc6bc2	da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x0add0df3	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x0aee286d	crypto_enqueue_request
+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 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 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 0x0d1dc61f	crypto_shash_digest
+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 0x0d6af987	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x0d790547	crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x0dd1ea6c	__sock_recv_timestamp
+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 0x0e4c6a45	inet6_destroy_sock
+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 0x0f091c83	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x0f0cc082	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0x0f205be1	sata_link_scr_lpm
+EXPORT_SYMBOL_GPL vmlinux 0x0f52942c	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0f801e4d	find_vpid
+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 0x1061ae63	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x1093bea8	regulator_bulk_get
+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 0x11bbbd71	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x11cd4c65	task_xstate_cachep
+EXPORT_SYMBOL_GPL vmlinux 0x11e2b3c4	__scsi_get_command
+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 0x129052ab	relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x12927f09	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x12bd7523	cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x12d2137b	sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x12ff0e7c	xfrm_output
+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 0x13677f0a	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x138aff76	gnttab_init
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946	register_keyboard_notifier
+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 0x15062c4a	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x150be110	driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x151fcc02	sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1544e8e5	__inet_hash_nolisten
+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 0x1670e8a9	tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x16bb7b09	bus_set_iommu
+EXPORT_SYMBOL_GPL vmlinux 0x16d5c5b5	devres_open_group
+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 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 0x186353a1	event_storage_mutex
+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 0x197cea54	crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19b950af	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x19d99d09	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60	regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x1a02ca48	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x1a1d1ccd	devres_close_group
+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 0x1b0f2161	find_symbol
+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 0x1b9aca3f	jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba160ba	xenbus_register_driver_common
+EXPORT_SYMBOL_GPL vmlinux 0x1ba984fd	register_pernet_subsys
+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 0x1c852e7c	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1cb095b2	fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1cb30bb9	yield_to
+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 0x1d1e7453	shash_ahash_finup
+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 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 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 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 0x22408f0a	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x224ae6cc	register_efivars
+EXPORT_SYMBOL_GPL vmlinux 0x226c021e	class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x22811f1f	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d	crypto_attr_u32
+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 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 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 0x249c35ad	perf_event_read_value
+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 0x257275e8	crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x258d0c4f	rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x25bc392d	raw_unhash_sk
+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 0x275e6df1	skb_pull_rcsum
+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 0x285fc4b4	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x287866e1	platform_device_register_full
+EXPORT_SYMBOL_GPL vmlinux 0x287f9e42	sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x2881faaf	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x28d28848	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28d81be9	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139	xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f7c124	crypto_alloc_ahash
+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 0x29eac489	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0x2a14072f	inet6_csk_search_req
+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 0x2aa822a4	net_ns_type_operations
+EXPORT_SYMBOL_GPL vmlinux 0x2aabea2e	blkiocg_update_io_merged_stats
+EXPORT_SYMBOL_GPL vmlinux 0x2ac4de2d	ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x2afcfacd	register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x2b1e7724	__module_text_address
+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 0x2b7197a9	replace_page_cache_page
+EXPORT_SYMBOL_GPL vmlinux 0x2bb6c063	tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x2bc7e840	queue_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x2bd40ebc	gnttab_unmap_refs
+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 0x2c54b587	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL vmlinux 0x2c7d961c	ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64	xen_store_interface
+EXPORT_SYMBOL_GPL vmlinux 0x2c81487e	rtnl_put_cacheinfo
+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 0x2cf31dc7	regmap_init
+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 0x2dd6bf3b	wm831x_bulk_read
+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 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 0x2ec92012	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2ed22449	dw_spi_remove_host
+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 0x2f6f945a	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551	machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2f86e5d3	css_depth
+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 0x2ffb1b4d	regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x3017ce95	cgroup_unload_subsys
+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 0x30b18e2c	get_task_pid
+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 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 0x319d4626	__sock_recv_ts_and_drops
+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 0x31fb9de0	dev_forward_skb
+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 0x328dd337	add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x32912262	remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x32a49620	ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x32aa5edb	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c	ktime_get_boottime
+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 0x335ead9a	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x336154ca	rcutorture_record_test_transition
+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 0x346f7f8d	gpio_export_link
+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 0x34ff064a	skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x351d493e	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x3536c0fe	md_run
+EXPORT_SYMBOL_GPL vmlinux 0x3547d3af	tcp_death_row
+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 0x36637089	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x36875389	__timecompare_update
+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 0x36f3966c	vfs_test_lock
+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 0x3784d7a0	find_module
+EXPORT_SYMBOL_GPL vmlinux 0x3786aec9	rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x3787003f	register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x37920323	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x37952554	wakeup_source_create
+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 0x384053e7	erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0x386b1cf2	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x38741fe7	disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x388181cb	xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x389bb38e	inet6_hash_connect
+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 0x397f44d6	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x398c7b4f	driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x39b81fff	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x39be511e	platform_bus_type
+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 0x3a26ed11	sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a398ef8	aead_geniv_exit
+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 0x3ad6d6d3	regmap_init_spi
+EXPORT_SYMBOL_GPL vmlinux 0x3b1997b4	devres_remove_group
+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 0x3be89d3c	usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c013a58	da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x3c54e514	preempt_notifier_register
+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 0x3cac21b9	regulator_sync_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x3cb3a227	register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035	add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f	register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d32e241	crypto_attr_alg2
+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 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 0x3ea4cc00	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d	apei_osc_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3edad223	usb_usual_clear_present
+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 0x3f84d4c9	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f869015	ata_sff_postreset
+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 0x407dcfe6	inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x409fc723	xfrm_audit_state_add
+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 0x412b09bb	regmap_raw_write
+EXPORT_SYMBOL_GPL vmlinux 0x4146f9a9	tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x41c7d97e	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0x41dc5b35	sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x41f340db	usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x41fa7361	crypto_alloc_pcomp
+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 0x4257ea23	blk_add_request_payload
+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 0x430173b2	register_net_sysctl_rotable
+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 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x43fb35ea	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x440a1d66	serial8250_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4428ef3a	scsi_flush_work
+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 0x4466118a	regulator_get_init_drvdata
+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 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 0x45c1ad18	crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x45c7eedc	free_css_id
+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 0x461d84f3	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x46343236	tcp_done
+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 0x468dceec	raw_seq_open
+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 0x470a5a04	blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c	gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x474359b6	kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4761ba97	inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x47974f9b	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0x47b53363	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x47d1a694	sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x480b818b	class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x480b9a4e	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x480feaa3	inet_csk_bind_conflict
+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 0x4882786c	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4885ad6a	perf_event_release_kernel
+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 0x491fe435	tpm_release
+EXPORT_SYMBOL_GPL vmlinux 0x492a7359	ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x4975b74b	md_rdev_init
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3	crypto_init_queue
+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 0x4a352d98	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL vmlinux 0x4a3b5b80	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x4a6da887	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x4a78cde0	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x4a790e7f	kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a	ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x4b2b26e9	pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4b4e8da0	usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x4b840dfd	probe_kernel_read
+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 0x4bf52e24	nf_unregister_queue_handlers
+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 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 0x4d388d1e	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4d69bbdf	wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4d96deb5	kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x4da02c56	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4da31d4d	ablkcipher_walk_done
+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 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x4e3c549d	ip6_local_out
+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 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 0x517a09a2	raw_seq_stop
+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 0x520603d5	crypto_spawn_tfm
+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 0x5346c012	unregister_wide_hw_breakpoint
+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 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 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 0x5510f2ef	ahci_start_engine
+EXPORT_SYMBOL_GPL vmlinux 0x552567c0	inet_putpeer
+EXPORT_SYMBOL_GPL vmlinux 0x553746fe	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x55526907	xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55600dda	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x5583d3a8	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x55961e01	xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x559d2f0f	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x55cac4cd	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL vmlinux 0x55d834c7	pm_generic_suspend_noirq
+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 0x564c06c1	netdev_rx_handler_register
+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 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 0x57c41776	eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x57c4691b	queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x57ce861c	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x57e967d7	raw_seq_next
+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 0x590a63c9	init_dummy_netdev
+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 0x59715cf3	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x598ac721	simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x59eae699	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2	disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a72479d	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a9e8a55	crypto_init_spawn2
+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 0x5b80ea2c	modify_user_hw_breakpoint
+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 0x5bf33c80	driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3	unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c14354d	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x5c1830af	ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x5c49cf3a	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5c4b0cda	xfrm_output_resume
+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 0x5d46cc0b	crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5d48a650	m2p_find_override_pfn
+EXPORT_SYMBOL_GPL vmlinux 0x5d496571	inet_csk_get_port
+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 0x5dcb14a1	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618	register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5de9046b	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x5dfaf320	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL vmlinux 0x5e2ec635	tpm_get_timeouts
+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 0x609ed25e	inet6_csk_reqsk_queue_hash_add
+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 0x614d10be	__rtnl_af_register
+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 0x61c10a4c	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x61ce014b	bsg_register_queue
+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 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 0x635ec980	apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x638dad19	nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09	bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x641f6797	wm831x_device_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x64623320	shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x64a6a1d3	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x64a944e9	skb_morph
+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 0x653c55b7	register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x6551699f	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x6574b95a	mnt_want_write
+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 0x65d49851	get_net_ns_by_pid
+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 0x66764299	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0x667bb6a4	inet_csk_addr2sockaddr
+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 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66e79f46	pm_stay_awake
+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 0x6772a6b1	platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x678dbd09	atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a56800	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x67ac77f4	netdev_rx_handler_unregister
+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 0x690223e4	posix_timers_register_clock
+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 0x69f5609d	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x6a351d0b	ata_bmdma_post_internal_cmd
+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 0x6ac9816e	ahash_free_instance
+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 0x6b29a1fa	ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b2cafdf	clone_private_mount
+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 0x6c376f00	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2	clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8	__gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c9d903d	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x6cc6c1b7	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL vmlinux 0x6cd178e0	tpm_continue_selftest
+EXPORT_SYMBOL_GPL vmlinux 0x6d093633	each_symbol_section
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d3f3829	input_class
+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 0x6e7de3e6	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x6e8ca4f4	adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6e9940ad	unregister_ftrace_event
+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 0x6ed400d7	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x6eec6b49	sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0x6ef0086e	dw_spi_add_host
+EXPORT_SYMBOL_GPL vmlinux 0x6f003c40	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e	kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f3a4126	__remove_pages
+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 0x6fae9dd2	skb_partial_csum_set
+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 0x712960fb	debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7	debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x717149d9	inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x7176ddae	pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x7185def8	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7187627e	__irq_set_handler
+EXPORT_SYMBOL_GPL vmlinux 0x71908026	vfs_listxattr
+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 0x727cf68e	__netpoll_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x72a35c2a	wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x72b212ff	regulator_bulk_enable
+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 0x731dba7a	xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x735ab98f	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x736f023b	led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7373f16c	posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x73a0d982	transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x73a139d9	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73d69364	ring_buffer_change_overwrite
+EXPORT_SYMBOL_GPL vmlinux 0x7404675b	unregister_efivars
+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 0x74baf17a	tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74c08941	kvm_async_pf_task_wake
+EXPORT_SYMBOL_GPL vmlinux 0x74cc7488	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c	used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e00c40	usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x74f74ffd	blk_end_request_err
+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 0x756ea0a3	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x75b20f59	eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x75e1d842	pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x75e35699	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x75e81273	rio_dev_put
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x760f0523	hrtimer_init_sleeper
+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 0x7691cd3e	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x769226b7	register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x76aabe43	mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5	kvm_read_and_reset_pf_reason
+EXPORT_SYMBOL_GPL vmlinux 0x77b999f2	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x77d1ead7	xfrm_audit_state_notfound_simple
+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 0x78466517	get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x7893ae4e	adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x78b599b0	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33	acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x78ef9224	__lock_page_killable
+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 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 0x7a6effa4	blk_queue_bio
+EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175	amd_erratum_383
+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 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 0x7c3e8861	regmap_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7c77af0d	xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0x7c83715a	transport_remove_device
+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 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 0x7d2e63bd	xfrm_audit_state_delete
+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 0x7dc5d0b6	crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7dfec7d5	__inet_inherit_port
+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 0x7ed97725	regulator_unregister
+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 0x7f58598d	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x7f618785	rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7fb79250	iommu_domain_has_cap
+EXPORT_SYMBOL_GPL vmlinux 0x7fbadd7e	bsg_request_fn
+EXPORT_SYMBOL_GPL vmlinux 0x7fc93d55	init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x7fd5bdee	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x7fe7bc8d	skcipher_geniv_init
+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 0x801f464a	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0x8083867b	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3	crypto_alg_tested
+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 0x80f92692	pci_sriov_migration
+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 0x817371d9	rio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8187578b	sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x81c3b7df	fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f	__gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x824db172	rtc_device_register
+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 0x8294e035	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x82be50e0	crypto_givcipher_type
+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 0x82f71944	sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7	gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x830f9159	skcipher_geniv_free
+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 0x83d7ff71	locks_release_private
+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 0x853d0250	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b	inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x8565420e	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x8592befb	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x859aea9a	xen_set_domain_pte
+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 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 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 0x86bf5457	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x86c065a4	max8997_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x86dc5a5e	devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x86edce36	dm_set_device_limits
+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 0x874f488b	crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x87754115	raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87799a59	scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x8793dda1	find_get_pid
+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 0x881f2558	proc_net_fops_create
+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 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f	gnttab_max_grant_frames
+EXPORT_SYMBOL_GPL vmlinux 0x891c1594	regmap_exit
+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 0x899636c1	__srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf	usb_usual_check_type
+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 0x8a175c07	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8a24b5e2	do_kern_mount
+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 0x8a855b74	sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x8abacc47	get_max_files
+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 0x8b808dbc	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0x8b869f0c	__tracepoint_rpm_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd	lookup_address
+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 0x8c4ab4f4	aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x8c591134	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x8c655ba5	crypto_unregister_pcomp
+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 0x8d062a0a	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x8d7a8845	xenbus_probe_node
+EXPORT_SYMBOL_GPL vmlinux 0x8d8bc7cb	skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x8da6b475	pci_destroy_slot
+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 0x8ebb3fb5	rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8ebeda58	firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x8ec3252b	tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8ec7d5fd	part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x8ed3c1ef	usb_hcd_platform_shutdown
+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 0x8f4bb00b	rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x8f53a267	tcp_register_congestion_control
+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 0x90064075	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a	acpi_bus_get_ejd
+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 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 0x90e1ee2b	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0x90f64e0e	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x912ea78f	ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6	hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x91367842	crypto_register_ahash
+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 0x92121c10	sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x922e89d3	show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x9324e3cc	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x93260715	register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x9338c58b	crypto_ahash_setkey
+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 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 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 0x951e6e26	regmap_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x95321a21	inet_csk_clone
+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 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 0x9611609a	tcp_get_info
+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 0x966eaac9	usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x969214e8	i2c_new_dummy
+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 0x9725370d	pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x9745a073	xfrm_audit_state_replay_overflow
+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 0x97b75d32	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x97e5a805	pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0x98328ff4	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x9841c517	crypto_blkcipher_type
+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 0x9924c496	__usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x992d0e1b	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071	prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99ab3778	blk_insert_cloned_request
+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 0x9a54f78a	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x9a5e0487	put_device
+EXPORT_SYMBOL_GPL vmlinux 0x9a6205f8	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74	suspend_set_ops
+EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9b04a55e	ip_build_and_send_pkt
+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 0x9bcdf5f0	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x9bfe7591	inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x9c2a9256	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x9c2b7478	crypto_lookup_template
+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 0x9c951c3e	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x9ca9dd3a	xen_swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b	xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b	register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d087be5	rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1	gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d4a6f52	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x9d7e544e	__blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d	pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x9dea51b3	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0x9e05557f	device_wakeup_disable
+EXPORT_SYMBOL_GPL vmlinux 0x9e328452	rio_mport_write_config_8
+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 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 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 0xa073abf4	set_online_page_callback
+EXPORT_SYMBOL_GPL vmlinux 0xa081b76d	vfs_lock_file
+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 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 0xa1c621ec	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0xa1cbeb83	blkcipher_walk_phys
+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 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 0xa3ca61a1	crypto_alloc_shash
+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 0xa47c371f	__ip_route_output_key
+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 0xa56da40c	module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xa57828de	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xa59cbaf8	cred_to_ucred
+EXPORT_SYMBOL_GPL vmlinux 0xa5b28fb6	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa5bbb767	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0xa5c512aa	set_cpus_allowed_ptr
+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 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 0xa722a819	cpu_has_amd_erratum
+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 0xa7a3a098	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0xa7ddc2b0	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xa7e48836	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xa7f92105	add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xa7fd51b3	wakeup_source_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa80fe99b	scsi_nl_add_transport
+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 0xa89fcdaa	regmap_read
+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 0xa95acf3f	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xa9916cdd	user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa99e3fcb	debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xa9a420e8	__xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8	unregister_oom_notifier
+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 0xaa5f1a1c	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xaa7f70ab	dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xaa852c93	regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xaaee05cf	dm_requeue_unmapped_request
+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 0xaba1ac83	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xabc83a5f	devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0xabdfebe6	ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xabe2dc6c	xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xac10e663	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xac4d2720	gnttab_map_refs
+EXPORT_SYMBOL_GPL vmlinux 0xac5c1ce9	device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xac76a763	lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xac9ce195	kvm_async_pf_task_wait
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7	vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xaccaefa2	sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacda5658	proc_net_remove
+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 0xadd82d28	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d	tpm_pcr_read
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae1df6dc	vfs_getxattr
+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 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 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 0xafd3a139	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xafdbe7b6	generic_drop_inode
+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 0xb0b22b98	rtnl_register
+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 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 0xb25dde19	shash_attr_alg
+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 0xb35125ad	crypto_unregister_ahash
+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 0xb3deabe9	crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xb3e8908f	ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xb41128ff	__clocksource_updatefreq_scale
+EXPORT_SYMBOL_GPL vmlinux 0xb43822b6	set_task_ioprio
+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 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 0xb57f9222	xfrm_audit_state_notfound
+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 0xb617c315	key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f	gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb623f350	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xb64b0904	sdio_memcpy_fromio
+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 0xb75f45c7	device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0xb76a277d	tcp_reno_ssthresh
+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 0xb8700368	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb8851b98	tpm_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xb89f16f1	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xb8d015d1	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xb8db9e2f	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0xb8f5c97e	sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c	scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb9071178	dequeue_signal
+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 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 0xbb2860fc	regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xbbaaee29	inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbc3a968	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0xbbcc39b7	rtnl_af_register
+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 0xbc919387	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0xbcba2523	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xbccb7b79	ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46	unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd758a26	device_set_wakeup_enable
+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 0xbdf1d229	crypto_rng_type
+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 0xbe433dc2	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xbe5bf830	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL vmlinux 0xbe9f2fb5	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xbed20d9a	__wake_up_locked_key
+EXPORT_SYMBOL_GPL vmlinux 0xbedc3a50	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbf9a4161	dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434	pciserial_resume_ports
+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 0xc03ab504	setup_deferrable_timer_on_stack_key
+EXPORT_SYMBOL_GPL vmlinux 0xc04d60f3	led_classdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xc07680e6	crypto_shash_update
+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 0xc137aa34	__get_user_pages_fast
+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 0xc29dc7a2	transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc2d65bbf	hvc_alloc
+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 0xc31a125f	kick_process
+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 0xc3e7e002	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xc3eb6b0a	tcp_twsk_unique
+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 0xc44b5c4f	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf	ata_mode_string
+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 0xc50e0efe	inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0xc512626a	__supported_pte_mask
+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 0xc5748292	find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xc5a3c09a	ahci_save_initial_config
+EXPORT_SYMBOL_GPL vmlinux 0xc5c264a5	amd_erratum_400
+EXPORT_SYMBOL_GPL vmlinux 0xc5cc42fe	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xc5e23920	cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec	__ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc61dcec4	seq_release_net
+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 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 0xc81c1073	crypto_mod_put
+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 0xc8d60354	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xc8f48116	vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1	kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc912931d	pci_disable_pasid
+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 0xc9c3f176	hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc9c8de8f	usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21	free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9f4dd26	netlink_has_listeners
+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 0xcb39cde2	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xcb3a3547	tpm_open
+EXPORT_SYMBOL_GPL vmlinux 0xcb4535ee	queue_delayed_work_on
+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 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 0xcc2289cd	cgroup_add_file
+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 0xcd44d6aa	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xcd61ca1f	__audit_inode_child
+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 0xcd9e02c7	dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xcda3c170	skb_cow_data
+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 0xcf3d9c7e	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0xcfa9e7d9	sk_attach_filter
+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 0xcfd16182	inet_csk_reqsk_queue_hash_add
+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 0xd054cf31	register_mce_write_callback
+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 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 0xd17386a6	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xd1a43678	agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0xd1b28cf3	seq_open_net
+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 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 0xd2eafc7b	bus_get_device_klist
+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 0xd37e13b4	regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xd3b3619a	blk_unprep_request
+EXPORT_SYMBOL_GPL vmlinux 0xd3c1a7d6	tcp_set_state
+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 0xd3db6035	crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xd4022860	sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL vmlinux 0xd4042d74	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xd44f6123	scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xd4a6605e	sock_prot_inuse_add
+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 0xd4f76ad3	__wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd4f8d026	xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0xd501b9e6	console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xd516f50c	spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xd53bc067	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd59668e6	unlock_flocks
+EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd5fc75b3	tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL vmlinux 0xd608fc0e	pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xd6460c8c	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xd66c7d50	inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0xd6703a8c	tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xd67b4750	xv_malloc
+EXPORT_SYMBOL_GPL vmlinux 0xd67b7791	ata_slave_link_init
+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 0xd76e6624	tcp_unregister_congestion_control
+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 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 0xd878681a	tcp_twsk_destructor
+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 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 0xda1d0edd	crypto_shoot_alg
+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 0xda477a71	tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0xda4f3923	driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xda5ccd32	sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xda770df0	unregister_pernet_device
+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 0xdb12a335	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0xdb2323e1	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52	monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb7bcdb8	led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xdbcce6b4	fib_rules_lookup
+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 0xdca4307d	dev_change_net_namespace
+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 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 0xdd7f9ba3	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdd86303e	blkcipher_walk_done
+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 0xde653e9b	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xde689816	sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xde84a537	task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0xde9215c8	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xdea18a1f	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0xdea4adc6	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xdf194549	power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0xdf2de7b4	usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xdf67bc4b	bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xdfaa62a2	sync_filesystem
+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 0xe0be41c0	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0d339e6	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0xe0d5eb5b	xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xe0f67b9a	tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL vmlinux 0xe1397a16	device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe1787440	css_id
+EXPORT_SYMBOL_GPL vmlinux 0xe19c40d3	usb_get_from_anchor
+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 0xe23d704c	xfrm_audit_state_icvfail
+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 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 0xe386450e	crypto_alg_lookup
+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 0xe3c57948	usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xe3c7fe8f	inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xe3d81128	acpi_get_pci_dev
+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 0xe4975441	transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xe4986059	__put_net
+EXPORT_SYMBOL_GPL vmlinux 0xe4c2c36c	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0xe4e2d9ed	scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0xe542aec0	blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0xe55f966e	__mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xe5721798	page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xe5735c99	unregister_hw_breakpoint
+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 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 0xe5f932aa	hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0xe60bc198	pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f	gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe61ca5e5	sk_clone
+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 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 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 0xe84f6e5c	pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe8858d84	get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xe8939747	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe89bd243	ata_sff_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xe90cb2a9	crypto_nivaead_type
+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 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 0xea29a8b6	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f	atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL vmlinux 0xea5c64ad	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xeaa71cd7	init_fpu
+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 0xeb08e637	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xeb263e32	sock_prot_inuse_get
+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 0xebd499aa	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xebec1bf0	__trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xebf0d606	apic
+EXPORT_SYMBOL_GPL vmlinux 0xec0996f7	simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xec177494	crypto_grab_aead
+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 0xec4e41bd	tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xec5c98aa	pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xec9c4a2a	fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0xec9db2c0	blk_trace_remove
+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 0xed9305f4	vfs_kern_mount
+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 0xee38b4cf	shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xee5fedab	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xee63a1d4	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xee6aafac	get_task_mm
+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 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 0xefa2b2b3	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xefb2a44d	blkcipher_walk_virt_block
+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 0xf02ead94	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf03a519b	gen_pool_avail
+EXPORT_SYMBOL_GPL vmlinux 0xf067907c	usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401	acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf069733f	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xf06f0002	ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0xf0920de9	sata_pmp_port_ops
+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 0xf128c257	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xf1437a37	blk_lld_busy
+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 0xf1e15ba7	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xf1f291c5	mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xf232fddb	__init_kthread_worker
+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 0xf397dc9e	crypto_aead_setauthsize
+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 0xf436b17f	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xf44ea3ca	spi_add_device
+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 0xf50b92cd	inet_ctl_sock_create
+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 0xf5813472	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xf5833584	bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0xf591df6c	udp4_lib_lookup
+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 0xf5ebfb07	inet_twsk_schedule
+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 0xf6748423	__i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf6c15c6b	__put_task_struct
+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 0xf7322bc8	pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0xf735c56f	hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0xf7589373	sk_detach_filter
+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 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 0xf84180c6	crypto_shash_final
+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 0xf8d6c1c8	crypto_ahash_final
+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 0xf980166e	preempt_notifier_unregister
+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 0xf99cbd3f	vfs_cancel_lock
+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 0xf9d4caf5	inet6_csk_addr2sockaddr
+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 0xfa26d4c3	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xfa2a9c9b	stmpe_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xfa4509f5	wakeup_source_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfa4a647e	klist_iter_init
+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 0xfab6f47c	posix_clock_register
+EXPORT_SYMBOL_GPL vmlinux 0xfac6f3f1	tps65910_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xfae6ad58	crypto_spawn_tfm2
+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 0xfc367678	inet_hash_connect
+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 0xfd1989d9	sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281	gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd66f0a4	pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfda0af0d	inet6_csk_bind_conflict
+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 0xfe01475f	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL vmlinux 0xfe708551	regmap_write
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411	get_phys_to_machine
+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 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 0xffa4c4ec	cgroup_lock
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/amd64/virtual.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/amd64/virtual.modules
@@ -0,0 +1,3307 @@
+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
+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
+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
+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
+uas
+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-36.57/amd64/virtual
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/amd64/virtual
@@ -0,0 +1,12499 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x410ec8e1	kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x8ad38f37	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 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 0x7ec59dc1	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x0a8a255a	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 0x7e5ef105	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 0x305f1730	ibnl_put_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x343ca702	ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34a77791	ibnl_add_client
+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 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 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 0xb1a4a318	ibnl_put_msg
+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 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 0x01e8706a	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05119354	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x081e3538	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x114852ad	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2141b6ef	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x225d8e4d	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3aab215f	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4029b140	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4174b6b1	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x46be5e69	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ea71bd4	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa080e76d	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0beb6e1	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa260f8e3	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbeb1358c	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc2f5e3a8	rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc60fdabc	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd178d171	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf96f475d	rdma_destroy_id
+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 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1d611ba6	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x211e956f	capi_ctr_suspend_output
+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 0x31208840	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4	capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3462f6e0	capi20_put_message
+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 0x5f01131f	detach_capi_ctr
+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 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 0x8c508f9d	capi20_release
+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 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 0xc62a3051	capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcc4108ed	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcc4c9f54	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 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf64ed45e	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1a825ae2	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1adf55aa	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x264ee91b	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x504a62fb	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x53cb51cb	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6bfb1760	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x81a944fd	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa25ea5b6	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa590d2c7	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5bd5c23	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa5f3a988	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xae0f9909	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb9dbb646	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbfb81c5f	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe721886d	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x08b6a825	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1f79d16d	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7dc3bbb9	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x83d92dfe	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xac2504f1	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb8feb482	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xcc415823	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd3dd2d50	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf88acc97	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 0x263904aa	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x308b57df	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4e7f33ee	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc23070b8	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x57e37a8c	mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd0c46fcd	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 0x43b71c28	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 0x06d706e5	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x75677418	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9a83bb10	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa97c3285	isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xac602729	isac_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x23bedf7e	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x2e8fd95d	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa250784b	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 0x01b8150c	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1528e3b8	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x17cc91dc	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1cedc2ae	get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b49a3f0	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d39588c	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3bb76d26	mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4b2ef2f4	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d57f4e1	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x528d44cc	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388	mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x571d9d38	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6	l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5a9832df	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5d403cfd	create_l1
+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 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9747e6f9	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa72b947d	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa7378bf8	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbb3ef334	mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf29b3f4	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4decfeb	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdedab4cf	mISDN_register_Bprotocol
+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 0xf8ec8346	recv_Bchannel_skb
+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 0x3d6a45dd	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x5a337c1a	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x5c098b9f	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0xf5d58f02	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x29c597c1	dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x7ca55dae	dm_snap_origin
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xa48ffa32	dm_exception_store_create
+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 0x02cbfcb2	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x07bcf492	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x128e0d90	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x20e99c48	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2396f750	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x38e0ea96	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3adb2a4d	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x422dc5d2	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5712743c	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x59df1793	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b9283d5	flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e70ff6e	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x76af5494	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8944a5d4	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9a633ed3	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa2aa84bb	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb55c7e20	flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc85ccf6c	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd5c10b7e	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdeb898e4	flexcop_dump_reg
+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 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 0x77e8320a	dvb_net_release
+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 0xcc1607bd	dvb_net_init
+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 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 0x381b6a06	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4b9612e4	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7ab7f33d	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x85e86805	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 0x2e480147	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 0x12df3d89	dibusb2_0_power_ctrl
+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 0x515c431f	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x73de8fe2	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x74b36827	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafab7577	dibusb_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 0xc342d617	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdaae005b	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe57ce828	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfa25a772	dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfa6bcd88	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 0x24ad2985	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x842e2684	cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x90dbdd07	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9e39dbaa	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xa4dbe328	cx18_stop_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 0x5e394c0e	videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6fa79574	videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x71e6207b	videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa14c81e6	videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd0441eda	videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe675cab5	videobuf_dvb_alloc_frontend
+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 0x1c2fe642	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2187f52e	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4ef538c2	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x57d800af	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9e762b27	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb22254c4	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbd2db372	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xccfa4ed9	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe230e610	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfc27170c	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x16bca035	com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x24af184a	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb8cce4f4	com20020_check
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1988e7de	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x19a09a5c	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x228de729	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x59112b52	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5af10e85	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x86a0a2c3	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8b1c917c	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x96156081	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd975e4a5	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xed31d732	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xf64b42dc	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0xb9047f15	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x8d723052	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1792d078	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b8fcd6f	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3e4340e6	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x55804819	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x63330463	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x691345a2	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x711da381	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8e350edf	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9f4bd5c8	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa24fcfae	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc8eed214	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xca06cbbd	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd5a8dcf6	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe98cf490	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf41014eb	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf449ec48	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x21c9699c	cxgb4_pktgl_to_skb
+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 0x58d56781	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b01e926	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b894543	cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68cb71be	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7d5602da	cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d96af68	cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98740bbf	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x99f327b7	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9b962fae	cxgb4_l2t_release
+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 0xd6407445	cxgb4_port_viid
+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 0xed7cc30c	cxgb4_create_server
+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 0x327029e1	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x54501c68	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x57226a48	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa641e212	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb0818785	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x11ba6cb3	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4d897f5b	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6887f5e6	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9af61973	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa337e423	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa5c8a44a	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa7ba63a8	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc723672d	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe590c698	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xec6a6f70	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 0x4f1ec475	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x7c9e50a4	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x4a4e58de	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x6b27b865	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xdb16926a	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xd78d7c20	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x0e185c32	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x42a45aed	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6da120f0	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 0xf6089137	tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xfd38a106	tmsdev_term
+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 0x146bbca0	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x514f34e9	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x691550ca	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x7147973b	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x7cd1a881	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8908ad93	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8d70674f	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xbfe65da7	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc659965f	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd333174f	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfdec0a00	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb5771c8c	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x57816b7e	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8eeebbf7	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xdd5bbd79	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x26e37a28	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2e226640	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x39f3fd80	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5	ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6185c096	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6ac80287	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7cb30e73	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x964342d1	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc09b486f	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf34a25b3	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0b551582	ath9k_cmn_update_txpow
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2906f283	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 0x4978ecbd	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 0xd9f790e3	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 0x0474bc20	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05c6b58e	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06db7df3	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0829c680	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08e8cd50	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08ed9783	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09f0cf17	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ce28431	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d03585f	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d9db68d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14dc5a24	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14f10690	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x159eae81	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18b056ee	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b2a8322	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c76589a	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f5d77c0	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20604c6f	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25559f89	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x276be4d6	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x285f2871	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cdf1645	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d327910	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a26410	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31c823a8	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3aadb936	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43d56312	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484d1dcf	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48799fd5	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a0db376	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a45d68d	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4df9f78b	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5311c6d5	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54700cea	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54bf3f9a	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56b97b4f	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58f4bec1	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59714675	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dd013ca	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ea8e31d	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72c95684	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73d849b2	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x765987ab	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7805f5a4	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e3523a1	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e609919	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x818bd0cd	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x822d56ab	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x883f19cd	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8bc93469	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d028ff5	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d1e77e1	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f0e95e1	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f428456	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x913168aa	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x943f788d	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94699205	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99923c1a	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9baec45d	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa03cbbb2	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1708d6f	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7517d17	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1416a0e	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2a077e6	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb592cdac	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6481654	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb68ced12	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb79ff6fd	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbed048c1	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0f832d7	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1c60133	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc41b6a3b	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc41db986	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4bcc5b7	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7008a6b	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc89c237d	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce8dcf33	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd75290cb	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdaa06b9d	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdabe27b6	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde476fde	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe01c41ed	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2cd1049	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8b0610f	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1431426	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1bc6b42	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc0db8f0	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff62bd53	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x088b3f23	stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x5e19a3da	init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xe321e3e3	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 0x04246a35	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x23c56d56	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x501c10fe	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x51e9641d	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6177fe1c	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x735fbb96	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x98e10078	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xae3ad876	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbbc5f368	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc7817569	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc9084d88	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd2433543	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xeb8578de	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf3503347	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0510e89d	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ec8e950	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x280c6af4	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c97c262	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3212f068	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x33a1bb32	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d067ea3	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e8a00f4	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e9622d0	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6236a6f5	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6291d031	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6372feb6	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x71bc316e	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ca566b3	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9f5abca7	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa73c2fe6	hostap_set_string
+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 0xb859c876	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc236314e	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb57abaf	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7580bee	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeccfb9e9	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xedc31a7b	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf02ef2a5	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf527d2cb	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfa7076f3	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0334dfef	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0859f271	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c2e38cc	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x33f23314	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x41dcbf2e	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x430a022b	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56eabb3a	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5d45a9f6	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5e96f104	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6467fa2f	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6662a9f2	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c8d22d1	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x846b1887	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcf236686	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd16b65a0	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3d6c344	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd71d29f8	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1cc7bd6	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb6fca1a	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfc7e8f55	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xff9e01c4	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0009aaa2	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x00cb479c	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x027256f4	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0406fd01	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x09f3e64a	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a5630df	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0e96d2b6	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x11f3cf30	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x14b3ec8c	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x15e3b5d5	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1ec9c0db	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1f597ee0	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20448450	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27079c66	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2ce25bc2	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x30c0f7c4	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3187a156	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x32e2e31c	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x34053687	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x348801c3	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x35329c75	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x35e98844	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x368ffb89	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x369b41a6	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x370cd0fa	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x371fe150	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x39ac60f3	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ae91ffb	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3ae9a518	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x412ab342	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x425308e1	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x436815c7	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x47b24324	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x492da03f	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x49ba6426	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b0e1ba8	iwl_legacy_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b74b173	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4b843a77	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4e6eea63	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4e883dfe	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5071d10e	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x556f8c73	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x55bfb176	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5a46c5a4	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5b7d6eb0	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5e4c6cec	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5f5171d2	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x62d02dc6	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x63639d45	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6378be08	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6bad8fa2	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x77c62135	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7ae70e83	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7b4eb5cc	iwl_legacy_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x806278d8	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x83451435	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x878116d6	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x89c668c6	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 0x8a6a31b1	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8eb6c16d	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8f23f75c	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x95039d5d	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x95b85102	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9963b3bb	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9a475175	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d3e5d6d	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d4b8ff5	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9fdd4b07	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa1b1566d	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa35ca197	iwl_legacy_cancel_scan_deferred_work
+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 0xb05a7689	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbf404c39	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc9faa418	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcdc5e03d	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf90d958	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd154fbe2	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd872467f	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdbe38567	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xde58fd39	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe67c8c78	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe723976d	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8a1dc66	iwl_legacy_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe9e6d774	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xef46f1c0	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf308e381	iwl_legacy_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf4036b3c	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf5912123	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfd0bf910	iwl_legacy_get_lowest_plcp
+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 0x0a20729c	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0e61a9f5	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x12bdb060	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x165412c5	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1c377584	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1caa7620	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3b41941e	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3dee8c6c	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4bd2b1bb	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7a681cf8	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8d957d22	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f05a5f0	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa48bae70	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcac0db14	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd51fcaa4	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe1686dac	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x03071bf4	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x04e5cc77	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0e2abf20	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0f74cffe	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1754e23f	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x18ca7d68	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1ab9171b	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1e5398a8	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x225adeb5	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2e22f8d1	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2e92345e	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2eaf34d1	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x420226c2	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x44a4484e	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c94a82f	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4e301862	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4f3d6612	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50667d93	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5b67a3ff	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ed39c3b	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6808c99c	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x695a3ba0	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6aac4bf8	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6bfff2c7	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7175c9a0	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b1f9930	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7f96ccbc	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x843e62e8	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c6e11eb	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9e7b654e	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae8b61b2	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 0xb3edeb42	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbfc0d387	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc6d7bee9	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd3aef18f	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd924399b	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xda156b4d	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe31fe6aa	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeb8c1433	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf18a4808	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf5adba68	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf95cec0c	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0539bf84	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x068b1279	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x14fc0c3d	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1ca1b967	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2ce969fd	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2e10dbb0	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x37753b99	rtl_usb_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3c574143	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5422dd5f	rtl_usb_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x62e1cefb	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6b427ba3	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9b169767	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xab808d38	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf37b18d	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbca9609f	rtl_ps_set_rf_state
+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 0xd855f984	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe661bd79	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeba9cc10	rtl_pci_probe
+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 0x0e0eba7d	pcmcia_get_mac_from_cis
+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 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 0x602a755b	pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x77a83de8	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xc482598a	pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23089964	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x57fbe8ee	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7e284f66	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x956fd220	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaae96940	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xce548356	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe2c02d8e	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xea5b75d3	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf77e3130	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x02f74234	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x065047ad	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0fc824d8	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11417f48	fc_elsct_init
+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 0x24789638	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x31d3516c	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3673ce41	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ba4c3fc	fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e06afe9	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x478cc877	fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ae12ef9	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ae98731	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53538b34	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54d052ac	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5697f1f9	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ab501a2	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5af1f332	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b13460c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d521886	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ed73021	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62bf929f	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64bc649d	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66f158bc	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67dbbc39	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ec9f70	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75cb68b5	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7927913c	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b5d10fa	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fc3c4fb	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8272d479	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b822070	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8da98ac9	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9246f1ff	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9699b23f	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa25cbaac	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3449423	fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab1fe4a4	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac3cfa46	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf7c82ed	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1bcaf09	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1048ab9	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb73c2a1	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc44b188	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcecfd240	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd9ec41a	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 0xfc5d8161	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 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 0x01dcaa1e	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04cbed76	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x050600e0	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05acc7e3	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1405ba3e	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14c529a6	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1df69971	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x266bee25	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27b670b0	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x296b2fdd	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e3aa2e2	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3db8f793	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3efcaadc	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f5c00bc	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x457104e9	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7b0217	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57ba43b1	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6053685d	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x685394d7	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68884907	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68ae5485	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x697b12fd	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74aabdfd	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76395581	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7859781b	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7afa8d49	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9e23bd	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x82ff30db	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8388917d	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d8ee061	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e2435d2	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x90749ee9	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91c78fb2	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2dd8ca7	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa860b0d4	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9fc7973	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa575db8	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac331d9f	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad01910a	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xae48e9cc	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb0ddab40	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb42d73d4	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb32f84a	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd576cc4	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc41c5602	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc9520a70	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8076046	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda46e1d9	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda8884bf	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2b8646f	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe72fff79	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7a15d81	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1723929	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2695573	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4f89f39	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfbf35fc8	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x01226b14	vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x03bc0d30	vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0735adfa	vme_dma_list_add
+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 0x2559d697	vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2ee805e9	vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf	vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43c28d92	vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154	vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x56cdc895	vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x5daeb4a3	vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x63d42253	vme_lm_request
+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 0x8a43577b	vme_irq_free
+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 0xa3dcbb90	vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa7cd734a	vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa7f508c2	vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa9c3fc70	vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xab24eab5	vme_irq_generate
+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 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 0xeccbeafc	vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeddb301a	vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11	vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfba4da22	vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfc924beb	vme_irq_request
+EXPORT_SYMBOL drivers/target/target_core_mod 0x01f46271	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x05ee60c8	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0c14030a	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1197d44e	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x184436ad	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x27e4f289	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2ba95933	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2c144f16	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2ee9f5dd	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2f3de8dc	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3a32b3e5	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3bf46d50	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3de2795b	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x41695b66	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x443016d3	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4653c04a	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4e2b6058	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0x517790ef	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x53a01a4a	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x56b5e3ad	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0x58d00053	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x59cbaf45	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5f4179bd	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5f564fc1	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5fe20358	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6289ca5c	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6a3f0acd	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6d1a21d6	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6d60ac02	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6e519e2b	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6efd95a6	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7416b383	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0x78f08767	sas_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 0x7e399e95	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x820e1eba	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8dda4ce3	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8e09af45	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9e4c3fbd	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa41b5c74	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa550e949	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xae8658b7	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb0bd3e47	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb290ab00	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb8a1ebbc	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbb3800d3	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc06a421e	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc2c005a8	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc33d53ee	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc8644e1b	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd1d413eb	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd453c213	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd725a4fb	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdae971ff	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdb2aaba9	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe148aa7b	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe304030c	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe4a799bd	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xec003374	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf7162d76	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xfcd7848f	transport_complete_sync_cache
+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 0x0646b456	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x090c0dd1	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0a89d307	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1b4480f1	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x251e6976	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2fff4bed	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3739deea	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x491211ec	usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x58841339	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9dfc97c0	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb8a80cdd	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbd966456	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd90737bc	usb_wwan_suspend
+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/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 0xc41fff99	w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xd424c08c	w1_remove_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 0x0701416f	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0x0c273c6d	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0x10122777	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x4e2c08fa	extract_attr_from_ios
+EXPORT_SYMBOL fs/exofs/libore 0x96327f3f	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xb08f7ccb	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0xb5132355	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0xea075d90	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0xef3f200c	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0xf93358c6	ore_create
+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 0x1173a8f0	make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xce84b97d	destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x01f48bf0	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x02b4d307	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0x041d8100	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x06d41318	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x07501ca8	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x0dfda9ec	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x168a2999	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x16ab9dc9	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x195d613a	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x208e7099	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x2278e55e	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x2301cd42	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x28270d5a	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x330ddebc	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x382caf62	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x394e2fd2	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x42add2b6	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x47febe8a	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x54e908cb	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x564cdedb	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x58166ad2	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x59e05005	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x652214a7	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0x71806d5b	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x7675ef56	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x7b1793e4	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x82598304	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0x8980ece7	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x89b53409	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa607ed3a	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xaf7fddfa	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0xb222925a	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xbcb9b377	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xbffad76c	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc6eb41ec	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0xcd49e4ef	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xd0832a8d	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xe06edf65	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0xe31afe3e	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xea38d7dc	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xef785934	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xf0de046f	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0xffc9a905	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/appletalk/appletalk 0x00c60613	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x069dbf46	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x75fa3b2e	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xe9746c6b	aarp_send_ddp
+EXPORT_SYMBOL net/atm/atm 0x09873095	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x0b2fc3f5	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x4785a201	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x57bef234	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x61cfd7c6	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x6825b774	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x6c7bb34e	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x74898436	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0x7b82c77e	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x84adb349	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x93136f41	vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa002d505	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbea7880f	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xeb7bad9e	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 0x0479d44f	ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x278db9be	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x57ec6252	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x865f8b9d	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xa32cf680	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xae14702b	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xba7cbc5d	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xc93798f9	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xdb0a21ae	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xdf932e6d	ax25_find_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x039764e2	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0642f068	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x068cd90b	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x077e9daf	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x10052cb9	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x15abd338	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x167f0a2a	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x17d1d71f	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x21bd5494	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a6a5868	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4309a6f0	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x43487878	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x49722e3e	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f0b5e4d	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f0e7df7	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x53778f2b	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x59e22b81	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c763e3a	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d17bb96	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6697f722	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e7ce6e0	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x77b54551	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a03f9f9	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x929637c1	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9491ae18	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa36109c6	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa66d4b83	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaeaf0bc9	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf5f676d	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbc04d8b	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbe7d093	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0b890b9	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2209681	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd0797f8b	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd3dc0637	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4a35c35	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xda3f30b2	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbc6e4cb	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe1a1d3c2	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf40e62f4	hci_unregister_proto
+EXPORT_SYMBOL net/bridge/bridge 0x5d7dc0ef	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1ff67992	ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2dbae887	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x71506642	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 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 0x85c65554	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x8a24cb2f	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0xc3dd7c1b	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xdf1a9928	caif_connect_client
+EXPORT_SYMBOL net/can/can 0x0a5afe4b	can_rx_register
+EXPORT_SYMBOL net/can/can 0x3b1d9676	can_proto_register
+EXPORT_SYMBOL net/can/can 0x45f79ee3	can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x73c2ea41	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x852d01f0	can_ioctl
+EXPORT_SYMBOL net/can/can 0xc100854b	can_send
+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 0x141410a1	ceph_msg_new
+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 0x2a338f5a	ceph_con_keepalive
+EXPORT_SYMBOL net/ceph/libceph 0x2c323949	ceph_osdc_writepages
+EXPORT_SYMBOL net/ceph/libceph 0x2f0e7934	ceph_osdc_alloc_request
+EXPORT_SYMBOL net/ceph/libceph 0x3185e4e1	ceph_messenger_destroy
+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 0x40ec68df	ceph_messenger_create
+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 0x48a25d86	ceph_con_send
+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 0x546d0392	ceph_con_close
+EXPORT_SYMBOL net/ceph/libceph 0x57baf885	ceph_str_hash
+EXPORT_SYMBOL net/ceph/libceph 0x5cd578cf	ceph_pagelist_set_cursor
+EXPORT_SYMBOL net/ceph/libceph 0x611d5ebf	ceph_con_init
+EXPORT_SYMBOL net/ceph/libceph 0x63758856	ceph_str_hash_name
+EXPORT_SYMBOL net/ceph/libceph 0x66817731	ceph_osdc_stop
+EXPORT_SYMBOL net/ceph/libceph 0x6d35019e	ceph_osdc_build_request
+EXPORT_SYMBOL net/ceph/libceph 0x73ab5bae	ceph_destroy_client
+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 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 0x90a1aa71	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x91742005	ceph_buffer_new
+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 0xadaf3bc5	ceph_con_open
+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 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 0x09480fdd	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x141189bc	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x30da90e0	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x36315d50	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4a103fea	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6384e2ee	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x664c7823	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x76e64701	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x82062359	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb589f42c	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcc2e7a8b	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe0602228	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf013489b	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x31ed54f7	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xaae5f20a	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcced7e15	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb0e2d749	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd6769275	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe1169f93	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1bf0e454	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x42aabeee	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa3a53a7a	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xc9205413	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe2e13d87	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xebc50ce5	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfe2a45b6	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x515bd8a4	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xc244c253	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x247c09b8	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x28c9eed3	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5f58cfd4	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xfa3b1877	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x09d5ae56	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x24cec49b	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x65133757	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc5deb2c1	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3eee51df	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x56c7d580	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5738d2dd	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5ecb47a0	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x76d31bf0	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb899cfc1	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd971d282	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe5d9013e	ircomm_disconnect_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 0x07d3647c	irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0bab6037	hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x105d61bd	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x189febc0	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23a2eee7	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x323fc64e	irlmp_data_request
+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 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 0x4e31cea9	irttp_udata_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 0x6e27d07f	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x7042bc54	irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x7318820e	alloc_irdadev
+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 0x815f8afc	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x829a5844	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x8cd99be0	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x93c65cf5	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9aebb9f1	iriap_close
+EXPORT_SYMBOL net/irda/irda 0x9e326eb3	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x9ef24d1e	proc_irda
+EXPORT_SYMBOL net/irda/irda 0x9fbc17b9	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xa370c681	hashbin_find
+EXPORT_SYMBOL net/irda/irda 0xab2a9ef2	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xabf17105	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xafa51ec8	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0xb052e589	irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0xb1452376	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xb2c3e8eb	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0xb42d170d	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xb58f9785	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xb7e80577	iriap_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 0xc185e3c5	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xc280a595	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xc72ceac7	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 0xe315a4d0	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xefcfaba1	irlap_close
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x6f9e636a	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x167c22f3	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x28ed035d	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x30907b27	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x42c9de01	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x474f935a	lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xb3412788	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xba30220d	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xca9a7fb6	lapb_getparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x0067def6	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x05247095	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x06119410	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x087e948a	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x0ea08ba0	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x13ec2e01	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x18879b83	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x198e8d3c	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0x1a0f4a35	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x2330b887	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x25aa7460	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0x36b56237	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x38f1dbd7	ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x3b16141b	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x44878b81	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x4bf8fda6	ieee80211_tx_status
+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 0x5fb030e6	ieee80211_get_tkip_p2k
+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 0x657d1706	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x6598981b	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f67e95e	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x789f4957	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x798d749d	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7fe901f3	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x80eb95d5	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x8173a67e	ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x84b3c8c3	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x899dc7c5	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0x9184c7e4	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x965400c6	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa6c06e26	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa83f0844	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xa9803222	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485	ieee80211_get_tkip_rx_p1k
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf050404	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0xb997ab48	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xba0ccd80	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xc2e9c744	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5284815	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5404e3f	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xc93efa3f	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xca2a013d	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xca425e4f	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd350b9af	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd44b9733	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xd54fc8de	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xd7448e82	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xd91d683a	ieee80211_get_buffered_bc
+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 0xdefc7b7b	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0xdefd2d56	ieee80211_wake_queues
+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 0xe7c40e77	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0xe826c66d	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe1a2d40	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe1d17d4	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe2d68fb	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe4540e6	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0aaeb536	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x306506de	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x46242747	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x588c9d86	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x675c5033	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x686a87a0	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x74e4f552	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x75d2a853	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x79ba7776	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8cb9fbbc	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaf86ab7c	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcc861582	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe0f733dc	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5aad763	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x1588ea5a	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5ea80be4	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xccfccbb8	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x14035769	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x0dfe3091	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44	xt_compat_init_offsets
+EXPORT_SYMBOL net/netfilter/x_tables 0x4796ef55	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x5f5de015	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x61ab6f07	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x685db1a4	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6d6b89a7	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xade29061	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb4e2f34f	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xcb8f9539	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xf9b3e969	xt_unregister_match
+EXPORT_SYMBOL net/nfc/nci/nci 0x414445b2	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x4b7c1f3f	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x53f78fa3	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x75adc390	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x92a66cbd	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nfc 0x1ae227bf	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x20aed8a4	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x55aa7151	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x8a9ed418	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xc14bcdc8	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xc6059785	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0xd2a0f04d	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0xfde3cc5c	nfc_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x13298070	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x5729c225	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x5c4506cd	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x770e6c4a	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x9eabaf4f	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xa7f0d326	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xa93315ed	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xf2037b00	pn_sock_hash
+EXPORT_SYMBOL net/rds/rds 0x1c9be661	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02f25842	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1ef8bbcc	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x270f2fef	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f5cc127	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x39e0555c	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3e183ddb	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x560b7ca0	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ea496cf	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x79544144	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa7228743	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbcee8bfc	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddf9e3f3	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf13e1915	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf398f2ad	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf6bb7f99	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5ad3adc	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xb0bc9adb	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0xd18e0d2b	wimax_rfkill
+EXPORT_SYMBOL net/wimax/wimax 0xf1c6d132	wimax_reset
+EXPORT_SYMBOL net/wireless/cfg80211 0x025446b9	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x07696272	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0b6fabda	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x0eb5fd7f	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x0ffcd560	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x1160d76f	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x13bfe437	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x154fa427	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x15db71f6	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1e2f2716	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x2407fcc2	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x276ab7d6	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2b1be00a	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c7973ed	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2e3bd5ef	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x2f8b513a	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x3793eedc	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0x3b5c4baf	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x3e4a1388	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x45cf2555	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d6a868c	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4f6322c8	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x4f91a8cd	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x5389b225	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x540cfe1d	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x5b657592	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x61eebf01	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x62815fab	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6f493c59	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x729ebfa1	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x752d3d16	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x7bdb07a7	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x7c1b9bde	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7f1845f0	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8188d566	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x87db66f4	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x8b4126bb	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x8caf080a	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x905d3458	cfg80211_send_disassoc
+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 0xa3daeecc	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xa44a395c	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xa589dc00	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xae178e2f	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0xb6c22812	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf080f8f	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xc1fb750c	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xcc2ec042	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd14c2695	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xd462d472	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xdec3507f	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xe4e231ba	cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xec9db2b0	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xecb1ac7f	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xee616c06	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xf0e20617	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46a3dc0	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xf5cb0948	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xfd3cd194	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x2388f507	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0xa9141677	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xca3b11ad	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xda428147	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xecc29875	lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xffaa9d4c	lib80211_register_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 0x005f9865	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x00641826	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x006642c4	bio_pair_release
+EXPORT_SYMBOL vmlinux 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0083d0cd	pci_iounmap
+EXPORT_SYMBOL vmlinux 0x008bb9cb	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x00d0517b	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x00dfa8cf	pci_release_region
+EXPORT_SYMBOL vmlinux 0x00e5e837	free_buffer_head
+EXPORT_SYMBOL vmlinux 0x00f42699	files_lglock_global_unlock
+EXPORT_SYMBOL vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL vmlinux 0x01093ca5	cpu_info
+EXPORT_SYMBOL vmlinux 0x0158ac13	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x016a08fd	rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x01729674	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01d0453e	mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x01d19038	acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01e799f9	scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x01eb36eb	scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL vmlinux 0x0215166e	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x02163323	tc_classify
+EXPORT_SYMBOL vmlinux 0x0219766d	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x02266ac5	ida_simple_get
+EXPORT_SYMBOL vmlinux 0x022bad07	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x0236b96e	netpoll_setup
+EXPORT_SYMBOL vmlinux 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x02649054	security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0269e2e9	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x026b12d2	fd_install
+EXPORT_SYMBOL vmlinux 0x02760424	journal_ack_err
+EXPORT_SYMBOL vmlinux 0x028cbd48	freeze_bdev
+EXPORT_SYMBOL vmlinux 0x029444f0	native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02d81845	audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02f2f459	ida_get_new
+EXPORT_SYMBOL vmlinux 0x02f4d63b	tcp_connect
+EXPORT_SYMBOL vmlinux 0x02f82e47	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x02fd0588	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x030b08cf	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x03122afb	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x032ae922	elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x03338f13	gnet_stats_copy_queue
+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 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x0384e7d7	update_region
+EXPORT_SYMBOL vmlinux 0x038dab61	d_rehash
+EXPORT_SYMBOL vmlinux 0x03b580eb	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x03c06156	bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03f309c6	pci_request_regions
+EXPORT_SYMBOL vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04089aa1	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0x040ca214	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x040e9f19	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0430e17c	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x0448ef8d	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x047f44d2	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x0487f831	fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0488c35c	processors
+EXPORT_SYMBOL vmlinux 0x04924e66	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x04a4ffde	write_cache_pages
+EXPORT_SYMBOL vmlinux 0x04ac7127	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x04f6e0c4	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x0500efdd	compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x0503dbf8	pci_match_id
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x0546e9a1	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x05475132	abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x05635906	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x059763fd	bio_map_user
+EXPORT_SYMBOL vmlinux 0x05980b45	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x05a945d2	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x05c5507c	page_readlink
+EXPORT_SYMBOL vmlinux 0x05e28d43	__first_cpu
+EXPORT_SYMBOL vmlinux 0x05f092e9	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x05fceab8	pci_find_capability
+EXPORT_SYMBOL vmlinux 0x060c554a	xfrm_state_check_expire
+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 0x063b34c4	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x06478e1f	simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x064ea65c	ns_capable
+EXPORT_SYMBOL vmlinux 0x064f104f	set_anon_super
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263	ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06940488	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x069b3778	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x06a485f2	__krealloc
+EXPORT_SYMBOL vmlinux 0x06ab9037	__dst_free
+EXPORT_SYMBOL vmlinux 0x06b648b5	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x06d2f086	dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x07282ddd	ethtool_op_set_tso
+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 0x078bd93b	do_sync_write
+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 0x07ba83b5	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x07cc4a5d	printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d7941d	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x07d9b783	scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07f9ab36	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x081bfa92	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+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 0x09100609	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x091196e9	netdev_warn
+EXPORT_SYMBOL vmlinux 0x09230a44	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x09319346	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x0933aae1	efi_enabled
+EXPORT_SYMBOL vmlinux 0x0944288f	fb_class
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x0964bcb2	boot_cpu_data
+EXPORT_SYMBOL vmlinux 0x0971621c	journal_dirty_metadata
+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 0x09902682	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09df8814	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x09e5f779	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x09ed48f3	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x09fab72a	scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x0a07a9c7	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x0a0ee690	bdi_destroy
+EXPORT_SYMBOL vmlinux 0x0a1d95e5	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x0a1db16e	register_framebuffer
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2584dd	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x0a267045	max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x0a3a0293	skb_find_text
+EXPORT_SYMBOL vmlinux 0x0a52ba64	pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x0a5ab017	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x0a95a0d4	spi_release_transport
+EXPORT_SYMBOL vmlinux 0x0aacd352	__kfifo_len_r
+EXPORT_SYMBOL vmlinux 0x0abad3f7	override_creds
+EXPORT_SYMBOL vmlinux 0x0ac7c55d	__alloc_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 0x0ae2373f	tcf_destroy_chain
+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 0x0b5db2ab	scsi_host_get
+EXPORT_SYMBOL vmlinux 0x0b6bbda2	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x0b6f6a7f	sk_run_filter
+EXPORT_SYMBOL vmlinux 0x0b7086d9	param_get_short
+EXPORT_SYMBOL vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b84e372	compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x0b8e4a2b	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x0baf63df	arp_xmit
+EXPORT_SYMBOL vmlinux 0x0bb3f4f5	__tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL vmlinux 0x0bc87ca6	scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x0bd4c7ee	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x0be05ae9	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0x0c16e3bc	bio_put
+EXPORT_SYMBOL vmlinux 0x0c4485bb	read_cache_page
+EXPORT_SYMBOL vmlinux 0x0c5b8398	md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x0c5b9a61	pipe_lock
+EXPORT_SYMBOL vmlinux 0x0c62a66b	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x0c63a5ec	seq_lseek
+EXPORT_SYMBOL vmlinux 0x0c65e73c	scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c835f8b	x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0x0c8c9e99	scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca5c52e	dst_release
+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 0x0d5e0d1d	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x0d652bb4	unregister_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x0d6c76ce	textsearch_register
+EXPORT_SYMBOL vmlinux 0x0d781a57	mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x0d97d433	bio_clone
+EXPORT_SYMBOL vmlinux 0x0d986269	generic_listxattr
+EXPORT_SYMBOL vmlinux 0x0d9b26db	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0db8d35e	proc_create_data
+EXPORT_SYMBOL vmlinux 0x0dce7dfc	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x0e0fbb02	request_key
+EXPORT_SYMBOL vmlinux 0x0e27ca46	scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x0e35b90b	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x0e3a050b	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e6c2cd7	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x0e6dde1f	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0x0e718923	single_release
+EXPORT_SYMBOL vmlinux 0x0e7fff81	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x0eb5ed5b	mmc_add_host
+EXPORT_SYMBOL vmlinux 0x0ebebe14	groups_free
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b	acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0ed9d9d2	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x0f0d2759	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x0f15983c	pci_disable_device
+EXPORT_SYMBOL vmlinux 0x0f1dc32f	block_write_begin
+EXPORT_SYMBOL vmlinux 0x0f251951	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x0f52456a	elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x0f53ee2b	inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f6ee538	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x0f71adc7	prepare_binprm
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fbef444	set_device_ro
+EXPORT_SYMBOL vmlinux 0x0fcf4d2c	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x0fd00a68	acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fd2b432	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x0fdd7295	simple_statfs
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x10002103	dev_crit
+EXPORT_SYMBOL vmlinux 0x1006a7cc	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x101bfce4	address_space_init_once
+EXPORT_SYMBOL vmlinux 0x102a225e	spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x102fcb77	seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x106145b2	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x10784084	simple_link
+EXPORT_SYMBOL vmlinux 0x10802479	netdev_printk
+EXPORT_SYMBOL vmlinux 0x10ab7e68	down_killable
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10e90133	journal_revoke
+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 0x1129d65f	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x11633870	param_set_ushort
+EXPORT_SYMBOL vmlinux 0x1163f0a7	blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be	qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x11af6f06	module_refcount
+EXPORT_SYMBOL vmlinux 0x11d936c4	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x11e2ec12	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x11e8a7ac	generic_readlink
+EXPORT_SYMBOL vmlinux 0x11eeb710	padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x11f1984b	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x11f57dbd	register_netdevice
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x12042c37	skb_copy
+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 0x12a9ec9c	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x12c58de0	tty_register_device
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fc2767	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x13162337	tty_set_operations
+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 0x136125b0	is_container_init
+EXPORT_SYMBOL vmlinux 0x1376888f	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x13acdbfb	dcache_dir_open
+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 0x13f955a5	acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x1403d091	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x1430e6e0	unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x146d913c	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0x1478163e	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x1489d279	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x14a8c5c2	tty_port_close
+EXPORT_SYMBOL vmlinux 0x14d6f645	filemap_fault
+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 0x150d48ab	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x151673a6	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x1518fe83	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x1537012c	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x153a94e9	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x153e405e	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x1551dc51	bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1565c29d	seq_escape
+EXPORT_SYMBOL vmlinux 0x1569eaa6	user_path_create
+EXPORT_SYMBOL vmlinux 0x1571a32d	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x157c0c9f	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x158115b6	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x15ce40d4	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x15dfeaa0	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x15e9e4e8	simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x15f80469	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x16028fac	swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL vmlinux 0x1610de39	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x162df670	vfs_writev
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x164fcb17	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x165a15dc	dquot_resume
+EXPORT_SYMBOL vmlinux 0x1665a73b	acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL vmlinux 0x1682f017	key_reject_and_link
+EXPORT_SYMBOL vmlinux 0x168d9abe	blk_put_request
+EXPORT_SYMBOL vmlinux 0x168f1082	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x16b86958	dev_uc_init
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16d69ca0	dump_write
+EXPORT_SYMBOL vmlinux 0x170c25ee	acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170f8e96	acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x1718a393	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0x171b0c2c	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x171c0df8	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x1727167b	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x177ca216	sock_no_connect
+EXPORT_SYMBOL vmlinux 0x1781e3e0	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x1790d76b	_raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x17964999	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x17ae7fcc	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x17b842f2	dquot_transfer
+EXPORT_SYMBOL vmlinux 0x17b90ad5	genphy_resume
+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 0x17f5d480	get_phy_device
+EXPORT_SYMBOL vmlinux 0x18029e89	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x180ab932	kill_block_super
+EXPORT_SYMBOL vmlinux 0x181779ec	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x182f342f	mfd_cell_disable
+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 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x189b6bac	memory_read_from_buffer
+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 0x1911b26b	simple_fill_super
+EXPORT_SYMBOL vmlinux 0x19391763	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x1950bbc0	__serio_register_port
+EXPORT_SYMBOL vmlinux 0x19563de4	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x196b9d9f	__rta_fill
+EXPORT_SYMBOL vmlinux 0x1970da0e	ida_remove
+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 0x19c215e1	user_path_at
+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 0x1a3f4348	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0x1a4093db	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a569a2f	sk_stream_write_space
+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 0x1a9a8a5d	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x1aa16fd5	input_set_capability
+EXPORT_SYMBOL vmlinux 0x1aabd101	sync_inode
+EXPORT_SYMBOL vmlinux 0x1aaea77d	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x1ace138d	bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad4f9c4	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x1ae14ef5	_raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x1af922d9	__insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b07e507	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x1b12795d	register_console
+EXPORT_SYMBOL vmlinux 0x1b520eb2	__napi_schedule
+EXPORT_SYMBOL vmlinux 0x1b5af681	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL vmlinux 0x1b7511bb	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x1b8b95ad	i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1	scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1c16e5b8	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x1c1af916	set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c46eeaa	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x1c5fc683	bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x1c774b85	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x1c7cca91	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x1c8a04b0	acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c9382bd	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x1c97a6bb	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0x1ca3612a	d_alloc
+EXPORT_SYMBOL vmlinux 0x1ca68a1a	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x1cbd6cb3	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd194ce	mmc_can_reset
+EXPORT_SYMBOL vmlinux 0x1cd81aa2	names_cachep
+EXPORT_SYMBOL vmlinux 0x1ced34f0	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x1cf3dc16	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x1cf4ee6d	inet_shutdown
+EXPORT_SYMBOL vmlinux 0x1cf907d6	journal_destroy
+EXPORT_SYMBOL vmlinux 0x1d276ce8	dev_load
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1db7706b	__copy_user_nocache
+EXPORT_SYMBOL vmlinux 0x1dbf06e1	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1df0e079	padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x1dfb2728	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x1e047854	warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x1e072faf	pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x1e0c2be4	ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e1d8a4b	dentry_unhash
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e2e427f	cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e8cc4a6	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x1e9edfb7	seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ea3451d	eth_rebuild_header
+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 0x1eef67a3	napi_skb_finish
+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 0x1f26b0d9	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x1f8ccb31	skb_push
+EXPORT_SYMBOL vmlinux 0x1f8f19cf	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x1fa0e521	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0x1fa286d8	dst_destroy
+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 0x2022582d	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x203b621d	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x2082aed0	pci_ltr_supported
+EXPORT_SYMBOL vmlinux 0x208739f6	acpi_load_table
+EXPORT_SYMBOL vmlinux 0x20a06772	nf_log_packet
+EXPORT_SYMBOL vmlinux 0x20a5fcf1	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x20a711d1	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL vmlinux 0x20eadeb6	ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x20f060d9	dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x21145090	pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x211b3258	simple_readpage
+EXPORT_SYMBOL vmlinux 0x215ebd78	bitrev16
+EXPORT_SYMBOL vmlinux 0x2169e069	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x216fd263	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x217dda13	flex_array_get
+EXPORT_SYMBOL vmlinux 0x2193a3ac	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x21963865	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x2199337a	down_timeout
+EXPORT_SYMBOL vmlinux 0x21b4d941	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x21cd3af5	i2c_use_client
+EXPORT_SYMBOL vmlinux 0x21d3cdc6	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x21e0ea22	acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f0349c	scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x21f8a1a7	__napi_complete
+EXPORT_SYMBOL vmlinux 0x21fb443e	_raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x2229ca2a	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x222e7ce2	sysfs_streq
+EXPORT_SYMBOL vmlinux 0x222ed0c2	security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x226522de	kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x22659da0	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+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 0x22c3da59	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x22f08bd3	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0x2318d1a0	default_file_splice_read
+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 0x237c9099	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x23813425	inet_getname
+EXPORT_SYMBOL vmlinux 0x238293fa	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x240594fc	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x242117c1	kill_anon_super
+EXPORT_SYMBOL vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x244f8ace	cdev_del
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x2460e0d1	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x24653c86	tty_throttle
+EXPORT_SYMBOL vmlinux 0x24749b42	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x24776d32	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x24779fc4	clocksource_register
+EXPORT_SYMBOL vmlinux 0x2482e688	vsprintf
+EXPORT_SYMBOL vmlinux 0x249a0742	idr_get_new
+EXPORT_SYMBOL vmlinux 0x249db093	tcf_em_register
+EXPORT_SYMBOL vmlinux 0x24f169fc	down_read_trylock
+EXPORT_SYMBOL vmlinux 0x24fdac79	wake_bit_function
+EXPORT_SYMBOL vmlinux 0x2511771d	x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x251973f4	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x251ae591	iget_locked
+EXPORT_SYMBOL vmlinux 0x25277497	rfkill_register
+EXPORT_SYMBOL vmlinux 0x25343edb	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x2542edc3	compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x2552036c	generic_show_options
+EXPORT_SYMBOL vmlinux 0x256c6e8f	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x2599e92d	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x25b0e328	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x25b1b277	elv_rb_del
+EXPORT_SYMBOL vmlinux 0x25b6c022	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25ec1b28	strlen
+EXPORT_SYMBOL vmlinux 0x262577d4	max8998_bulk_write
+EXPORT_SYMBOL vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x263daa36	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x26400e51	sock_create
+EXPORT_SYMBOL vmlinux 0x26493e5a	ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x264f8eff	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x26559674	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x267c7916	genphy_read_status
+EXPORT_SYMBOL vmlinux 0x268155a6	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x2685c3d7	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26c02e7c	input_grab_device
+EXPORT_SYMBOL vmlinux 0x26e521fb	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f0b598	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x26ff136a	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x270ff375	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x2716f93a	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x27277915	vm_stat
+EXPORT_SYMBOL vmlinux 0x272d394e	mtrr_del
+EXPORT_SYMBOL vmlinux 0x2739e608	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x273c74fe	file_open_root
+EXPORT_SYMBOL vmlinux 0x274d08dc	__kfifo_dma_out_prepare
+EXPORT_SYMBOL vmlinux 0x27518176	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x2752f831	pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x277012d9	seq_write
+EXPORT_SYMBOL vmlinux 0x27829914	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x278ea6ac	acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x2793216f	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x279f6ae1	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x27a2dbe4	delete_from_page_cache
+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 0x27c517a6	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x27db3aaa	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x2801a6b7	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x2821ebfe	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x282c96ff	send_sig_info
+EXPORT_SYMBOL vmlinux 0x28343bad	scnprintf
+EXPORT_SYMBOL vmlinux 0x283c7cdd	inode_permission
+EXPORT_SYMBOL vmlinux 0x2864f9ce	blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x2865769c	console_start
+EXPORT_SYMBOL vmlinux 0x2876a6d3	memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x2878ce69	thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x2880d218	sock_wfree
+EXPORT_SYMBOL vmlinux 0x288981e6	jbd2_journal_file_inode
+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 0x28d25fd8	pipe_to_file
+EXPORT_SYMBOL vmlinux 0x28d481de	pm860x_page_bulk_write
+EXPORT_SYMBOL vmlinux 0x2900ba3f	bd_set_size
+EXPORT_SYMBOL vmlinux 0x29119f44	set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x292093f4	native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x292bfcc6	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x293f383b	acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2956d752	bio_free
+EXPORT_SYMBOL vmlinux 0x295869f7	genphy_suspend
+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 0x299617ec	unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x29a4584a	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29b9b56d	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x29c330fd	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x29cfa2d2	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x29e4790d	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x2a0428dd	arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x2a269a93	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL vmlinux 0x2a37d074	dma_pool_free
+EXPORT_SYMBOL vmlinux 0x2a50ad35	pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x2af8e22d	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x2afbe27e	bio_split
+EXPORT_SYMBOL vmlinux 0x2b06f48b	commit_creds
+EXPORT_SYMBOL vmlinux 0x2b094b83	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b1077a0	filp_open
+EXPORT_SYMBOL vmlinux 0x2b21a2c2	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b52a516	pci_iomap
+EXPORT_SYMBOL vmlinux 0x2b6c1a21	i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x2b815461	cdrom_mode_sense
+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 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 0x2c6fe896	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x2c80be45	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x2c8de519	tcp_valid_rtt_meas
+EXPORT_SYMBOL vmlinux 0x2cb096a7	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x2cb71dce	alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x2d0ed970	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d192415	uart_resume_port
+EXPORT_SYMBOL vmlinux 0x2d319e6b	pci_disable_obff
+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 0x2d7e73a6	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x2d820154	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x2d89342a	scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d913013	write_inode_now
+EXPORT_SYMBOL vmlinux 0x2d9321f4	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x2db4c99b	flush_delayed_work
+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 0x2e06111d	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2e0936d9	kernel_listen
+EXPORT_SYMBOL vmlinux 0x2e0a9b2b	init_net
+EXPORT_SYMBOL vmlinux 0x2e2704be	ip_fragment
+EXPORT_SYMBOL vmlinux 0x2e2a8f55	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x2e2ca5be	inet_frag_find
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0	sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e2fee3e	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x2e533ba9	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x2e59fc7a	ab8500_gpadc_get
+EXPORT_SYMBOL vmlinux 0x2e687e6a	set_groups
+EXPORT_SYMBOL vmlinux 0x2e7c3fea	simple_rename
+EXPORT_SYMBOL vmlinux 0x2e8fd3af	cdev_add
+EXPORT_SYMBOL vmlinux 0x2e998baa	node_data
+EXPORT_SYMBOL vmlinux 0x2ea88519	agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0x2eace77e	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x2ecfcfd8	tty_kref_put
+EXPORT_SYMBOL vmlinux 0x2ee26372	napi_get_frags
+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 0x2f12636f	pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x2f31ec9a	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x2f349981	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0x2f3d2307	km_state_expired
+EXPORT_SYMBOL vmlinux 0x2f593a95	sock_release
+EXPORT_SYMBOL vmlinux 0x2f62dab4	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x2fa5a500	memcmp
+EXPORT_SYMBOL vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL vmlinux 0x2ff063b5	acpi_get_name
+EXPORT_SYMBOL vmlinux 0x2ff08570	dev_notice
+EXPORT_SYMBOL vmlinux 0x2ff6e872	d_move
+EXPORT_SYMBOL vmlinux 0x301801e9	sock_no_poll
+EXPORT_SYMBOL vmlinux 0x301f0f31	cdev_init
+EXPORT_SYMBOL vmlinux 0x30226ddf	agp_device_command
+EXPORT_SYMBOL vmlinux 0x3029dfa4	tty_write_room
+EXPORT_SYMBOL vmlinux 0x3032758b	__tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x307c2fd0	generic_check_addressable
+EXPORT_SYMBOL vmlinux 0x309b28f7	phy_detach
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+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 0x30ea8023	inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x30f6cbc5	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x30f9942b	security_path_chown
+EXPORT_SYMBOL vmlinux 0x310345f5	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0x3106ec97	input_close_device
+EXPORT_SYMBOL vmlinux 0x3130230f	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x319a2e8b	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d4fa64	mfd_cell_enable
+EXPORT_SYMBOL vmlinux 0x31e76b57	recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31ebadcd	in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e	groups_alloc
+EXPORT_SYMBOL vmlinux 0x3207fd97	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x3211e32d	give_up_console
+EXPORT_SYMBOL vmlinux 0x32204e64	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x3224651d	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x322b7e83	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x32363688	input_mt_report_pointer_emulation
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x324b3f72	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x324c4f90	pci_pme_active
+EXPORT_SYMBOL vmlinux 0x324cb69b	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL vmlinux 0x32a18151	inet_release
+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 0x32cdfcc8	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x32cea339	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x32e5026b	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x32ecff80	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x32eeaded	_raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x32fb30ab	compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0x330e71e7	pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x33161a78	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x33228b9b	vc_cons
+EXPORT_SYMBOL vmlinux 0x33341d34	generic_setlease
+EXPORT_SYMBOL vmlinux 0x33477d37	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x338e1f21	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x33a59f3f	idr_init
+EXPORT_SYMBOL vmlinux 0x33ab2f23	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x33b84f74	copy_page
+EXPORT_SYMBOL vmlinux 0x33cad09f	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x33d5a38c	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x33eaeb8b	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL vmlinux 0x33f60659	kill_fasync
+EXPORT_SYMBOL vmlinux 0x343ecd49	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x3452be5f	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x34596ebc	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x345aba5b	tcp_check_req
+EXPORT_SYMBOL vmlinux 0x345e68a1	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x34632c0a	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x3483f355	i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x348e8be4	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34a61166	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x34c4b554	proto_register
+EXPORT_SYMBOL vmlinux 0x351ccdf9	scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x35328466	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x353a4b58	__put_cred
+EXPORT_SYMBOL vmlinux 0x35517c27	netdev_err
+EXPORT_SYMBOL vmlinux 0x3551f64a	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x357143df	ping_prot
+EXPORT_SYMBOL vmlinux 0x35722bf8	bdi_register
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x3597c1e7	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x35b85ce8	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36139a51	memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x36251d18	d_find_alias
+EXPORT_SYMBOL vmlinux 0x36436131	bdget_disk
+EXPORT_SYMBOL vmlinux 0x3651a2c3	security_path_mknod
+EXPORT_SYMBOL vmlinux 0x36595c0c	padata_do_serial
+EXPORT_SYMBOL vmlinux 0x365b7417	neigh_update
+EXPORT_SYMBOL vmlinux 0x3683ff38	__splice_from_pipe
+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 0x37007e55	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x3701a196	csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0x3718eee9	__nla_put
+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 0x379cede6	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x379dbac0	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x379f5837	param_set_invbool
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37c70531	km_policy_notify
+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 0x37f76c10	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL vmlinux 0x38462bcd	simple_lookup
+EXPORT_SYMBOL vmlinux 0x384db49e	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x384dbb5e	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x386210bf	fifo_create_dflt
+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 0x38a6df66	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38d81f1d	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x38f33bed	dump_fpu
+EXPORT_SYMBOL vmlinux 0x390c112f	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x391cbc83	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x396cc85e	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x399e987b	sock_no_accept
+EXPORT_SYMBOL vmlinux 0x39a055f3	acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0x39a5305b	scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x39f6da8d	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x3a013b7d	remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a230eb3	agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x3a28fc7b	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL vmlinux 0x3a415781	agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x3a6b0295	vfs_readdir
+EXPORT_SYMBOL vmlinux 0x3a6b24b5	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x3a94a8e5	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3ab050f1	simple_getattr
+EXPORT_SYMBOL vmlinux 0x3ab53640	idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x3ad73c3f	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x3b003c89	dm_register_target
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b3ec46e	do_truncate
+EXPORT_SYMBOL vmlinux 0x3b5d9b20	__sock_create
+EXPORT_SYMBOL vmlinux 0x3b678ddd	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x3b7b4211	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x3ba81557	input_register_device
+EXPORT_SYMBOL vmlinux 0x3ba99f28	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3befc801	idr_replace
+EXPORT_SYMBOL vmlinux 0x3bf55e0f	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x3c0b4eee	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x3c151344	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x3c2566e1	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x3c51a994	dev_err
+EXPORT_SYMBOL vmlinux 0x3c5e3f67	write_dirty_buffer
+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 0x3cbfa6ab	setattr_copy
+EXPORT_SYMBOL vmlinux 0x3cdbaa85	get_gendisk
+EXPORT_SYMBOL vmlinux 0x3ce3bc4e	end_writeback
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cea8fa8	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x3cee006b	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x3cefa251	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x3d05f8cd	agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x3d07e4f0	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x3d1187f9	pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x3d21f0f1	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x3d28befa	neigh_table_init
+EXPORT_SYMBOL vmlinux 0x3d481206	tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x3d4dfc8f	bio_init
+EXPORT_SYMBOL vmlinux 0x3d6d53f4	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7	msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d8041f1	ip_xfrm_me_harder
+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 0x3dbf54ce	blk_complete_request
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+EXPORT_SYMBOL vmlinux 0x3de9a511	kill_pid
+EXPORT_SYMBOL vmlinux 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e0e9023	param_set_long
+EXPORT_SYMBOL vmlinux 0x3e1cc0c5	sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0x3e28313e	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8	acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e35489b	aio_complete
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e68d581	dcb_getapp
+EXPORT_SYMBOL vmlinux 0x3e7bcbe7	pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x3e7c3bf2	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x3e882943	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e9a6818	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x3ec24d57	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3eee7a79	fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f2ef48e	d_drop
+EXPORT_SYMBOL vmlinux 0x3f3b1ff9	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f4e5de7	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x3f594cc1	ps2_command
+EXPORT_SYMBOL vmlinux 0x3f5e9f7a	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x3f5ff1c3	sk_alloc
+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 0x3fe1595d	lease_modify
+EXPORT_SYMBOL vmlinux 0x3fec048f	sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffff863	idr_find
+EXPORT_SYMBOL vmlinux 0x4029d238	param_set_copystring
+EXPORT_SYMBOL vmlinux 0x402b8281	__request_module
+EXPORT_SYMBOL vmlinux 0x4049ad25	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x4049e49b	pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x405c1144	get_seconds
+EXPORT_SYMBOL vmlinux 0x40698fe2	da903x_query_status
+EXPORT_SYMBOL vmlinux 0x406f3c64	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x408b92f8	sock_register
+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 0x4099ee15	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x409ca5bb	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x40a27c37	scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a9b349	vzalloc
+EXPORT_SYMBOL vmlinux 0x40c6b444	sock_no_getname
+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 0x41034c2b	security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x414016f6	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x4142a8e8	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x416dfaf5	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x416f6f63	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x4182783c	path_put
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41993d74	unlock_page
+EXPORT_SYMBOL vmlinux 0x41baee5e	security_inode_permission
+EXPORT_SYMBOL vmlinux 0x41bf4a7f	generic_write_sync
+EXPORT_SYMBOL vmlinux 0x41e58f32	registered_fb
+EXPORT_SYMBOL vmlinux 0x41e9b79c	__register_binfmt
+EXPORT_SYMBOL vmlinux 0x41fb8d3a	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x42049591	write_one_page
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298	sscanf
+EXPORT_SYMBOL vmlinux 0x42371f42	get_io_context
+EXPORT_SYMBOL vmlinux 0x42401c36	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x42533f96	dev_addr_del
+EXPORT_SYMBOL vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x425b4cba	vlan_dev_real_dev
+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 0x42abbf75	udp_ioctl
+EXPORT_SYMBOL vmlinux 0x42c8de35	ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42d2f5de	seq_printf
+EXPORT_SYMBOL vmlinux 0x43028f73	inet6_release
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x430c6a86	vfs_stat
+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 0x4345a683	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x438b3cc9	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x43918cd8	bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43ae47d0	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x43bad338	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x43e7ecd7	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x43ec913a	put_cmsg
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x44191844	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x446a932c	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0x4484d2a5	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x44955747	__getblk
+EXPORT_SYMBOL vmlinux 0x44a81d5f	acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44a9169b	vfs_readlink
+EXPORT_SYMBOL vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44bc2d76	d_add_ci
+EXPORT_SYMBOL vmlinux 0x44c0b9d3	i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x44d8712d	compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x44f1606d	down_trylock
+EXPORT_SYMBOL vmlinux 0x44f7d19b	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0x45081703	ec_get_handle
+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 0x4550f7bb	scm_detach_fds
+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 0x457b8269	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x457ee889	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x459c649a	dev_printk
+EXPORT_SYMBOL vmlinux 0x45bd9efd	dm_table_put
+EXPORT_SYMBOL vmlinux 0x45d216b9	tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45e178e1	mount_ns
+EXPORT_SYMBOL vmlinux 0x46214106	files_lglock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0x464c2870	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x46595c8a	vfs_lstat
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x4687ec62	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x46889e57	unregister_netdevice_queue
+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 0x46c75d10	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0x46e06c5e	swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b	acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x478d10b2	ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x4792c572	down_interruptible
+EXPORT_SYMBOL vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x4795a484	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x479c3c86	find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47a9e9ed	sock_no_socketpair
+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 0x47c7b0d2	cpu_number
+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 0x48355a04	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x486d2f29	dqstats
+EXPORT_SYMBOL vmlinux 0x487c6825	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x48885b63	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x488e97b5	max8998_write_reg
+EXPORT_SYMBOL vmlinux 0x48a09c6f	pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x48ccf11b	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x48ceb025	arp_send
+EXPORT_SYMBOL vmlinux 0x48dedafb	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x48e1d31a	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x48eb0c0d	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x490745d8	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x492a32f9	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x4938760e	dev_activate
+EXPORT_SYMBOL vmlinux 0x49402138	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x4964cbd7	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x496c7005	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x497979b9	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x497b0262	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x49868be1	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x4992e1ac	__blk_end_request_all
+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 0x4a0d25a7	gen_pool_virt_to_phys
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a5c370e	tty_register_driver
+EXPORT_SYMBOL vmlinux 0x4a8fd247	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x4a95e04f	bio_endio
+EXPORT_SYMBOL vmlinux 0x4ac8d003	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x4acc675f	sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x4acd93d3	release_resource
+EXPORT_SYMBOL vmlinux 0x4ad1308c	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x4adba250	__devm_release_region
+EXPORT_SYMBOL vmlinux 0x4adbd2ec	sock_kmalloc
+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 0x4b0dda14	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x4b245ffd	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x4b2b91e3	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x4b2ed957	mount_pseudo
+EXPORT_SYMBOL vmlinux 0x4b5814ef	kmalloc_order_trace
+EXPORT_SYMBOL vmlinux 0x4b5bd83e	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+EXPORT_SYMBOL vmlinux 0x4b81995e	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x4b9472f1	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x4bafeb06	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x4bb84a27	__d_drop
+EXPORT_SYMBOL vmlinux 0x4bc4d5a5	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4bd9785a	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x4bf7b27d	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x4bf7e3c0	compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x4c063e46	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x4c1182cb	bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c11ca9f	efi
+EXPORT_SYMBOL vmlinux 0x4c188294	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x4c3c24fa	redraw_screen
+EXPORT_SYMBOL vmlinux 0x4c4c956e	nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c4fef19	kernel_stack
+EXPORT_SYMBOL vmlinux 0x4c5ea4e6	serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4c895b88	pci_save_state
+EXPORT_SYMBOL vmlinux 0x4c9dc622	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x4ca01952	input_set_keycode
+EXPORT_SYMBOL vmlinux 0x4cabac53	compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x4cac03d3	fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbee26d	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x4ceb2c2a	pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0x4cf8e8c4	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x4d1dd20a	pci_select_bars
+EXPORT_SYMBOL vmlinux 0x4d51e893	do_splice_to
+EXPORT_SYMBOL vmlinux 0x4d7c4d98	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x4d7cf05d	dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4d9cc675	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x4da10f69	mddev_congested
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dcdaccb	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x4dd6d491	page_put_link
+EXPORT_SYMBOL vmlinux 0x4dda726b	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c	acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e2acbf5	xfrm_state_alloc
+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 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e76bd90	blk_rq_init
+EXPORT_SYMBOL vmlinux 0x4e84d1a9	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x4e84f0b1	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x4e908e1a	default_llseek
+EXPORT_SYMBOL vmlinux 0x4e91ae45	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x4e9e96b1	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x4eb3b538	wake_up_process
+EXPORT_SYMBOL vmlinux 0x4eb8b427	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x4ebc8486	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x4ecc030e	may_umount_tree
+EXPORT_SYMBOL vmlinux 0x4edd72f7	block_all_signals
+EXPORT_SYMBOL vmlinux 0x4f0dee92	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x4f165f08	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f3939d2	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x4f476e96	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f4aadc6	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x4f4cc476	make_EII_client
+EXPORT_SYMBOL vmlinux 0x4f5d155d	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x4f5ebfcb	register_snap_client
+EXPORT_SYMBOL vmlinux 0x4f6b400b	_copy_from_user
+EXPORT_SYMBOL vmlinux 0x4f783f30	acpi_read
+EXPORT_SYMBOL vmlinux 0x4f7845c3	invalidate_partition
+EXPORT_SYMBOL vmlinux 0x4f8b5ddb	_copy_to_user
+EXPORT_SYMBOL vmlinux 0x4fafea23	mmc_erase
+EXPORT_SYMBOL vmlinux 0x4fb1999d	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x4ff8d3f9	serio_rescan
+EXPORT_SYMBOL vmlinux 0x50064761	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5043cfaa	free_netdev
+EXPORT_SYMBOL vmlinux 0x5044529e	tty_free_termios
+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 0x507c9c24	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x507cb6b1	input_get_keycode
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50e026c1	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x50e5f574	dquot_release
+EXPORT_SYMBOL vmlinux 0x50f0728c	pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x51026918	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x510c2535	xz_dec_run
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x51397a54	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x5156fb2c	file_update_time
+EXPORT_SYMBOL vmlinux 0x516c8a9f	seq_release
+EXPORT_SYMBOL vmlinux 0x518267b8	stop_tty
+EXPORT_SYMBOL vmlinux 0x51b40bb6	current_fs_time
+EXPORT_SYMBOL vmlinux 0x51ccbef4	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x51ce5ad3	files_lglock_local_lock_cpu
+EXPORT_SYMBOL vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51d16d2c	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x51dce73b	xfrm_state_walk_init
+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 0x520e97f2	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x521466fe	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x52201839	fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x523ac00a	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x5240ef38	dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x52760ca9	getnstimeofday
+EXPORT_SYMBOL vmlinux 0x527a0bad	softnet_data
+EXPORT_SYMBOL vmlinux 0x527a668e	path_is_under
+EXPORT_SYMBOL vmlinux 0x5295f485	posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52de37c0	i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x52f49a98	bio_alloc
+EXPORT_SYMBOL vmlinux 0x5305e3a9	key_put
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x53199c3a	arp_find
+EXPORT_SYMBOL vmlinux 0x531a0497	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53226e67	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x532a2e8b	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x53326531	mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533ff317	tty_devnum
+EXPORT_SYMBOL vmlinux 0x5352fe6c	nla_put
+EXPORT_SYMBOL vmlinux 0x53579af2	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x535e2000	xfrm6_rcv
+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 0x53f04062	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x53f2ef10	wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x54152e04	percpu_counter_compare
+EXPORT_SYMBOL vmlinux 0x542eb03a	inet_listen
+EXPORT_SYMBOL vmlinux 0x54310048	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x5437f166	set_pages_wb
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+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 0x5496a351	__breadahead
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f4a935	padata_free
+EXPORT_SYMBOL vmlinux 0x551cefd3	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x55285a9a	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x552a02f1	phy_print_status
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+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 0x5591344b	kern_unmount
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55af48a1	gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x55bdfd85	bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x55c1a914	xfrm_state_flush
+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 0x5636551f	follow_up
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x5661ec63	_dev_info
+EXPORT_SYMBOL vmlinux 0x569dd2ce	padata_start
+EXPORT_SYMBOL vmlinux 0x56bff016	d_invalidate
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56e8fdb5	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x56fb9af3	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5739627a	__ht_create_irq
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL vmlinux 0x5787de25	agp_create_memory
+EXPORT_SYMBOL vmlinux 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x57e36d01	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x57f66477	register_cdrom
+EXPORT_SYMBOL vmlinux 0x5836eafe	generic_writepages
+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 0x5857b225	ioread16_rep
+EXPORT_SYMBOL vmlinux 0x586103be	acpi_setup_gpe_for_wake
+EXPORT_SYMBOL vmlinux 0x5867024b	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x58841dd5	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x58853206	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x589a9b48	amd_northbridges
+EXPORT_SYMBOL vmlinux 0x589b9b2b	mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x59062702	do_munmap
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x595eed24	fb_blank
+EXPORT_SYMBOL vmlinux 0x5960b974	sock_setsockopt
+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 0x59c6b16f	netif_rx
+EXPORT_SYMBOL vmlinux 0x59d51dac	__bforget
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x5a220ff1	locks_free_lock
+EXPORT_SYMBOL vmlinux 0x5a265b64	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x5a2aa62e	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x5a3245eb	blk_dump_rq_flags
+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 0x5a4ee298	proto_unregister
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3	simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a7edeb1	single_open
+EXPORT_SYMBOL vmlinux 0x5aac8e65	led_blink_set
+EXPORT_SYMBOL vmlinux 0x5abf2e6f	md_flush_request
+EXPORT_SYMBOL vmlinux 0x5ac376a5	acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5b51c6a7	acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b6fbc6c	fasync_helper
+EXPORT_SYMBOL vmlinux 0x5b74e6b7	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x5b935090	key_link
+EXPORT_SYMBOL vmlinux 0x5ba5a849	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x5ba886d8	dquot_enable
+EXPORT_SYMBOL vmlinux 0x5bc1b8ed	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0x5bd20561	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x5bda45c4	misc_deregister
+EXPORT_SYMBOL vmlinux 0x5c096a60	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x5c0ac48c	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x5c11ca81	tcp_sendpage
+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 0x5c64d57d	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x5c76698a	bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x5caee16d	cont_write_begin
+EXPORT_SYMBOL vmlinux 0x5cc6f981	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x5cc7c6c5	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x5cc8e015	iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5cd12bcc	page_symlink
+EXPORT_SYMBOL vmlinux 0x5cd91d99	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x5cdee4b4	scsi_register
+EXPORT_SYMBOL vmlinux 0x5d062e09	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x5d1f059f	__cleancache_put_page
+EXPORT_SYMBOL vmlinux 0x5d55308c	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d5cb113	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x5d60b806	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x5d6efd5f	dqput
+EXPORT_SYMBOL vmlinux 0x5d74dbcf	pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5db370e9	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x5dbf99ed	input_open_device
+EXPORT_SYMBOL vmlinux 0x5dc10aa0	deactivate_super
+EXPORT_SYMBOL vmlinux 0x5dce6b75	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x5dd70cb0	unregister_key_type
+EXPORT_SYMBOL vmlinux 0x5dfede66	del_gendisk
+EXPORT_SYMBOL vmlinux 0x5e05b189	key_type_keyring
+EXPORT_SYMBOL vmlinux 0x5e3c65ce	blk_register_region
+EXPORT_SYMBOL vmlinux 0x5e4ce92d	tty_mutex
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e8e318c	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x5e933695	do_sync_read
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5ea5040d	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5ec0412f	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed24918	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ef0b5f7	tcp_close
+EXPORT_SYMBOL vmlinux 0x5effd679	pci_enable_device
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f203abd	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x5f240626	swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x5f27544a	mempool_destroy
+EXPORT_SYMBOL vmlinux 0x5f418392	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f89874d	blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x5f8a1f81	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0x5f99776f	tty_shutdown
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fbf385b	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x5fd2298e	strnstr
+EXPORT_SYMBOL vmlinux 0x5fd6c134	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x5fe41fb6	percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x5feaf515	I_BDEV
+EXPORT_SYMBOL vmlinux 0x5ff42b08	acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ffd6816	ipv6_skip_exthdr
+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 0x604cc546	__dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x6053485c	inet_frags_init
+EXPORT_SYMBOL vmlinux 0x6057d92d	truncate_setsize
+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 0x60908f15	phy_stop
+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 0x60db843b	lock_may_read
+EXPORT_SYMBOL vmlinux 0x60ff1db7	ppp_unregister_compressor
+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 0x6132f5dc	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0x61734696	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x618911fc	numa_node
+EXPORT_SYMBOL vmlinux 0x618ab157	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x619b187b	add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x61a4fa98	sock_no_ioctl
+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 0x61ee48b5	migrate_page
+EXPORT_SYMBOL vmlinux 0x61fdf7e7	udp_disconnect
+EXPORT_SYMBOL vmlinux 0x620451df	d_alloc_root
+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 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL vmlinux 0x622dc1a8	__find_get_block
+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 0x629cd5ee	set_page_dirty
+EXPORT_SYMBOL vmlinux 0x629f2b47	acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0x62ab77d5	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x62c3f5b8	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x62cb4cee	interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x62d6ed8b	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x62fa4fde	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL vmlinux 0x6322095f	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x6325f8b2	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x6329ed94	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x6332cc1a	audit_log_start
+EXPORT_SYMBOL vmlinux 0x6337dfce	ab8500_gpadc_convert
+EXPORT_SYMBOL vmlinux 0x63616072	compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x636a5691	acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x63855ca4	free_xenballooned_pages
+EXPORT_SYMBOL vmlinux 0x639064a2	request_firmware
+EXPORT_SYMBOL vmlinux 0x63a6ad4e	alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x63b3406c	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x63b92975	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x63b97703	simple_release_fs
+EXPORT_SYMBOL vmlinux 0x63d1e2c2	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x63d65abd	register_gifconf
+EXPORT_SYMBOL vmlinux 0x63e0de43	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x63e86dfe	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL vmlinux 0x63ecad53	register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63f3b19f	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x63fc232f	strlen_user
+EXPORT_SYMBOL vmlinux 0x63ffdefc	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64069a4b	intel_gtt_map_memory
+EXPORT_SYMBOL vmlinux 0x64151d1d	qdisc_watchdog_schedule
+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 0x6478134c	ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x649ba247	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x64b2d3c1	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x64b87f92	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x64c928e4	find_get_page
+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 0x6507d937	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x651a4139	test_taint
+EXPORT_SYMBOL vmlinux 0x651b41ad	set_binfmt
+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 0x65408378	zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67	dev_valid_name
+EXPORT_SYMBOL vmlinux 0x654cc1a8	arp_invalidate
+EXPORT_SYMBOL vmlinux 0x654e19bf	scsi_host_put
+EXPORT_SYMBOL vmlinux 0x6551ca4e	nf_afinfo
+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 0x65726156	netdev_notice
+EXPORT_SYMBOL vmlinux 0x657879ce	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x65799717	register_xen_selfballooning
+EXPORT_SYMBOL vmlinux 0x658e48dc	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x659f7453	vm_insert_page
+EXPORT_SYMBOL vmlinux 0x65a57182	save_mount_options
+EXPORT_SYMBOL vmlinux 0x65d2270b	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x6605f97f	flex_array_clear
+EXPORT_SYMBOL vmlinux 0x664f9b37	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x665bb9a9	wireless_send_event
+EXPORT_SYMBOL vmlinux 0x6673c85f	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x66846ed3	free_inode_nonrcu
+EXPORT_SYMBOL vmlinux 0x668da8d5	zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x669ef9be	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x66a67dab	flex_array_shrink
+EXPORT_SYMBOL vmlinux 0x66a6cfed	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x66b0ab27	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0x66c18b1b	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x66d0ee54	vfsmount_lock_global_unlock
+EXPORT_SYMBOL vmlinux 0x66d35dad	pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x66d593ab	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x66dc7389	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x66f22e02	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x67053080	current_kernel_time
+EXPORT_SYMBOL vmlinux 0x6711cb0a	xfrm6_find_1stfragopt
+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 0x679806cb	journal_start
+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 0x67edcf66	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x67f554b1	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x67f6c0a7	__scsi_add_device
+EXPORT_SYMBOL vmlinux 0x67f7403e	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x681621de	blk_start_request
+EXPORT_SYMBOL vmlinux 0x681be8d0	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x6829796b	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x684c3e61	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x6858a49a	sync_blockdev
+EXPORT_SYMBOL vmlinux 0x687023d6	init_buffer
+EXPORT_SYMBOL vmlinux 0x68793f35	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688b453a	tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x68aca0e1	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x68b6fe12	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x690d92a2	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x691001b5	acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0x69266afd	security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x692a46c0	pci_biosrom_size
+EXPORT_SYMBOL vmlinux 0x69382178	input_event
+EXPORT_SYMBOL vmlinux 0x6948f51d	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x6960669e	truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x697abd3a	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x6983ddb0	key_revoke
+EXPORT_SYMBOL vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL vmlinux 0x698c0fdb	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x6999c138	padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x69a0ca7d	iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a1673e	ip_cmsg_recv
+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 0x6a162809	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6a29431d	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x6a48e16b	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x6a5e7959	unregister_console
+EXPORT_SYMBOL vmlinux 0x6a5fa363	sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a6d0a90	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6aa08938	sock_i_ino
+EXPORT_SYMBOL vmlinux 0x6aa96b00	kmem_cache_alloc_trace
+EXPORT_SYMBOL vmlinux 0x6acacb08	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad85887	acpi_enable_gpe
+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 0x6b430a09	kblockd_schedule_work
+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 0x6ba1322c	ps2_end_command
+EXPORT_SYMBOL vmlinux 0x6bb428fe	scsi_execute
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bd9dda4	sock_create_lite
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bec472a	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x6c245af1	dquot_mark_dquot_dirty
+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 0x6c9ed45d	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6cde0e18	scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x6ce82fcb	phy_device_free
+EXPORT_SYMBOL vmlinux 0x6d0c8276	vfs_symlink
+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 0x6d334118	__get_user_8
+EXPORT_SYMBOL vmlinux 0x6d340f64	tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d4fa93b	___pskb_trim
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d73aa8f	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x6d85fc8c	security_path_rename
+EXPORT_SYMBOL vmlinux 0x6d9c2f5e	ilookup
+EXPORT_SYMBOL vmlinux 0x6dc49554	get_fs_type
+EXPORT_SYMBOL vmlinux 0x6deb54ac	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e2649e2	block_write_end
+EXPORT_SYMBOL vmlinux 0x6e51ac2e	_raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x6e65f2dc	rtc_lock
+EXPORT_SYMBOL vmlinux 0x6e679936	may_umount
+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 0x6eb26e55	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x6eb8c143	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x6eb92792	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x6ec0d2ff	bio_add_page
+EXPORT_SYMBOL vmlinux 0x6ed891d7	flush_signals
+EXPORT_SYMBOL vmlinux 0x6efb45b5	__inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x6f0e1a65	__pskb_pull_tail
+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 0x6f89fd82	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x6f8c0edf	genphy_restart_aneg
+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 0x6fdef5d3	sk_common_release
+EXPORT_SYMBOL vmlinux 0x6fe786f1	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x6feb2039	acpi_write
+EXPORT_SYMBOL vmlinux 0x6feb624b	tcp_md5_hash_key
+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 0x702cc664	arp_tbl
+EXPORT_SYMBOL vmlinux 0x703b4352	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL vmlinux 0x707e00b9	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x70b36a01	blk_queue_max_hw_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 0x70da445b	dquot_acquire
+EXPORT_SYMBOL vmlinux 0x70e08437	mntget
+EXPORT_SYMBOL vmlinux 0x70e0d61f	cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x70fe0bb4	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x71004a1f	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x710475b8	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x7114a71f	bit_waitqueue
+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 0x71ebbc3d	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x71f6eb38	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x721b1fb7	journal_forget
+EXPORT_SYMBOL vmlinux 0x72213a13	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x7229ff89	ppp_input
+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 0x72620522	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x7279064f	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x729cac7d	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x729d512b	vm_event_states
+EXPORT_SYMBOL vmlinux 0x72a98fdb	copy_user_generic_unrolled
+EXPORT_SYMBOL vmlinux 0x72aa18df	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140	mtrr_add
+EXPORT_SYMBOL vmlinux 0x72d18a34	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x72df2f2a	up_read
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72f23f8f	ip_getsockopt
+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 0x737de5e9	radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x73a1c558	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73b65ccf	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x73d36710	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x73efed04	pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x73f11212	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x73f5ddee	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0x73fc9eb6	f_setown
+EXPORT_SYMBOL vmlinux 0x7404ee6f	kill_litter_super
+EXPORT_SYMBOL vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x741a974d	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x742178d1	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x745e7836	poll_freewait
+EXPORT_SYMBOL vmlinux 0x74681799	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x7469fcfe	radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x747cc2d6	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x7485e15e	unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x748c0a89	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x74bc756a	proc_dostring
+EXPORT_SYMBOL vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c83ae6	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0x74cc1cbe	unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74d4aa17	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x74e212ba	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x74f61bde	generic_removexattr
+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 0x752d1b55	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL vmlinux 0x755c9a7b	mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x756e544b	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x756e6992	strnicmp
+EXPORT_SYMBOL vmlinux 0x75772c07	mutex_lock
+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 0x75e2c293	input_reset_device
+EXPORT_SYMBOL vmlinux 0x75ee72cd	pci_choose_state
+EXPORT_SYMBOL vmlinux 0x75f9e0c9	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x75fbdefd	acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x7604fdf9	sock_recvmsg
+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 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 0x7668a33a	dev_addr_del_multiple
+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 0x76871fb5	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x7698e5b4	tcp_seq_open
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c16ec4	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x76d1db4f	compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76e9a6cc	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x76faac90	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x77170a74	disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x77173c42	d_set_d_op
+EXPORT_SYMBOL vmlinux 0x771cf835	dma_pool_alloc
+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 0x774d89be	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x77857850	mount_nodev
+EXPORT_SYMBOL vmlinux 0x7786992d	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77acd3f3	blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77c432d7	inet_add_protocol
+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 0x77fa5d1f	ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x78019baa	ilookup5
+EXPORT_SYMBOL vmlinux 0x782ab47c	sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x782acba5	crc_t10dif
+EXPORT_SYMBOL vmlinux 0x783346b6	llc_add_pack
+EXPORT_SYMBOL vmlinux 0x783bbb98	dns_query
+EXPORT_SYMBOL vmlinux 0x78474d21	writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x78620d67	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x78764f4e	pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL vmlinux 0x788d2a9a	idr_remove
+EXPORT_SYMBOL vmlinux 0x789e0ed6	uart_register_driver
+EXPORT_SYMBOL vmlinux 0x78bb2011	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0x78dc6b04	acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e7c158	vfs_write
+EXPORT_SYMBOL vmlinux 0x78ed9160	agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x79068fda	acpi_install_method
+EXPORT_SYMBOL vmlinux 0x79444dc4	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x795a2885	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x799206b1	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x79a63910	seq_path
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x7a0556da	simple_write_begin
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a2bb850	scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x7a2e2da0	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x7a3cb25c	pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x7a3f0b02	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a9bf88d	udplite_table
+EXPORT_SYMBOL vmlinux 0x7aa81449	tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x7aaa7f15	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x7ab87fbb	dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x7ad7034f	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x7ae4e2f7	jbd2_journal_check_available_features
+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 0x7b233733	journal_restart
+EXPORT_SYMBOL vmlinux 0x7b414a59	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x7b5245ea	secpath_dup
+EXPORT_SYMBOL vmlinux 0x7b52a859	wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05	acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b826b6f	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x7b8e64e5	skb_split
+EXPORT_SYMBOL vmlinux 0x7b8f4c40	key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7b9a6116	intel_agp_enabled
+EXPORT_SYMBOL vmlinux 0x7ba56b93	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x7bd2ecbc	sk_stream_error
+EXPORT_SYMBOL vmlinux 0x7be8f40a	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7bfa5e6e	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x7bff3be7	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7bff4d80	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x7c15eebd	bmap
+EXPORT_SYMBOL vmlinux 0x7c1fa09f	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x7c2cd0c1	udp_poll
+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 0x7c63f0e5	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x7c80fe66	blk_rq_unmap_user
+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 0x7cceea20	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7cfbc920	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x7d0e7a09	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x7d111fa8	journal_errno
+EXPORT_SYMBOL vmlinux 0x7d11c268	jiffies
+EXPORT_SYMBOL vmlinux 0x7d2f32b8	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x7d5387ed	otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x7d54056e	seq_puts
+EXPORT_SYMBOL vmlinux 0x7d6bb587	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x7d94f746	acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x7da98506	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x7dbc2e57	mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x7dd554fc	unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x7dd8deb8	nla_append
+EXPORT_SYMBOL vmlinux 0x7ddd4659	kernel_accept
+EXPORT_SYMBOL vmlinux 0x7de5b269	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0x7debbfea	set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7df0756f	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x7df44c08	neigh_create
+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 0x7ec8f9a7	x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc	strncpy
+EXPORT_SYMBOL vmlinux 0x7ed5d75a	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x7edf5536	compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x7f136cf5	nf_log_unregister
+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 0x7fe3b51d	cap_netlink_recv
+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 0x805485ab	__kfifo_out_r
+EXPORT_SYMBOL vmlinux 0x806b2b56	scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x806d93a1	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x80996088	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x80b45138	__register_chrdev
+EXPORT_SYMBOL vmlinux 0x80c3b8bd	set_bh_page
+EXPORT_SYMBOL vmlinux 0x80ddc05f	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x80fa4d48	serio_open
+EXPORT_SYMBOL vmlinux 0x810b3618	param_ops_string
+EXPORT_SYMBOL vmlinux 0x812bcd3a	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x81317012	tmem_enabled
+EXPORT_SYMBOL vmlinux 0x81343a02	inet6_bind
+EXPORT_SYMBOL vmlinux 0x813650ab	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x8144c835	pskb_copy
+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 0x81b3232a	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x81bf9220	generic_getxattr
+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 0x81d98b03	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d	xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x82495fc5	unregister_qdisc
+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 0x8265e786	brioctl_set
+EXPORT_SYMBOL vmlinux 0x826872b1	sk_filter
+EXPORT_SYMBOL vmlinux 0x82695508	set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x8276530c	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x82842a9c	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x82ab3b1e	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x82acfb70	blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b4b7f2	netdev_update_features
+EXPORT_SYMBOL vmlinux 0x82cafb8e	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x82e9c083	csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x8300b32c	generic_write_end
+EXPORT_SYMBOL vmlinux 0x830e547b	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x833c03aa	acpi_enable_all_runtime_gpes
+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 0x83969f70	submit_bh
+EXPORT_SYMBOL vmlinux 0x83a476ce	bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83a61161	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x83c28782	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x83cd6d64	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x83d54024	iget_failed
+EXPORT_SYMBOL vmlinux 0x84060081	xen_poll_irq_timeout
+EXPORT_SYMBOL vmlinux 0x840a18e6	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x8417f512	acpi_update_all_gpes
+EXPORT_SYMBOL vmlinux 0x8427c888	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x842dc93d	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x84516a34	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x84523b85	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x8462849f	ip_options_compile
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x84be886f	completion_done
+EXPORT_SYMBOL vmlinux 0x84d4afd6	pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x84f2496b	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x85685d11	compat_mc_getsockopt
+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 0x85d37dbf	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e5225e	dget_parent
+EXPORT_SYMBOL vmlinux 0x8629964d	vga_put
+EXPORT_SYMBOL vmlinux 0x862a61fa	agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x867cd586	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+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 0x86e25b77	inet_frags_fini
+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 0x87407855	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x874496ce	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x87632fbf	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x876d7480	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x876dafc3	ec_write
+EXPORT_SYMBOL vmlinux 0x876f5598	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x877c5c28	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x8788ca41	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87aaddf8	wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87e5474c	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88186031	key_unlink
+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 0x889888c6	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x88ad3440	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x88bcefac	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x88f57437	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x890d50ab	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x890f3873	skb_pad
+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 0x894a3b45	swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x894fc4f8	dev_alert
+EXPORT_SYMBOL vmlinux 0x8955abef	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x8955c3c8	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x895dd297	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x896f1535	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+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 0x89c4ef6a	jbd2_journal_release_buffer
+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 0x8a12fbcb	netif_napi_del
+EXPORT_SYMBOL vmlinux 0x8a1615d6	mempool_create_node
+EXPORT_SYMBOL vmlinux 0x8a165582	swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x8a35e614	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x8a5e05b4	tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x8a60ad07	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+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 0x8ac7a772	poll_initwait
+EXPORT_SYMBOL vmlinux 0x8aca1f4e	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x8acffcac	agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x8af1a5d9	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x8b1a7a66	pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873	sg_last
+EXPORT_SYMBOL vmlinux 0x8b4eb376	phy_mii_ioctl
+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 0x8bc40c76	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x8bf8a60e	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c3f5034	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x8c531941	i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x8c650084	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x8c785332	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x8c8cac24	vfs_mknod
+EXPORT_SYMBOL vmlinux 0x8c9ca0b0	kernel_connect
+EXPORT_SYMBOL vmlinux 0x8c9fe95a	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x8ca3459d	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x8cc4f7fd	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL vmlinux 0x8d04cd36	kill_pgrp
+EXPORT_SYMBOL vmlinux 0x8d120cdb	journal_set_features
+EXPORT_SYMBOL vmlinux 0x8d551bef	sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6906d4	unregister_memory_notifier
+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 0x8dc026b8	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x8dd70005	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x8ddeaba3	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x8dec9080	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x8e002cda	acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0276c1	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e1afbae	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x8e2981af	bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e561fda	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x8e6825fc	netlink_ack
+EXPORT_SYMBOL vmlinux 0x8e8e7833	serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x8ea6f369	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x8eae3268	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8ec4a398	mount_bdev
+EXPORT_SYMBOL vmlinux 0x8ec65967	follow_pfn
+EXPORT_SYMBOL vmlinux 0x8edf044f	pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8eeebe34	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x8ef06cf2	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x8efd72e1	unregister_nls
+EXPORT_SYMBOL vmlinux 0x8f030f6d	key_alloc
+EXPORT_SYMBOL vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f2d66f4	blkdev_get
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f57721d	dentry_update_name_case
+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 0x8f9beee5	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa12110	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fe64ba3	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x8feab466	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x9018c6e5	iunique
+EXPORT_SYMBOL vmlinux 0x902667a9	iput
+EXPORT_SYMBOL vmlinux 0x904409c6	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9044283b	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0x90477bcb	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x9051a4df	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x905a655b	keyring_search
+EXPORT_SYMBOL vmlinux 0x90661448	journal_stop
+EXPORT_SYMBOL vmlinux 0x90a1601f	dmi_check_system
+EXPORT_SYMBOL vmlinux 0x9118d4a5	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x91259027	iw_handler_get_spy
+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 0x91607d95	set_memory_wb
+EXPORT_SYMBOL vmlinux 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x9186ad23	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0x91989c68	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x91d26882	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x91e1f8f2	submit_bio
+EXPORT_SYMBOL vmlinux 0x9209c44a	get_write_access
+EXPORT_SYMBOL vmlinux 0x921202c3	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x9213763a	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x92164f64	llc_sap_open
+EXPORT_SYMBOL vmlinux 0x922944d7	acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0x92328aa6	pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x92392cd9	iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923be53c	force_sig
+EXPORT_SYMBOL vmlinux 0x924f21cb	dev_deactivate
+EXPORT_SYMBOL vmlinux 0x925308ed	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x92618559	elevator_change
+EXPORT_SYMBOL vmlinux 0x9264fdbb	dquot_commit
+EXPORT_SYMBOL vmlinux 0x92b2f7c5	security_file_permission
+EXPORT_SYMBOL vmlinux 0x92c89bdd	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x92d73aef	vfs_readv
+EXPORT_SYMBOL vmlinux 0x92ea4ae4	crc32_le
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x931eaadf	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x932795d0	journal_flush
+EXPORT_SYMBOL vmlinux 0x933db038	phy_attach
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x93509fe4	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x935a3edd	seq_release_private
+EXPORT_SYMBOL vmlinux 0x9367b037	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x937aef98	open_exec
+EXPORT_SYMBOL vmlinux 0x93902532	uart_match_port
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93c651be	acpi_info
+EXPORT_SYMBOL vmlinux 0x93f3e52b	acpi_extract_package
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x941249fe	netdev_crit
+EXPORT_SYMBOL vmlinux 0x942eb440	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x9430e79b	pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x94394ee1	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x949909b3	mnt_pin
+EXPORT_SYMBOL vmlinux 0x949a419b	swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0x94df1fd4	blk_free_tags
+EXPORT_SYMBOL vmlinux 0x94e19463	cdrom_open
+EXPORT_SYMBOL vmlinux 0x94e40cd0	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x951804b2	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x9518b623	register_shrinker
+EXPORT_SYMBOL vmlinux 0x951aee2c	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x9535278c	abort_creds
+EXPORT_SYMBOL vmlinux 0x953db383	free_irq_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x953e1701	phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x954488a4	syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL vmlinux 0x95479e26	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x9553a323	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x955583f9	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x955fee78	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x957669e0	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x9576f273	revalidate_disk
+EXPORT_SYMBOL vmlinux 0x957c31d9	skb_recycle
+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 0x95af2906	lock_may_write
+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 0x9637feb2	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x963e7ae6	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x964b0b0b	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x9655d369	genl_register_family
+EXPORT_SYMBOL vmlinux 0x96639824	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x966ff45a	skb_make_writable
+EXPORT_SYMBOL vmlinux 0x9696ac72	rename_lock
+EXPORT_SYMBOL vmlinux 0x969b86c3	pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x96ae11d8	start_tty
+EXPORT_SYMBOL vmlinux 0x96b07fe0	tcp_create_openreq_child
+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 0x96d82c07	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x96e7eaa1	scsi_reset_provider
+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 0x9742cb13	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x9743a234	unlink_framebuffer
+EXPORT_SYMBOL vmlinux 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97705e67	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x977185f4	i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x9774937e	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x97784a1a	journal_clear_err
+EXPORT_SYMBOL vmlinux 0x977a5243	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x97892f0e	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x978cf470	backlight_device_register
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97c1a793	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x97de0ddd	acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97fe7222	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x97feb03c	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x980d29bc	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x9820b644	warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0x98233aa1	pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x9831e9e4	__kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x98355e19	n_tty_compat_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x98435a04	blk_make_request
+EXPORT_SYMBOL vmlinux 0x986e6135	fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x988ed85d	set_memory_x
+EXPORT_SYMBOL vmlinux 0x98a28c14	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x98ad3e73	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x98cbe176	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x98e13006	blk_integrity_is_initialized
+EXPORT_SYMBOL vmlinux 0x98e69202	phy_device_register
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x992f9a8d	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x9934bde3	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x993a41aa	inet6_add_protocol
+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 0x99611758	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x9962635f	find_lock_page
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+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 0x99c62f57	ipv4_specific
+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 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 0x9a1f3838	sock_rfree
+EXPORT_SYMBOL vmlinux 0x9a2a0830	unlock_rename
+EXPORT_SYMBOL vmlinux 0x9a3c9168	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x9a54a9c4	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0x9a923532	__inet6_hash
+EXPORT_SYMBOL vmlinux 0x9aabc564	crc16
+EXPORT_SYMBOL vmlinux 0x9ab7b830	inode_change_ok
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9acf0a5e	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x9ad0e946	pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x9b05a48d	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x9b30d15d	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b4e12da	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x9b566b6b	simple_write_end
+EXPORT_SYMBOL vmlinux 0x9b660e0e	skb_checksum
+EXPORT_SYMBOL vmlinux 0x9b6ad310	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x9b75cb81	_raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x9ba7089d	argv_split
+EXPORT_SYMBOL vmlinux 0x9beb613d	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd	memscan
+EXPORT_SYMBOL vmlinux 0x9c179b7e	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x9c22069a	__brelse
+EXPORT_SYMBOL vmlinux 0x9c2ad194	spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0x9c300103	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x9c42bc1c	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x9c491f60	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c598a88	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x9c5bea0b	textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c622f2a	skb_pull
+EXPORT_SYMBOL vmlinux 0x9c6df3be	nf_reinject
+EXPORT_SYMBOL vmlinux 0x9c8ecd26	abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x9ca95a0e	sort
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc75762	__bread
+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 0x9d2617c6	__invalidate_device
+EXPORT_SYMBOL vmlinux 0x9d2bc93f	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x9d33ef5e	acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4bdc90	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x9d961216	scsi_free_command
+EXPORT_SYMBOL vmlinux 0x9d9acb29	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x9da9adc0	kobject_init
+EXPORT_SYMBOL vmlinux 0x9daa457e	kthread_bind
+EXPORT_SYMBOL vmlinux 0x9db21624	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dc471d7	fb_find_mode
+EXPORT_SYMBOL vmlinux 0x9dc5041d	consume_skb
+EXPORT_SYMBOL vmlinux 0x9dce7667	put_tty_driver
+EXPORT_SYMBOL vmlinux 0x9de34cc1	send_sig
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e1bf76c	follow_down_one
+EXPORT_SYMBOL vmlinux 0x9e1de2a6	phy_start
+EXPORT_SYMBOL vmlinux 0x9e2cba26	register_qdisc
+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 0x9eae772e	rt6_lookup
+EXPORT_SYMBOL vmlinux 0x9ebd4c04	adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ebdf059	x86_hyper
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2c53f5	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x9f39339d	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x9f3f82db	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f6097dd	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x9f6e19ab	mem_section
+EXPORT_SYMBOL vmlinux 0x9f984513	strrchr
+EXPORT_SYMBOL vmlinux 0x9fa05d63	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x9fb81235	scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x9fcafc5b	tcp_prot
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fdf9e76	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x9fe58dd2	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x9feae1e1	seq_open_private
+EXPORT_SYMBOL vmlinux 0x9ff3f284	mpage_writepage
+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 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51	out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d37eb8	sk_free
+EXPORT_SYMBOL vmlinux 0xa0d3d560	ksize
+EXPORT_SYMBOL vmlinux 0xa0d888ea	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xa0d8debb	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa0ff74d6	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xa104f65a	kernel_bind
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa1149ff4	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa160e924	mutex_unlock
+EXPORT_SYMBOL vmlinux 0xa19ef50b	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xa1a75d81	jbd2_journal_wipe
+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 0xa1c5a3b3	cleancache_enabled
+EXPORT_SYMBOL vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL vmlinux 0xa1ccc2c4	release_sock
+EXPORT_SYMBOL vmlinux 0xa1e3ac8f	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xa1ec8f1c	__kfifo_to_user_r
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa254ab6e	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa28d4a88	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xa2967d45	inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xa29c9a84	journal_abort
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa2d3600d	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xa2e39528	netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xa2ef34d7	rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f8e4f0	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0xa30a0d73	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xa320bdfa	vga_tryget
+EXPORT_SYMBOL vmlinux 0xa32cb415	generic_file_mmap
+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 0xa35de80f	ipv4_config
+EXPORT_SYMBOL vmlinux 0xa363dab4	udp_table
+EXPORT_SYMBOL vmlinux 0xa389fc58	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xa3a3a762	mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xa3a5be95	memmove
+EXPORT_SYMBOL vmlinux 0xa3aadfa0	qdisc_tree_decrease_qlen
+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 0xa41bc669	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xa448b639	do_SAK
+EXPORT_SYMBOL vmlinux 0xa477d5d8	blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xa481ada3	mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xa4876dda	nf_register_sockopt
+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 0xa4eb4eff	_raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0xa4ee1fee	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xa4fbaf4a	ida_destroy
+EXPORT_SYMBOL vmlinux 0xa514e241	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xa520b5d8	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xa5334c9d	elevator_init
+EXPORT_SYMBOL vmlinux 0xa557ac7f	inet_sendpage
+EXPORT_SYMBOL vmlinux 0xa55b454d	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0xa56c9b92	inet_accept
+EXPORT_SYMBOL vmlinux 0xa585c63b	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a479cf	vfs_rename
+EXPORT_SYMBOL vmlinux 0xa5ac785d	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xa5b82b11	dma_find_channel
+EXPORT_SYMBOL vmlinux 0xa5eb3260	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0xa60dea4d	blk_insert_request
+EXPORT_SYMBOL vmlinux 0xa619ca6b	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0xa61aae80	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xa638a9b9	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xa639e111	vfs_link
+EXPORT_SYMBOL vmlinux 0xa63acb2c	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xa63d85ab	slhc_remember
+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 0xa6fbaffa	blkdev_get_by_path
+EXPORT_SYMBOL vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa712d90b	blk_run_queue
+EXPORT_SYMBOL vmlinux 0xa72a0f5b	nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa7466d27	get_phy_id
+EXPORT_SYMBOL vmlinux 0xa755f539	serial8250_register_port
+EXPORT_SYMBOL vmlinux 0xa75eebec	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xa761e556	km_report
+EXPORT_SYMBOL vmlinux 0xa761e636	dm_io
+EXPORT_SYMBOL vmlinux 0xa772e125	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xa78acf97	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0xa7995d1b	unregister_netdev
+EXPORT_SYMBOL vmlinux 0xa7ae1826	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0xa7ec0927	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa8087aea	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xa816c525	schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa832c313	icmp_send
+EXPORT_SYMBOL vmlinux 0xa839f9ba	complete_request_key
+EXPORT_SYMBOL vmlinux 0xa8495b43	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xa871760e	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0xa871f2b1	agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0xa87bd414	ata_print_version
+EXPORT_SYMBOL vmlinux 0xa87e1aab	init_task
+EXPORT_SYMBOL vmlinux 0xa8803840	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xa886a958	krealloc
+EXPORT_SYMBOL vmlinux 0xa8a6f639	__check_region
+EXPORT_SYMBOL vmlinux 0xa8c19de6	task_nice
+EXPORT_SYMBOL vmlinux 0xa8d68abd	acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8e456ed	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xa8e5c287	simple_rmdir
+EXPORT_SYMBOL vmlinux 0xa8fa4761	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xa8fdbc2e	scsi_add_device
+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 0xa96e5028	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xa98866f5	idr_get_next
+EXPORT_SYMBOL vmlinux 0xa9899068	input_inject_event
+EXPORT_SYMBOL vmlinux 0xa9939d95	udp_prot
+EXPORT_SYMBOL vmlinux 0xa99ea763	alloc_file
+EXPORT_SYMBOL vmlinux 0xa9ae09a8	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xa9bd2676	__vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c1b627	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL vmlinux 0xa9c650f3	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xa9d930a8	register_quota_format
+EXPORT_SYMBOL vmlinux 0xa9f5f414	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xaa25da80	cad_pid
+EXPORT_SYMBOL vmlinux 0xaa29589b	input_mt_report_finger_count
+EXPORT_SYMBOL vmlinux 0xaa4e77c6	jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xaa650194	tr_type_trans
+EXPORT_SYMBOL vmlinux 0xaa84a8ae	acpi_processor_power_init_bm_check
+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 0xab2054a3	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xab28271c	i8253_lock
+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 0xab94f731	dev_kfree_skb_any
+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 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac200077	d_path
+EXPORT_SYMBOL vmlinux 0xac266811	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xac58ea5e	acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac5bb941	intel_gtt_insert_pages
+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 0xad25fb12	__memcpy
+EXPORT_SYMBOL vmlinux 0xad414fb9	pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad494a76	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0xad4cfd6b	kset_unregister
+EXPORT_SYMBOL vmlinux 0xad6a61fe	phy_connect
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad933f79	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xad9de21b	scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadcac4a3	vfsmount_lock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0xadcfec8f	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xadd05fb6	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0xadd785fd	nla_reserve
+EXPORT_SYMBOL vmlinux 0xadd97b7b	fget_raw
+EXPORT_SYMBOL vmlinux 0xadfdd55d	set_blocksize
+EXPORT_SYMBOL vmlinux 0xae2a3fe4	kobject_put
+EXPORT_SYMBOL vmlinux 0xae34f60e	blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xae3d6ea6	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0xae446016	backlight_force_update
+EXPORT_SYMBOL vmlinux 0xae7f9c30	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xae89d98a	skb_clone
+EXPORT_SYMBOL vmlinux 0xae9410d6	dev_addr_add
+EXPORT_SYMBOL vmlinux 0xaea976a8	acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaeaa8330	unload_nls
+EXPORT_SYMBOL vmlinux 0xaecdeaa2	agp_bind_memory
+EXPORT_SYMBOL vmlinux 0xaecf0f48	__cleancache_init_fs
+EXPORT_SYMBOL vmlinux 0xaee17055	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0xaef85eba	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xaf228098	dqget
+EXPORT_SYMBOL vmlinux 0xaf3be3da	km_query
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL vmlinux 0xaf68646b	i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xaf701ea6	scsi_print_result
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xafb8c6ff	copy_user_generic_string
+EXPORT_SYMBOL vmlinux 0xafd59beb	dump_seek
+EXPORT_SYMBOL vmlinux 0xafe82e10	strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9	register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xaff87152	pci_enable_ltr
+EXPORT_SYMBOL vmlinux 0xaff99316	generic_file_open
+EXPORT_SYMBOL vmlinux 0xb0035b08	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb0207ecf	___ratelimit
+EXPORT_SYMBOL vmlinux 0xb03c011f	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xb066f91b	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb068781f	mdiobus_free
+EXPORT_SYMBOL vmlinux 0xb0875944	__page_symlink
+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 0xb0e0b27f	block_read_full_page
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0e12318	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xb117ae35	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xb117d921	d_instantiate
+EXPORT_SYMBOL vmlinux 0xb11fa1ce	strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+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 0xb17bb693	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0xb191a012	elv_register_queue
+EXPORT_SYMBOL vmlinux 0xb19760c3	bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22	rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1d9523e	wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb20b52c7	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xb20ecf88	acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb24ddf36	vga_client_register
+EXPORT_SYMBOL vmlinux 0xb24e49b9	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xb2670bc3	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2744b36	down_write_trylock
+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 0xb328a2f3	sk_dst_check
+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 0xb35dbb9a	__lock_page
+EXPORT_SYMBOL vmlinux 0xb35f5e17	dev_open
+EXPORT_SYMBOL vmlinux 0xb36cb917	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xb37815af	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xb379757c	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xb37cdbda	dev_uc_del
+EXPORT_SYMBOL vmlinux 0xb38deefc	pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0xb3910e1c	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3dc581f	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xb3f78a42	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xb3ff1f69	free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb406e6e7	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb4390f9a	mcount
+EXPORT_SYMBOL vmlinux 0xb45e4eab	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb4b7b067	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xb4d5acc4	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xb4de1991	kobject_add
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL vmlinux 0xb5452cea	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xb54533f7	usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54821c6	pci_enable_obff
+EXPORT_SYMBOL vmlinux 0xb5492905	buffer_migrate_page
+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 0xb5785621	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb578a03c	pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0xb583ede5	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xb5845487	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0xb5945fee	llc_sap_close
+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 0xb6244511	sg_init_one
+EXPORT_SYMBOL vmlinux 0xb627d20c	d_validate
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb661f6ad	set_create_files_as
+EXPORT_SYMBOL vmlinux 0xb66aa9ee	mmc_release_host
+EXPORT_SYMBOL vmlinux 0xb66f2ce3	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0xb67719fe	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb69c3a95	posix_lock_file
+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 0xb6afb04c	inet_put_port
+EXPORT_SYMBOL vmlinux 0xb6afe508	unregister_snap_client
+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 0xb6cef107	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xb6d3a906	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xb70388a6	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xb706994d	pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0xb718b38a	dst_discard
+EXPORT_SYMBOL vmlinux 0xb71a7fdf	mpage_readpages
+EXPORT_SYMBOL vmlinux 0xb7420042	scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0xb744291e	netdev_state_change
+EXPORT_SYMBOL vmlinux 0xb7517b1a	security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xb758b225	acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb762a8b3	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xb769a3cd	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xb774b0ef	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xb7863ff2	tcf_register_action
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb792998d	lookup_hash
+EXPORT_SYMBOL vmlinux 0xb7c6637b	d_genocide
+EXPORT_SYMBOL vmlinux 0xb8242b7b	bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xb82762b3	kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb83627a9	kern_path
+EXPORT_SYMBOL vmlinux 0xb84d2934	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xb86c976c	netdev_change_features
+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 0xb8e0d748	security_path_chmod
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c	__put_user_8
+EXPORT_SYMBOL vmlinux 0xb8e93131	dquot_alloc
+EXPORT_SYMBOL vmlinux 0xb8f05e85	__scm_send
+EXPORT_SYMBOL vmlinux 0xb907513f	unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb9240ea8	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xb9476db0	blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xb952f7a9	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0xb960ef4a	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99699a0	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0xb997e51e	pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0xb997fe71	skb_append
+EXPORT_SYMBOL vmlinux 0xb9df96da	dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xb9fd2205	add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba025e76	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xba2a2ca0	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xba2d8594	ec_read
+EXPORT_SYMBOL vmlinux 0xba44108a	pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba4b1312	iterate_mounts
+EXPORT_SYMBOL vmlinux 0xba71eea8	skb_insert
+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 0xbacff070	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xbad66b30	xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1dd65f	input_register_handler
+EXPORT_SYMBOL vmlinux 0xbb25d99f	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0xbb2ac055	pci_get_class
+EXPORT_SYMBOL vmlinux 0xbb38c475	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb712d02	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xbb781bda	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xbb8240ce	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xbb886fd8	ata_link_printk
+EXPORT_SYMBOL vmlinux 0xbb99125c	get_default_font
+EXPORT_SYMBOL vmlinux 0xbba14ad9	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0xbba159e0	files_lglock_local_unlock
+EXPORT_SYMBOL vmlinux 0xbbbd4976	netdev_alert
+EXPORT_SYMBOL vmlinux 0xbbde0310	pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xbbf694d8	register_netdev
+EXPORT_SYMBOL vmlinux 0xbbf8e4ac	bio_map_kern
+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 0xbc86e2c9	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xbcb45530	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0xbcbc6169	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xbcc0f97d	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL vmlinux 0xbccc92ab	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xbcded50e	install_exec_creds
+EXPORT_SYMBOL vmlinux 0xbcff1c7e	pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xbd08a2ee	skb_trim
+EXPORT_SYMBOL vmlinux 0xbd2a4509	dst_alloc
+EXPORT_SYMBOL vmlinux 0xbd2c541b	pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xbd30365d	rtnl_notify
+EXPORT_SYMBOL vmlinux 0xbd840153	account_page_writeback
+EXPORT_SYMBOL vmlinux 0xbd9e2723	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xbda960ee	filemap_fdatawrite_range
+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 0xbdcc306c	blk_requeue_request
+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 0xbe52747a	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xbe5d6d4c	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xbe5fc3d8	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0xbe63cd8c	mii_link_ok
+EXPORT_SYMBOL vmlinux 0xbe744c78	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xbea2f23b	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xbed4bbaf	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xbeeacb2c	thaw_bdev
+EXPORT_SYMBOL vmlinux 0xbeeed7a4	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf19b018	generic_setxattr
+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 0xbf63d461	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8ba54a	vprintk
+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 0xc00e673e	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0xc01cf848	_raw_read_lock
+EXPORT_SYMBOL vmlinux 0xc03896ee	dev_close
+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 0xc0e50c9d	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xc1077501	thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0xc1110856	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xc14d8320	dquot_disable
+EXPORT_SYMBOL vmlinux 0xc15d368a	udp_proc_register
+EXPORT_SYMBOL vmlinux 0xc1881e18	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xc1a153d0	pnp_is_active
+EXPORT_SYMBOL vmlinux 0xc1ad7591	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xc1b93865	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xc1bf7973	vfs_read
+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 0xc22e0210	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xc23a1b83	journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc25c8be0	filemap_flush
+EXPORT_SYMBOL vmlinux 0xc25d532d	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xc266b111	scsi_device_get
+EXPORT_SYMBOL vmlinux 0xc2a0f644	netif_skb_features
+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 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc303cf3f	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xc3053d0d	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xc30bbe61	free_task
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc32fc1c6	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0xc39136e7	journal_extend
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL vmlinux 0xc3ac5258	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xc3b42510	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xc3c50d0b	fb_get_mode
+EXPORT_SYMBOL vmlinux 0xc3d841ba	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xc3dc47f1	have_submounts
+EXPORT_SYMBOL vmlinux 0xc3fe87c8	param_ops_uint
+EXPORT_SYMBOL vmlinux 0xc402cc99	register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc41e8f7a	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0xc4554217	up
+EXPORT_SYMBOL vmlinux 0xc47b8730	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xc47f10e4	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0xc4937432	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xc4973669	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc49dfbb3	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0xc4a141ce	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xc4b87f71	__dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xc4c43ed2	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0xc4e6bffa	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xc4e9c01c	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xc50bab05	unregister_shrinker
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc558530d	profile_pc
+EXPORT_SYMBOL vmlinux 0xc56c0c36	__cleancache_init_shared_fs
+EXPORT_SYMBOL vmlinux 0xc56d1286	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xc56e2217	loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xc5844fb8	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0xc5953dfe	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+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 0xc6343c5b	arp_create
+EXPORT_SYMBOL vmlinux 0xc63cc125	prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xc659adde	try_to_release_page
+EXPORT_SYMBOL vmlinux 0xc65abeb7	agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc65fb6f5	d_delete
+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 0xc6bf546d	load_nls_default
+EXPORT_SYMBOL vmlinux 0xc6bf7f80	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc705f598	irq_set_chip
+EXPORT_SYMBOL vmlinux 0xc71184d7	nobh_write_end
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc740c64a	memchr
+EXPORT_SYMBOL vmlinux 0xc7492136	sock_map_fd
+EXPORT_SYMBOL vmlinux 0xc749f416	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xc75e0b96	km_new_mapping
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc79ae991	udplite_prot
+EXPORT_SYMBOL vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc79c3fbc	mmc_request_done
+EXPORT_SYMBOL vmlinux 0xc7a08ff9	journal_create
+EXPORT_SYMBOL vmlinux 0xc7a24d76	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc80afa35	journal_invalidatepage
+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 0xc86a6174	__kfifo_from_user_r
+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 0xc8a87c9c	d_splice_alias
+EXPORT_SYMBOL vmlinux 0xc8ae57b4	generic_fillattr
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8c6fe4c	pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0xc8d3c4b3	misc_register
+EXPORT_SYMBOL vmlinux 0xc8ff1aca	ppp_input_error
+EXPORT_SYMBOL vmlinux 0xc93a43ba	__break_lease
+EXPORT_SYMBOL vmlinux 0xc93bd399	mmc_can_erase
+EXPORT_SYMBOL vmlinux 0xc94fa003	irq_stat
+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 0xc9bf3c4c	sock_i_uid
+EXPORT_SYMBOL vmlinux 0xc9e34d82	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xc9e3c793	pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0xc9e5422f	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xc9e8be43	serio_reconnect
+EXPORT_SYMBOL vmlinux 0xca0b4884	netdev_set_master
+EXPORT_SYMBOL vmlinux 0xca462a6b	log_wait_commit
+EXPORT_SYMBOL vmlinux 0xca4c923d	vscnprintf
+EXPORT_SYMBOL vmlinux 0xca4ea168	filp_close
+EXPORT_SYMBOL vmlinux 0xca530475	spi_dv_device
+EXPORT_SYMBOL vmlinux 0xca581d88	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca65d3bd	x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xca79abca	journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xca8acc78	acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xca95cb13	fb_pan_display
+EXPORT_SYMBOL vmlinux 0xcab205b5	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xcad5189e	scsi_verify_blk_ioctl
+EXPORT_SYMBOL vmlinux 0xcaeaaeec	journal_load
+EXPORT_SYMBOL vmlinux 0xcb3e3137	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xcb6974be	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xcb7131fb	fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcb8fa857	soft_cursor
+EXPORT_SYMBOL vmlinux 0xcb921652	kfree_skb
+EXPORT_SYMBOL vmlinux 0xcb99edb0	posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0xcba3a399	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xcbbd3832	init_special_inode
+EXPORT_SYMBOL vmlinux 0xcbc8e4d1	agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbcc6d38	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xcbe023fc	bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xcc07af75	strnlen
+EXPORT_SYMBOL vmlinux 0xcc0d1dfd	put_io_context
+EXPORT_SYMBOL vmlinux 0xcc0f3b99	bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xcc17a9fa	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0xcc2049e8	follow_down
+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 0xcc3efc71	kobject_get
+EXPORT_SYMBOL vmlinux 0xcc4b24fe	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc6b1aa5	security_path_unlink
+EXPORT_SYMBOL vmlinux 0xcc6fcbba	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcca94125	kstrtoint_from_user
+EXPORT_SYMBOL vmlinux 0xccb636da	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0xccbfd416	mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xcce37fbd	nf_log_register
+EXPORT_SYMBOL vmlinux 0xcd1dd872	__ps2_command
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd3acc08	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xcd6497af	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xcd714520	pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xcddb1b3e	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcde1a40e	udp_lib_unhash
+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 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL vmlinux 0xce2deacd	blkdev_put
+EXPORT_SYMBOL vmlinux 0xce313616	inet_csk_clear_xmit_timers
+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 0xce65b8c9	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xce689088	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0xcea3f538	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xcea836d6	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xcebc8d8f	__page_cache_alloc
+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 0xceffba25	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xcf015f7b	do_settimeofday
+EXPORT_SYMBOL vmlinux 0xcf07828c	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xcf0b27ea	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xcf101f4c	km_state_notify
+EXPORT_SYMBOL vmlinux 0xcf124370	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xcf1465a2	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xcf1abddc	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xcf1d28ab	acpi_error
+EXPORT_SYMBOL vmlinux 0xcf43a1fd	module_put
+EXPORT_SYMBOL vmlinux 0xcf51d533	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0xcf570a0f	scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xcf59c5b4	intel_gmch_remove
+EXPORT_SYMBOL vmlinux 0xcf611cbe	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f	msrs_free
+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 0xcfd5965d	notify_change
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcfeca560	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xcff46940	elv_add_request
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd03586a8	mii_check_link
+EXPORT_SYMBOL vmlinux 0xd04b809c	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0xd0616a98	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0xd078def0	vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0xd0792aed	register_filesystem
+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 0xd099b522	thaw_process
+EXPORT_SYMBOL vmlinux 0xd09f080a	simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0afa675	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xd0bc3549	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xd0cb84e7	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xd0d42c42	mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xd0e42890	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xd0e766d8	ip6_xmit
+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 0xd166362e	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd17b87ab	invalidate_bdev
+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 0xd1d82294	max8998_update_reg
+EXPORT_SYMBOL vmlinux 0xd1f152ad	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd1fc0ed3	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xd2329de3	wait_for_completion_killable_timeout
+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 0xd266efe7	mempool_create
+EXPORT_SYMBOL vmlinux 0xd276f795	param_ops_invbool
+EXPORT_SYMBOL vmlinux 0xd2965f6f	kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0	dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2c46387	acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd35e249a	_raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0xd37b29d9	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xd3828575	flush_old_exec
+EXPORT_SYMBOL vmlinux 0xd38480a0	rb_augment_erase_end
+EXPORT_SYMBOL vmlinux 0xd38d1e11	pv_mmu_ops
+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 0xd3ba7307	writeback_in_progress
+EXPORT_SYMBOL vmlinux 0xd3c08471	gen_pool_create
+EXPORT_SYMBOL vmlinux 0xd3dcab0b	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0xd3e2aa1a	netif_device_attach
+EXPORT_SYMBOL vmlinux 0xd3fce8e2	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xd4053d80	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xd4059ce8	blk_end_request
+EXPORT_SYMBOL vmlinux 0xd40d4dcf	locks_init_lock
+EXPORT_SYMBOL vmlinux 0xd432c855	simple_setattr
+EXPORT_SYMBOL vmlinux 0xd4494b8d	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xd45e67ed	dput
+EXPORT_SYMBOL vmlinux 0xd46517c8	mpage_readpage
+EXPORT_SYMBOL vmlinux 0xd47e284c	tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xd49a3c74	neigh_destroy
+EXPORT_SYMBOL vmlinux 0xd4a7446b	inet6_getname
+EXPORT_SYMBOL vmlinux 0xd4ae2f3e	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xd4d8416b	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0xd4e62696	__mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xd4fa441d	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xd50fef48	acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd51d18c6	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xd5280506	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xd5517d3d	blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xd56fa0ea	proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xd5743134	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5b487c4	fsync_bdev
+EXPORT_SYMBOL vmlinux 0xd5c8f36b	lookup_one_len
+EXPORT_SYMBOL vmlinux 0xd5e9778a	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xd5f2172f	del_timer_sync
+EXPORT_SYMBOL vmlinux 0xd5f24fe5	remove_proc_entry
+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 0xd6386ca1	pci_get_device
+EXPORT_SYMBOL vmlinux 0xd6a1e304	fail_migrate_page
+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 0xd6db4d28	vfs_open
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd700e082	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0xd7089e84	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0xd71e9cbc	pci_find_bus
+EXPORT_SYMBOL vmlinux 0xd72419d1	cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0xd7307ea0	would_dump
+EXPORT_SYMBOL vmlinux 0xd73fd4ba	dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd77466f0	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd7923bb7	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0xd7961271	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7b148f5	eth_header
+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 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 0xd8648ba9	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0xd885944c	log_start_commit
+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 0xd8bdff35	inet_select_addr
+EXPORT_SYMBOL vmlinux 0xd8d42c82	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd8e01660	xfrm_state_lookup_byaddr
+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 0xd94322e7	acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0xd94743ef	node_states
+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 0xd9a805be	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0xd9c5b42a	vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0xd9c8f234	kern_path_create
+EXPORT_SYMBOL vmlinux 0xd9d094c7	find_vma
+EXPORT_SYMBOL vmlinux 0xd9ddcc07	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xd9e0f215	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xd9f53796	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xda0a6b0e	acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda50d0f6	sock_init_data
+EXPORT_SYMBOL vmlinux 0xda7ca6cb	fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda7e1420	dev_change_flags
+EXPORT_SYMBOL vmlinux 0xda891d86	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0xda8af7ad	fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa73550	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xdada6561	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0xdae21dd6	kset_register
+EXPORT_SYMBOL vmlinux 0xdaf50b45	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xdb0c08d9	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xdb185e7b	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0xdb19504b	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xdb30d640	tcp_timewait_state_process
+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 0xdb750032	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb9e2c22	posix_acl_create
+EXPORT_SYMBOL vmlinux 0xdba23cec	pci_disable_ido
+EXPORT_SYMBOL vmlinux 0xdbb5ad5c	node_to_cpumask_map
+EXPORT_SYMBOL vmlinux 0xdbb70600	seq_open
+EXPORT_SYMBOL vmlinux 0xdbba4fc5	pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xdbc49da1	dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd238d3	netif_device_detach
+EXPORT_SYMBOL vmlinux 0xdbdc2eb9	search_binary_handler
+EXPORT_SYMBOL vmlinux 0xdbe63366	blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xdbe6d548	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xdbeda929	ether_setup
+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 0xdc707cca	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xdc7d62db	mpage_writepages
+EXPORT_SYMBOL vmlinux 0xdc841dcc	dquot_file_open
+EXPORT_SYMBOL vmlinux 0xdc85132b	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xdc984e14	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xdcaaece7	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdcc1ec32	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xdcdabd83	otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0xdd0357fa	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xdd1a2871	down
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd32b0d8	vfs_statfs
+EXPORT_SYMBOL vmlinux 0xdd3c9d3d	tty_port_put
+EXPORT_SYMBOL vmlinux 0xdd4d9270	netdev_info
+EXPORT_SYMBOL vmlinux 0xdd551ce1	ps2_init
+EXPORT_SYMBOL vmlinux 0xdd5591be	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xdd69a2f3	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xdd8737bd	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0xdd8ea9f5	invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xddbe72b9	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xddd423b0	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xde0bdcff	memset
+EXPORT_SYMBOL vmlinux 0xde16dc16	tboot
+EXPORT_SYMBOL vmlinux 0xde1c6bc0	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0xde22a1df	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xde33495b	key_validate
+EXPORT_SYMBOL vmlinux 0xde3401be	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xde401a79	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0xde4388f1	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xde5cdeca	__seq_open_private
+EXPORT_SYMBOL vmlinux 0xde6151db	tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xde83dbb6	journal_update_format
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xded956d8	dquot_set_dqblk
+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 0xdf1ea26c	lro_receive_frags
+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 0xdf7a547d	mapping_tagged
+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 0xdf9bfafa	sock_create_kern
+EXPORT_SYMBOL vmlinux 0xdfa04919	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0xdfb6682a	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xe0007e5e	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xe011b0df	vfs_getattr
+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 0xe095086d	__set_page_dirty_buffers
+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 0xe0b1bbd6	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0xe0b9f724	serial8250_set_isa_configurator
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2	simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0c1bbc7	tcp_child_process
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe103db9e	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe16103a6	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe168c05c	sg_miter_next
+EXPORT_SYMBOL vmlinux 0xe16f8314	bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe19069a3	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xe1967d29	journal_force_commit
+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 0xe1bc57a9	compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xe1f998a7	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe20c3301	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xe22a8f95	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xe22e3e17	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xe233e6b7	netlink_set_err
+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 0xe2982658	scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0xe29b04e9	acpi_set_firmware_waking_vector64
+EXPORT_SYMBOL vmlinux 0xe2b72e18	jbd2_log_start_commit
+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 0xe305b591	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xe319eb24	acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0xe328d932	idr_remove_all
+EXPORT_SYMBOL vmlinux 0xe34039fe	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0xe356ae29	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xe356c66a	cpu_core_map
+EXPORT_SYMBOL vmlinux 0xe396a9f8	register_con_driver
+EXPORT_SYMBOL vmlinux 0xe3a374ce	bdev_read_only
+EXPORT_SYMBOL vmlinux 0xe3a8239d	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0xe3b1fcf6	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xe3bad218	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xe3bfd946	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3e29c9c	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xe3fbe148	acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe4174d8f	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xe41bb386	compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xe4211ec7	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xe4232c97	inet_bind
+EXPORT_SYMBOL vmlinux 0xe43617f7	acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe448297a	kernel_read
+EXPORT_SYMBOL vmlinux 0xe44f070a	mii_check_media
+EXPORT_SYMBOL vmlinux 0xe4575a90	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xe45f60d8	__wake_up
+EXPORT_SYMBOL vmlinux 0xe4719db3	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe488261f	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0xe4a0d171	module_layout
+EXPORT_SYMBOL vmlinux 0xe4b0a189	tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0xe4b24b8c	__next_cpu
+EXPORT_SYMBOL vmlinux 0xe4d44492	ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xe4eb764d	find_inode_number
+EXPORT_SYMBOL vmlinux 0xe4f1fb50	textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xe5122890	flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe516e6ca	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52947e7	__phys_addr
+EXPORT_SYMBOL vmlinux 0xe52956fc	console_stop
+EXPORT_SYMBOL vmlinux 0xe530d757	acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe5402855	skb_seq_read
+EXPORT_SYMBOL vmlinux 0xe554fe7e	pci_dev_put
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5898e25	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xe594a624	deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xe5992684	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5d52078	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xe5e815d0	blk_start_queue
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe60a3168	prepare_creds
+EXPORT_SYMBOL vmlinux 0xe64b2cc0	agp_backend_release
+EXPORT_SYMBOL vmlinux 0xe656c89e	lock_rename
+EXPORT_SYMBOL vmlinux 0xe665e052	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6a1e63a	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xe6a3c28a	set_pages_x
+EXPORT_SYMBOL vmlinux 0xe6b3fe21	interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xe6b6f8ce	agp_enable
+EXPORT_SYMBOL vmlinux 0xe6bbc1b5	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xe6c95195	agp_put_bridge
+EXPORT_SYMBOL vmlinux 0xe6d55ee1	blk_init_tags
+EXPORT_SYMBOL vmlinux 0xe6f7e0ee	max8998_bulk_read
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe705c220	skb_unlink
+EXPORT_SYMBOL vmlinux 0xe7102b5c	rawv6_mh_filter_unregister
+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 0xe79dea4b	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0xe7a4d763	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7f84f47	skb_dequeue
+EXPORT_SYMBOL vmlinux 0xe7fcbfd0	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8116e08	__kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe83776f3	pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xe84d8052	__f_setown
+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 0xe87933b3	lock_fb_info
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe883344d	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8c13605	i2c_transfer
+EXPORT_SYMBOL vmlinux 0xe8dd0e84	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe901204d	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe926c499	dm_put_device
+EXPORT_SYMBOL vmlinux 0xe930803e	noop_llseek
+EXPORT_SYMBOL vmlinux 0xe9369b1f	alloc_trdev
+EXPORT_SYMBOL vmlinux 0xe95361f7	mount_subtree
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe960bc53	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xe997667b	wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9980380	devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xe999e4e9	km_policy_expired
+EXPORT_SYMBOL vmlinux 0xe9a6219e	uart_get_divisor
+EXPORT_SYMBOL vmlinux 0xe9e7f7bd	textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xe9fad26e	bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xea054b22	nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a	int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a	__bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea11ac90	generic_make_request
+EXPORT_SYMBOL vmlinux 0xea19bfa0	fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0xea1ea99e	kick_iocb
+EXPORT_SYMBOL vmlinux 0xea293405	load_nls
+EXPORT_SYMBOL vmlinux 0xea3a8781	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xea5fe4b5	set_pages_nx
+EXPORT_SYMBOL vmlinux 0xea718ffe	genl_register_ops
+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 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 0xeb1cb9c4	path_get
+EXPORT_SYMBOL vmlinux 0xeb29bd5b	journal_start_commit
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb6ced36	skb_put
+EXPORT_SYMBOL vmlinux 0xeb7d7618	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xeb7f9cc7	eth_header_parse
+EXPORT_SYMBOL vmlinux 0xeb8cfd49	mmc_can_sanitize
+EXPORT_SYMBOL vmlinux 0xeb950e66	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xeba677bd	posix_acl_chmod
+EXPORT_SYMBOL vmlinux 0xeba7a770	pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xebb0b5ae	netif_napi_add
+EXPORT_SYMBOL vmlinux 0xebbbca9e	udp_seq_open
+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 0xec13c6c8	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xec15f00a	tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec21e3a9	pci_release_regions
+EXPORT_SYMBOL vmlinux 0xec27c4d1	kstrtoull_from_user
+EXPORT_SYMBOL vmlinux 0xec2a0f77	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xec2fdfea	pnp_possible_config
+EXPORT_SYMBOL vmlinux 0xec36ed13	bio_copy_user
+EXPORT_SYMBOL vmlinux 0xec458f3b	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xec4e50df	free_user_ns
+EXPORT_SYMBOL vmlinux 0xec54607b	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0xec6304a4	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xec6ef3c5	bh_submit_read
+EXPORT_SYMBOL vmlinux 0xec6fd890	current_task
+EXPORT_SYMBOL vmlinux 0xeca6f288	tcp_v4_md5_do_add
+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 0xed4034d5	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xed4b900e	vfs_fstatat
+EXPORT_SYMBOL vmlinux 0xed649eb2	phy_find_first
+EXPORT_SYMBOL vmlinux 0xed668c4b	__tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0xed66d722	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0xed694bc0	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0xed6aac71	pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0xed6de1a7	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xed7573d7	ll_rw_block
+EXPORT_SYMBOL vmlinux 0xed9609fc	padata_stop
+EXPORT_SYMBOL vmlinux 0xed99e5b2	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xeda0d76e	gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e	nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953	iounmap
+EXPORT_SYMBOL vmlinux 0xedc1972f	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xedd81b24	bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xedf23446	sk_wait_data
+EXPORT_SYMBOL vmlinux 0xee00ed19	jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xee051bc8	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0xee15575a	phy_driver_register
+EXPORT_SYMBOL vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee4b945f	blk_get_queue
+EXPORT_SYMBOL vmlinux 0xee4d42b1	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee9b5f58	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xeea9dbaf	bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeecd750b	blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xeed86700	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xeee17b90	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xeeefa670	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xeeefe80e	vmtruncate
+EXPORT_SYMBOL vmlinux 0xeef35c65	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xef0a26fe	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xef1ef353	dm_get_device
+EXPORT_SYMBOL vmlinux 0xef45d32c	__kfifo_init
+EXPORT_SYMBOL vmlinux 0xef6acf45	scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xef71b920	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xef82aad1	tcp_hashinfo
+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 0xefeb1d4b	ip_defrag
+EXPORT_SYMBOL vmlinux 0xeff5371e	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xeff688f5	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xeffeeb18	__free_pages
+EXPORT_SYMBOL vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL vmlinux 0xf0040079	rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xf007f95e	keyring_clear
+EXPORT_SYMBOL vmlinux 0xf00b2284	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0xf00e6a95	mdiobus_register
+EXPORT_SYMBOL vmlinux 0xf015b2f4	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xf016b4b2	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xf0491f4d	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xf0587bee	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0xf05cf7ec	dentry_open
+EXPORT_SYMBOL vmlinux 0xf0607d19	set_security_override
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf0960486	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xf0acde07	find_or_create_page
+EXPORT_SYMBOL vmlinux 0xf0c015f7	ip_mc_inc_group
+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 0xf11f1e94	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xf1216c75	prandom32
+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 0xf1888e2d	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1973a3c	seq_putc
+EXPORT_SYMBOL vmlinux 0xf19d5349	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xf1b30728	tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xf1bba4d4	agp_free_memory
+EXPORT_SYMBOL vmlinux 0xf1bea6f1	schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xf1bff6a0	mntput
+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 0xf202fe57	journal_wipe
+EXPORT_SYMBOL vmlinux 0xf2030e60	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xf20bc781	set_user_nice
+EXPORT_SYMBOL vmlinux 0xf20d0a5f	pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xf20dabd8	free_irq
+EXPORT_SYMBOL vmlinux 0xf21797b6	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xf2235827	datagram_poll
+EXPORT_SYMBOL vmlinux 0xf230385a	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xf23790ae	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xf23cb434	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf24bbb80	skb_queue_purge
+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 0xf2bd823d	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xf2c4ea15	bioset_free
+EXPORT_SYMBOL vmlinux 0xf2c6b00e	pci_set_mwi
+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 0xf337230f	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xf338d4c3	netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33c6bb8	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf348a649	security_path_link
+EXPORT_SYMBOL vmlinux 0xf37260ab	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xf376c32e	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xf3788293	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xf378d0c7	d_lookup
+EXPORT_SYMBOL vmlinux 0xf389fe60	__hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38f682c	phy_disconnect
+EXPORT_SYMBOL vmlinux 0xf3916987	global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf396cd21	tcp_parse_md5sig_option
+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 0xf3cf0cdf	kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xf3fe09df	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xf425fdce	pci_request_region
+EXPORT_SYMBOL vmlinux 0xf42ddc05	uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4528073	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf4751daf	tcf_action_dump_1
+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 0xf4bcc5f4	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0xf4dd1ea8	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f19e51	downgrade_write
+EXPORT_SYMBOL vmlinux 0xf4f1d73f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xf51ae235	touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf5201513	sync_inode_metadata
+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 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 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf61f5bfa	devm_free_irq
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf651b65d	register_8022_client
+EXPORT_SYMBOL vmlinux 0xf684b61f	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xf68be2f7	tty_vhangup
+EXPORT_SYMBOL vmlinux 0xf6b733c3	kobject_set_name
+EXPORT_SYMBOL vmlinux 0xf6b9863d	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+EXPORT_SYMBOL vmlinux 0xf6d485dd	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0xf6d7c640	__pagevec_release
+EXPORT_SYMBOL vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf74622d2	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf75f62c4	noop_qdisc
+EXPORT_SYMBOL vmlinux 0xf77e6ace	md_unregister_thread
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7962f54	posix_test_lock
+EXPORT_SYMBOL vmlinux 0xf796d781	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xf797509b	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xf7a923aa	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0xf7b807ca	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xf7d71918	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0xf7e37635	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0xf7fb243c	idr_for_each
+EXPORT_SYMBOL vmlinux 0xf7fe5e15	inet_csk_init_xmit_timers
+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 0xf84bedc2	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xf850af42	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xf88e0ee2	acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf89843f9	schedule_work
+EXPORT_SYMBOL vmlinux 0xf8b35b57	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xf8e83b2c	i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xf8eb6958	acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0xf901de0d	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0xf90a15a7	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xf9335f83	dev_warn
+EXPORT_SYMBOL vmlinux 0xf97456ea	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xf97fd9b8	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xf98df707	elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xf996e892	dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9c1e650	aio_put_req
+EXPORT_SYMBOL vmlinux 0xfa04bedd	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xfa30957c	mempool_free
+EXPORT_SYMBOL vmlinux 0xfa61271a	simple_unlink
+EXPORT_SYMBOL vmlinux 0xfa67a0a9	scsi_init_io
+EXPORT_SYMBOL vmlinux 0xfa8e9daa	pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0xfaadff16	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xfabb0df6	nf_register_hook
+EXPORT_SYMBOL vmlinux 0xfad4cbcf	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0xfada9e1e	dquot_drop
+EXPORT_SYMBOL vmlinux 0xfadd69c8	xfrm_input
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb	acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb1243f5	tcp_poll
+EXPORT_SYMBOL vmlinux 0xfb1a99e7	tcp_v4_md5_do_del
+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 0xfbc26477	sg_miter_start
+EXPORT_SYMBOL vmlinux 0xfbe27a1c	rb_first
+EXPORT_SYMBOL vmlinux 0xfbf036b3	pid_task
+EXPORT_SYMBOL vmlinux 0xfc02b7ad	sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc10f4db	pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xfc39e32f	ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc7e81c8	dm_kcopyd_zero
+EXPORT_SYMBOL vmlinux 0xfc872fd1	get_ibs_caps
+EXPORT_SYMBOL vmlinux 0xfc8b547e	swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0xfc8d2537	input_flush_device
+EXPORT_SYMBOL vmlinux 0xfc9eb7fa	mnt_unpin
+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 0xfcc26e7b	vfs_create
+EXPORT_SYMBOL vmlinux 0xfcc2a43c	utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd35070	blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xfce77637	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd028cd2	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xfd0b5706	i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xfd185216	__pci_register_driver
+EXPORT_SYMBOL vmlinux 0xfd2d1e1d	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xfd3153b5	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xfd4d2979	bdevname
+EXPORT_SYMBOL vmlinux 0xfd4ee10d	dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xfd5d7d10	sock_no_shutdown
+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 0xfd78d9e9	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xfd7d7713	acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd845a39	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xfd9ad207	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xfda0dbe8	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfdae9c88	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0xfdb1e5b0	dev_set_group
+EXPORT_SYMBOL vmlinux 0xfdb2d408	no_llseek
+EXPORT_SYMBOL vmlinux 0xfdb9b629	ioread32be
+EXPORT_SYMBOL vmlinux 0xfdd01745	napi_complete
+EXPORT_SYMBOL vmlinux 0xfddd9fc9	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xfde19397	blk_get_request
+EXPORT_SYMBOL vmlinux 0xfde2cd2f	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xfdec39ee	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xfdee7d42	_raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xfdf33486	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0xfdf51928	udp_lib_setsockopt
+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 0xfe4ac3be	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xfe504785	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287	nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe83841e	pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xfe8696dd	do_splice_from
+EXPORT_SYMBOL vmlinux 0xfe8dc54a	do_splice_direct
+EXPORT_SYMBOL vmlinux 0xfe9bea8a	md_register_thread
+EXPORT_SYMBOL vmlinux 0xfea113dd	block_commit_write
+EXPORT_SYMBOL vmlinux 0xfea5f5fa	security_file_mmap
+EXPORT_SYMBOL vmlinux 0xfea5f959	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xfeb912f8	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xfec3c2f2	bcd2bin
+EXPORT_SYMBOL vmlinux 0xfecb7ed6	generic_permission
+EXPORT_SYMBOL vmlinux 0xfed778c1	get_disk
+EXPORT_SYMBOL vmlinux 0xfed9ec8d	compat_ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0xfedb886b	jbd2_journal_begin_ordered_truncate
+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 0xff4e9fbc	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4	ioport_resource
+EXPORT_SYMBOL vmlinux 0xff874eba	check_disk_change
+EXPORT_SYMBOL vmlinux 0xff9ab177	netdev_features_change
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffafb06c	eth_type_trans
+EXPORT_SYMBOL vmlinux 0xffcde95a	generic_pipe_buf_map
+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 0x01ebd509	kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x02fe9a12	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06be9a62	kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x097f2fb3	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ccf18ce	kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ff23c63	kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1756973e	kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b35e21b	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c65424d	kvm_mmu_unload
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c68f560	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1	kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1db109f1	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1fd668e5	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2265f2af	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22a96524	kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x23047626	kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576	kvm_exit
+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 0x2d97c7ca	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x316c83d3	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31f0ba20	kvm_set_xcr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33c9d9de	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36c6abb0	__tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x376adce5	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3983f4ab	kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a9463a4	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c117623	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x40b9977e	kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x464c21ab	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x46a4edbc	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4899c9ac	kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4969e54f	__tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ec459f9	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x501fd17a	kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552c775f	kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56ef860c	kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5940f4d0	kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fce2170	kvm_write_tsc
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62eb08a4	kvm_cpu_has_interrupt
+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 0x6910c453	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a451d2c	kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c4aad7a	kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07	is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70499cdd	gfn_to_pfn_async
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb	kvm_spurious_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x73ba724a	handle_mmio_page_fault_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a	is_fault_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76b94602	load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a8010e2	kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803	kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c64f261	kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5	is_noslot_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81052e24	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82152c98	kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da	kvm_max_guest_tsc_khz
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x83cd738d	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x864036fe	kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86cd2a26	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8811d84f	kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bf00e38	kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab	kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d3e324c	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274	kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e02b8ed	fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e065831	kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ff80154	kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x910d8e46	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93f78ebe	kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9435a7e5	kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a58ec98	is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9afeef82	kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa106c7	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6742848	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7d51de8	kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa89b0318	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8b07188	kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be	is_invalid_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1860ada	kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435	kvm_mmu_set_mmio_spte_mask
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbbff0f34	kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc1e9361	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b937d	is_hwpoison_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc17b0d72	kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc26d27c4	kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc32e5bcd	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc33d62d	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcdd280cb	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf2b2070	__tracepoint_kvm_invlpga
+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 0xd220bd97	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9	kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd319a225	gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd325217e	gfn_to_memslot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd3e6a268	hva_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd69a37ed	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xddfb1360	kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1bec0e6	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1f13aac	kvm_write_guest_virt_system
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe29a8def	kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5616281	gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8c66b37	kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8c6c79c	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecb1a389	kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xedc6beef	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0615bad	kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0d17360	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf611fab8	gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf69eb80e	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf901d264	kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa3c466c	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa3fb4d3	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfbf46220	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc5a910d	x86_emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfce078bf	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL crypto/af_alg 0x12f70303	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x4781dbd8	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0x4807d7d8	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x4a3cfeef	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x4cd79217	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0x63aba7d7	af_alg_cmsg_send
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7d3d278c	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0xf69a09eb	af_alg_unregister_type
+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 0x03fd0bf9	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x0a18e9f2	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x0aaf00e2	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x1113fdda	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x286fe2f8	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x55a7d5e2	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x70c58eb8	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xd2bf43f6	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe5c662f2	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xfb2f60f5	cryptd_alloc_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 0x24bfaf71	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x315d9575	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x438d15d0	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x49fbca1d	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x553ded46	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x98463b4e	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc54dd0d5	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xee366627	btmrvl_enable_ps
+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 0x0d200dbc	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1acab528	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1adaf96b	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1fc4eb43	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2e7b8268	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2ece560a	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5941e185	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6c9f4b90	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6df37fcb	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71d5efc5	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7ead3dde	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x972f4bef	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9808d31f	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9cda7cb4	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8288f79	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc92164f6	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd21d18e0	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd47d93e6	gigaset_skb_sent
+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 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 0x7c18e279	dm_region_hash_create
+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 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 0xeca1f135	dm_rh_dirty_log
+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 0xd9d0aeb7	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x3a88b856	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x7bdbea2d	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x05006721	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x08376b00	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x10edda83	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x373ee7ab	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x45dcb67e	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4bc33996	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x59bcd953	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x95072b69	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9637742d	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xac3fdaf6	mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb73dc5ab	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbc8a4375	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbe403a33	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc59bc42a	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd74fd6af	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf10a0b86	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfdb468a5	mantis_dma_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 0x0f234113	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x11ae63a3	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3b1b96e3	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 0x8273ff94	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa4753364	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 0x636e2e9f	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe3a291ea	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 0x35c1b72f	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x45e03023	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x69afd96b	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x99f32ba0	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x03e3bf1e	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1bdf1a13	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x36802db9	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3bdb16fc	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x42315cbd	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6995b0c1	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x92b54775	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa238a140	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xafdc1b08	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd2571dd9	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdbcd8fa1	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe1b648d3	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x302d3b49	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x39eb56e5	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4d869764	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x85e4b06a	alloc_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 0x0b9d2c70	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x251dd580	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6e4a4e55	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcc18feee	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe445101e	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0x18f10765	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3169684a	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x6c8c4f1a	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7acaa1f0	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfe233f9e	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0c21f8a1	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3300aa58	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3dd6cd4b	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x48a8ddcf	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x86999e05	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8db21e7a	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00286027	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00749831	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03a3c72b	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x12850569	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1688fdd7	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1b576c0f	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x229d5180	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2331d417	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x24fce1fc	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x27d5fb88	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c3ea0d6	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x31888503	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4476f2e8	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4d79c1f9	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x66a2812c	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x781d316d	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x921dcd0e	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb0b7a4f8	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbcca65b2	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe9d66d09	usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf40ca51d	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4537f4a	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf9bcba6c	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcf89195	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x12618aa5	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1bf8b7c6	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x254739f0	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x33142605	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x424be09c	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x491c359d	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4aeb0da3	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x70025c63	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9272c4bf	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x93f20365	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9aa84c22	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa7c73ba4	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xae86dea0	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbe8ba1b7	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc0209faa	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfbcfc7a5	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19	libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x3895298e	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x198a9f08	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x7e157739	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd85ec598	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xeae3a45f	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0eb41169	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2ea75cc1	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x34a5c79c	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x539abb34	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5cced9cf	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f62cb2e	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f8474dc	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x62158d01	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x65be282d	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x77a2a19b	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x79a11e8e	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8dd58f9f	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa59e29a1	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd5d1ccf2	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe1c7127e	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c85e12b	lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x211ece1c	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x59d4b028	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8e26e606	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb1536e7b	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 0xf1f7a8e1	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf6d659b6	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfa3612a4	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1f2a4a89	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xb02c51f7	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1c5da1ce	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5752af45	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x683e1689	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8dc989d2	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9fb49aa4	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbca6b41a	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xccaad77d	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd67cef38	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xddac7cb3	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdff3226c	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfb59ce28	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1a4b20f5	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x20b8779c	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2aee3a89	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3cf805a4	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x78813c59	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7d990c90	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91fda1e2	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xba3da707	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd995b670	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x02db766f	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x05478437	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x07786e03	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a93533a	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1fa20ff4	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x203819b6	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26382316	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34923de8	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3b4eae77	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3b78436c	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4046fe27	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x441cd353	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5413bd42	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x627a53f3	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65b37786	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6689a865	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b3fb5a2	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c7a907e	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77bf8850	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8133b4a0	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x83d3c00d	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x899b5a0e	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9367950e	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa6a9137e	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa9ac1830	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5e3acee	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc819ad7d	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc82739b8	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9a61a92	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd19fa958	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdee0fc31	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe660c46b	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe77b2e44	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf5feaa6b	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe4b8f89	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfeeaf41d	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff446dc6	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05aaa6ff	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0bbc53ea	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d36d07e	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d477665	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fae7c5c	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21359a80	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x25e93861	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2991e5ed	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x317223ee	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32a13239	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39df086f	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3ca8a515	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4053fcd5	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4556830a	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48ef4aea	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4de55cbd	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x594ab4aa	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5f7b3e14	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5fb1bfc2	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x614842ca	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63fd224f	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64a282f6	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6730832e	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7128d183	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8819b2bf	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b161409	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8ccab703	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98c4fecb	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a4bbda7	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa10449da	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb7057601	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6826e2a	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc8eba4f5	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc96ac4ba	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcbbfc173	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3bc4066	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd8c31cc3	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xda795eb2	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdfb9294b	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe327abae	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5252dcb	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe74d7ad2	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeaa74d6d	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec4434b7	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf0badb52	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf18054cc	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x06ddd634	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x19829c06	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x56527e59	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x72b22444	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8ec567a7	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbd958551	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd06a1872	rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe8979b98	rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfd81d24a	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0d11de82	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x149d62c3	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x28d169c2	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x294d7faa	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3a04f32e	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x44ddf46b	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4a47e3e8	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x806eb44d	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ac4a5f4	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x960a4086	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9dfdb017	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc3af5362	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca98effc	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe1b0fd93	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfa66d3b3	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffaba0ec	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x265734b1	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x76a40c29	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x897af1e0	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x23defad5	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x2ff35f01	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x37d9252c	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x66f9c53e	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x7c52f098	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x84c09d95	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf718dd3e	wl1271_free_hw
+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 0x015fac3d	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x06822e01	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x24d26f3d	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x259f4cd1	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2c3fffdd	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x42133e74	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x42aa650f	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x46280456	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48e9bbcd	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4971e66c	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4ab860b3	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4d248c5a	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5086ccb0	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x572bbbaa	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5a995d91	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d7f9e81	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d92365d	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x64b14cde	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79626e51	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7aa07f5d	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e4ca9c4	cxgbi_sock_rcv_peer_close
+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 0x8418b731	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x858cff7b	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x86b7a9fa	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x89f9c3e9	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b0e05b4	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b32ba24	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb74ab341	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbebf2cb9	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfb122c4	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc09c2c16	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc33870ec	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8f1e26e	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb6dc18c	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xce9a7d28	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xceb8ac19	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2605a3e	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2d500b0	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd9d6738f	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3c31839	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7653586	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf0df4a01	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf76063d4	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfe914ec7	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x231d0cec	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3cbc12a2	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x53cd3efc	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5982fc7a	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x59aa7837	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6e37d934	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x796cd1de	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc6380410	fcoe_get_wwn
+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 0x0b4fd7eb	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0fa1ed54	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10e2fdcb	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3320ce47	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33bbd17e	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3733984b	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f9b2ec8	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41e91fa3	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ae8be98	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bc0915e	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58b80e5e	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bdb7c1f	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f6e700c	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x616588f8	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x635e579b	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68520254	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a21bf4a	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b304176	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x74662c9b	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7a0566cf	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x806939a6	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80878125	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84b47ec9	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x852c8394	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8533c35e	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x864fc405	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x874698a0	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87f93d23	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x88f5af52	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92158b89	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa0977ce1	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa0a5429e	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1dfca40	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6477948	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf153566	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc798e35a	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcccc0481	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd091f713	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4a786df	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd823232b	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd4acf10	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf784469	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1ce80d4	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0f277ffc	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0f59c1c6	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19f5fdb2	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1a9240ef	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1e4c8530	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1fe41a71	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2fb661b9	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c2d924b	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ce2c6d0	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6ae5a164	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c202943	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb6e42111	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb923efc2	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6d91b1e	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeb2f8415	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee842678	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 0x036c31c6	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f3ac9e0	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x260b297f	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x39b2fe2c	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x47d4edf9	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a60ee80	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4c4254ea	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x54f60b67	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5fd31d4c	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6719f131	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6e351af4	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x801572da	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x828d26fd	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8374c088	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f3d9933	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9cb874a4	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f88a93c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb117249c	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb13e3bee	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8e45ab3	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc358f54	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xce543dda	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1b00444	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7cef604	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8a422fb	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe9b2a9ba	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1a91b54	iscsi_block_session
+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 0x1bc2fe47	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 0x6ce54cdb	sockfd_to_socket
+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 0x8664f70b	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8c13185b	usbip_pack_pdu
+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 0x9cddf2a8	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xab104bf3	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xaf54efe0	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xce0511a1	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 0xe659f85c	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf587cb37	usbip_xmit
+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 0x4d17300e	usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xfb200a9f	usbatm_usb_probe
+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 0x10610df2	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26c1abea	ezusb_set_reset
+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 0x44199dca	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x48aad44b	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5099874f	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x52cee9db	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5d4c4914	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x73c15a6f	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x794e60b1	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x83147d8a	usb_serial_generic_write
+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 0x9d9df2c5	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa546fe29	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa879905a	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbf917bf4	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd5bbe64d	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd6d84b50	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe59fed48	usb_serial_disconnect
+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 0x12b2f33b	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x41cf2f5f	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 0x96877ac4	locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b	lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbe1732aa	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc0b396f6	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc14d4b31	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29dc731e	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2caaad30	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x425b02fd	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4827b13f	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49d54d08	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5cd1a158	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x698cde0c	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6fe94b96	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97863e89	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e0360a2	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa20a3ee0	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbdcfdcf9	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce0b95d2	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2908381	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2e7665d	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+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 0x090c4ab3	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0fda4e5d	o2nm_node_put
+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 0x2ec8cc8b	o2nm_get_node_by_ip
+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 0x81a17396	mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9374faab	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 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 0xee9e96c4	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017	mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf7ac10d5	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfac2c8ab	o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x09af6e01	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x10b6ab7d	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3bc5b0c5	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x53301309	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x668b1fed	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81083f09	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 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 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 0x1024f6a7	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x20537c67	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x440c27f6	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x4b2691d3	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x7c761534	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xc5eb50f8	garp_request_join
+EXPORT_SYMBOL_GPL net/802/stp 0x1dd175f9	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0x9326c832	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x27208233	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x3290b09d	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 0x29943611	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 0xd3be55ae	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0271ed92	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x065e385c	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x06b3c6f0	compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x07305cb8	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0fb2b7dd	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x18519b65	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a043b70	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2ccc8976	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x33ee548b	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x36637b96	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3aadd7ea	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x467a388c	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d	dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4dadb9d8	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231	dccp_ackvec_parsed_add
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x606c09e7	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x62d78543	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x63791123	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7498cb4c	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x75986a83	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x776df53a	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8553d8c3	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86d60508	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b4ca7a1	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa31a78c7	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3efd4e6	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4286e95	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6a9e21f	compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa93449bb	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2bf6d6f	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbefa10b2	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2dde0cf	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcca8507a	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd50efaff	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd8d4fdf	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xde4e9ebf	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2514c9a	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc0f5bed	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3ef5b1a8	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7214a9a1	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x78781268	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x808171d3	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xadb7527d	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbab20138	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6f62b294	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x93f07e83	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x720efb28	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0xca23ec62	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x55fd8bba	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf2925bd8	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x850c3c14	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x266ac645	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x2eeca3eb	nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921	need_ipv4_conntrack
+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 0x0e16ed10	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0fc1802d	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 0x9e9586e1	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcc12cb9d	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf8bb3beb	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfa1e24ec	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 0x3bde8c3f	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3e471ff1	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6dba06b9	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc27a8959	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xefcaa337	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd3293a66	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 0x12f909ee	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x23621106	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5d832fd1	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6bd61ad7	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6e4efc74	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9e368d63	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa5cdc35c	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa863423d	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc69a2342	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcaed77cf	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd991a418	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfea370a2	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21aeeb47	ieee80211_gtk_rekey_notify
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x31b00fa9	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x46f0712d	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa0964c0d	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb03e0e45	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcef45b1c	ieee80211_request_smps
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xdcbaddd7	ieee80211_iterate_active_interfaces_atomic
+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 0x18a4c061	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 0x3d97843a	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5591baae	ip_set_type_register
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de	ip_set_hostmask_map
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x79d5df98	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1	ip_set_netmask_map
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8485b628	ip_set_del
+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 0xac45c76e	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb48cddee	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb8f7e5ed	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc5f9b62f	ip_set_put_byindex
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdce0e205	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 0x29ffda34	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x67d0f70c	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xaad8c69e	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe0aae2de	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04a1b2e9	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05664a86	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e0d97a5	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x114fa929	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e7988a6	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x258b8a48	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f6aa93c	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x368934fd	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x369e0493	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3905b68b	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x397e7134	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b37df6c	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c3bf527	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cc51705	nf_conntrack_flush_report
+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 0x57cc248c	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x590249fe	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ea23ad3	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65fa460e	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x696f2315	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fc95d1e	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7007bf6b	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710	nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79eebd8e	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4	nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ce8e2a2	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ebd8a5c	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x809e0557	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x822e123d	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x832b5860	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x835d1d2b	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85e16f3b	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b3914f0	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f3cc87f	nf_ct_expect_init
+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 0x948dc466	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94db2eaa	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x970e6976	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9d94af83	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa02aa58f	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95	nf_ct_untracked_status_or
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac49ab1c	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xacf09ab6	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027	nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae13a3d9	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafec5cf9	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1f8d0ae	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5a4eddd	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc03eccf	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1bf1e3d	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5b3a4e3	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xccc64784	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6f953d2	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7f68c9f	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9bd55b0	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0524150	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2708b3c	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3c859cd	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4e09021	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5f52c7b	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec731960	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeca601f4	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeedad9c3	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbadcfd4	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xe5a01dc0	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x9cecb9c4	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x04257ed0	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x210e46c4	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x34855bcf	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x468c3ce8	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5ac85882	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fec86cb	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6b076fb2	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7125ed8c	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9f865df2	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc2cd80a4	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda919e49	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x443ee510	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5da5a53f	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x86f87c83	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8930fec8	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb13e2da	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5d798791	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd9a25cb1	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1fc07d08	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2b205dfb	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x66933332	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e2ddc69	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9d40f96f	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaaadc244	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbd43e46d	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd954d23e	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe3f967b9	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xec06ee91	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf6d65cf7	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb64ba39	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfd1457f3	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x134459ec	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x61b0258a	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x1606cff4	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x08914dc4	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x09396faf	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0ecee3a3	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x33ac59a0	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc15dc707	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe7a7e23e	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x276231a0	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x131f26d4	xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417	xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18f7b2d2	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1d1fcdcb	xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2650c715	xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x301d3914	xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a095a04	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7	xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x60c45bac	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69	xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78fef640	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x800966a3	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94c6dc8b	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9e3d3da3	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa248ad01	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa4401430	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb2ba1bb0	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8645d16	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbc43cac3	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf3eaa0d	xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdb1a6132	xt_register_table
+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/x_tables 0xef523f93	xt_compat_target_to_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 0x09342e85	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x16c11fec	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x1b5843de	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x21512931	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x2214eba7	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x27bc4a5b	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x288ad497	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x2ab35108	rds_message_unmapped
+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 0x31c3f461	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x3549b04b	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x3888175e	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x3e38e128	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x544b151c	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x7c140a86	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x823bada3	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x84286693	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x90875016	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xa60d2446	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0xb61ef987	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xb76da10a	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xb7aef699	rds_info_deregister_func
+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 0xcc8c1107	rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0xda512158	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0984e894	rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x62407b8a	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 0x3121ae28	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x81714ac3	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8862844e	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x933358c8	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbeca1a9f	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcc4771a3	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcc77bf53	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xce533ee0	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe41ea77c	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xecb30673	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfbf7869a	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xff9c1164	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0053ed6d	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01edfac5	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x024a51d3	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06338aa2	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+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 0x0bb89a3a	rpcauth_lookup_credcache
+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 0x0ed260c3	svc_find_xprt
+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 0x1239ca0d	rpc_call_async
+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 0x144e59ca	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1475dd50	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16841100	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x182260b3	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20076ed6	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x248cc7a8	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x253167f7	xprt_reserve_xprt_cong
+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 0x2a75527b	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9	xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x316d93f4	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x333993e8	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3401c0d4	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3419119c	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e08e3c	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ab4ebb6	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c3e3bbf	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cafcb71	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d10450b	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d69d88f	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dbda4ed	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42cfe59a	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43f05631	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x470c87b8	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x475e416a	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x499ab216	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a9d5c21	svc_close_xprt
+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 0x4d4e4624	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ef2ae25	svc_create
+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 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x568c2176	svc_xprt_names
+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 0x5d358c0c	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5da5da3a	rpc_queue_upcall
+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 0x60912c0d	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63e4fbe9	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64d852dd	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66034b63	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x668bd37f	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67508cae	cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c47e2b	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ab829dc	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6acb05c0	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c0a68f1	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e1e1514	svc_prepare_thread
+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 0x6f3267ba	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70b11da9	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72484596	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x741b205d	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74d93cd1	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75e1bd01	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7866d4a9	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79ae2c52	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ef7aa96	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f36f910	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8227025d	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x844e77d8	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84e2216a	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84ebe5ec	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x877c7921	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x897700c9	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a67cce2	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b8d0076	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb7d16b	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e04aca5	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9040d808	svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91fd760d	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92193781	xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9345c8a3	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a	rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x977cc7df	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99e79712	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b1f0dbf	xprt_disconnect_done
+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 0xa0447eaf	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa13dcdb2	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5be5978	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7632e2b	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9cc5692	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab102dab	xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadb7562d	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae254a6d	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb243aff7	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb29c7cfa	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3118e17	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8da1efb	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb51bd4e	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe1f0ca	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd91088c	xdr_decode_array2
+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 0xc1d8423b	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6e59eef	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7cedb8e	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9d4f1f4	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2f2059	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb7e0015	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc7e7e95	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce759cd4	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcffaba13	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1ffabf3	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2471032	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd29fe629	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd518052b	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5a8a8bb	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd706677b	cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd769eb64	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a145ff	xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd68af42	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9c6a57	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe14f5f64	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1582bcd	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e74eed	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe54a7b71	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5a0b8ea	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8bb2e6a	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9959ae5	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea935e1d	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xead18764	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3dcafe	rpc_alloc_iostats
+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 0xeef8372a	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef9945c0	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1e4693d	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3f3dbb4	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5fcdbf6	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf86fe177	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf94f0e5b	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbc20eaa	xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc161341	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff5540d7	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x018f0cc1	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1e46e38c	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x23b2a2a9	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2826deb5	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4f1cf820	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5ec52d74	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x99676127	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x9d98a8fe	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x9e59559a	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xcd28bb06	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xd4a085db	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xda931e9d	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xdd42fb82	wimax_state_get
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1a3c4dc6	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5bf1a7bd	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6381f927	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dd08146	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa84bbe8a	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaeca434b	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbde519ac	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd0f1ad40	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe061a2f4	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe46e1f23	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xec04d19a	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0a930db7	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0e586392	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x328a2912	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd000e8d7	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 0x00c386d2	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0129076b	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01398a44	snd_hda_multi_out_analog_open
+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 0x087c37ea	snd_hda_jack_tbl_get_from_tag
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09a8af50	snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a13e3e1	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a4983c3	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bd706a4	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10b60ae1	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12ae1555	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12eb089d	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x148f09e3	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x152cf92d	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1549083d	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2364a21a	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2aaf13e7	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cb4ef54	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30d429ed	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32238d0f	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35294836	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3570d6c3	snd_hda_jack_tbl_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35925d3f	snd_hda_query_pin_caps
+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 0x3f83e198	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4357e785	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x463aa6fd	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47e61fd5	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x489da0c4	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49d9a1d8	snd_hda_codec_amp_read
+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 0x4c59793e	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ccaf4d3	snd_hda_create_spdif_out_ctls
+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 0x57ec8f7a	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ce7eb26	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63be6250	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68973809	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x693120c2	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d3046ab	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x728c416f	query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a18ed8b	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8033a863	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80b92658	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81587916	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81b2bf5a	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82cc5a1f	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8404dc51	snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84be578d	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87ff0753	snd_hda_mixer_bind_switch_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 0x912b6ea4	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x923adbd5	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95434186	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95fa0d2e	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x988b73e5	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b7d23a8	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cf3ebdf	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f41c7e1	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0008de1	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1b06688	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3750936	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3885cac	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3b3263a	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa60e2c59	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacd793fd	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1006dfc	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1227da2	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb27a40f2	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb49f04f5	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4a96b8a	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb78865c3	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7b9bfcb	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf2bf937	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0c86201	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc43c22bb	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc49550da	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4b0fa3b	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5ade4cf	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69	snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6540d74	snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8ce1fc6	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e	snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd953333	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4077963	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb2029ed	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd2a7a9c	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdec7cdea	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdef17f0f	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf044f03	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfbc16b7	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3bf087e	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6f41ffd	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe758c50e	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7b94e96	snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8393979	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9165518	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefb4ea30	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf205ab56	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3b4485b	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3f5b5b3	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf56db6fb	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf93b4e45	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9d1aa90	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa1c3502	snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcf956ae	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdc198cd	snd_hda_suspend
+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 0x02aecdb5	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x041824dc	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x054a87e6	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06b43846	snd_soc_codec_set_pll
+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 0x134935d8	snd_soc_register_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13eca3a6	snd_soc_jack_add_zones
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17485fde	snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ccacc60	snd_soc_default_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f2efd09	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 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 0x2868fac5	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2de639ce	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x339f07e8	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37486803	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38be8240	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3dd1f923	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e9ac74b	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45916f27	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x482cd245	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a432e56	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c3368ef	snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c8c2ee8	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e714c7a	snd_soc_codec_writable_register
+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 0x5eb56026	snd_soc_cache_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6245e69e	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65177cb3	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x682fdc56	snd_soc_resume
+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 0x6eeaa692	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74376f42	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e5d50a2	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ea6fee2	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ee2ded5	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f12d6df	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80e2305a	snd_soc_platform_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83926331	snd_soc_get_volsw_s8
+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 0x872dd477	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a6260fb	snd_soc_unregister_codec
+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 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 0x99a55fea	snd_soc_free_ac97_codec
+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 0x9e29363e	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0d69655	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa611f40c	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6fc8e83	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa951a288	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaaec4c1a	snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae65a08f	snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb079e1ca	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb16eed39	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb424cd66	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8830fe2	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9161421	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc208a22	snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe1cd312	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc08b1990	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc27f4be9	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc41ca44a	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc48b7550	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4c918ff	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc57eac46	snd_soc_poweroff
+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 0xcc9ca620	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcebbc184	snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcfa61870	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5a525fe	snd_soc_default_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6649d65	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd879af2a	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8acc92b	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1eacdca	dapm_mark_dirty
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2464cd5	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2f5e491	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe347695f	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb35196c	snd_soc_dai_set_pll
+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 0xf081d044	snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2cd15a1	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3fab222	snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5e9a616	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf887be6d	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb5ceb01	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe57a9b8	snd_soc_register_codec
+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 0x009845ec	regmap_exit
+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 0x0108553a	dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x011cf028	regulator_suspend_finish
+EXPORT_SYMBOL_GPL vmlinux 0x0130a826	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x0156d91a	sk_clone
+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 0x0259eb0a	ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x026211e2	memory_failure_queue
+EXPORT_SYMBOL_GPL vmlinux 0x02804064	pci_msi_off
+EXPORT_SYMBOL_GPL vmlinux 0x02b1b004	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x02b243f4	rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x03090d44	add_to_page_cache_lru
+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 0x036b9639	tpm_release
+EXPORT_SYMBOL_GPL vmlinux 0x037b063e	rtnl_link_register
+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 0x03f36363	unregister_pernet_subsys
+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 0x04edde92	__inet_lookup_established
+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 0x058a8017	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x058ea6b6	device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x058f2a6c	crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x05ae262e	regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x05b873c5	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x05ba3f91	crypto_shash_digest
+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 0x074127e2	crypto_tfm_in_queue
+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 0x07ff4aea	xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x0849c111	vfs_removexattr
+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 0x08a934b1	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x08d02065	ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x0901ac01	__get_user_pages_fast
+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 0x0973a0c6	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x0980e0c7	sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x09915822	rio_mport_read_config_32
+EXPORT_SYMBOL_GPL vmlinux 0x0998f65a	vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x09c2ae9d	rtc_initialize_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x0a1b59ce	locks_alloc_lock
+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 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 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 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 0x0c2a83e1	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c7b4e38	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0c9ae770	init_dummy_netdev
+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 0x0db5c77c	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x0dc87609	tpm_register_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x0dcc1e7d	ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0x0de0b6e8	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d	apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e180af4	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0e507de3	xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x0eb1c0e9	i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8	xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974	spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0f5400db	inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x0f97160d	blk_rq_check_limits
+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 0x106fa023	sync_filesystem
+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 0x1133d9eb	inet_csk_get_port
+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 0x117e897b	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x119687c0	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x11a151b2	nf_unregister_afinfo
+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 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 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 0x1337d4a7	rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf	nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x136cddff	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x1371b737	spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x1373c4e3	raw_unhash_sk
+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 0x140bf6e0	bsg_setup_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1424bf65	ahci_start_engine
+EXPORT_SYMBOL_GPL vmlinux 0x14481b42	__put_task_struct
+EXPORT_SYMBOL_GPL vmlinux 0x144d7326	ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x14754c13	xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x14bfb3ef	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x14fbfcbf	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x15010e1f	arbitrary_virt_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0x1528641c	__blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x152c534a	__pci_complete_power_transition
+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 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 0x1699cbc7	unregister_ftrace_event
+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 0x176a7924	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x179fedd4	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x17ae23d4	crypto_remove_spawns
+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 0x17f3b5d7	inet_csk_route_child_sock
+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 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 0x196614ce	hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x1980ad1c	usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x198df8af	pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba	usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19a8548d	rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x19c48fb0	wakeup_source_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x19d73862	sysdev_remove_file
+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 0x1a59b0a8	usb_is_intel_switchable_xhci
+EXPORT_SYMBOL_GPL vmlinux 0x1a863ea6	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL vmlinux 0x1a9aecaa	ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x1ab00e84	fsnotify
+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 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 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 0x1c985909	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x1c9ff53f	task_blkio_cgroup
+EXPORT_SYMBOL_GPL vmlinux 0x1cfe3fe4	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x1d2bb3b6	crypto_alg_lookup
+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 0x1e7bbcb3	kernel_restart
+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 0x1eca9154	blk_end_request_err
+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 0x1fa6168d	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0x1faaa856	class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42	inet_twdr_twcal_tick
+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 0x210ebfda	crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x212e6ed3	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x219c4658	usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x21ae7ca6	xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x21dae0bb	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0x2204fa14	key_type_trusted
+EXPORT_SYMBOL_GPL vmlinux 0x22405c94	nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x226235f4	tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x22869391	usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d	crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22a90536	free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x22e15948	security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x22e85e41	hrtimer_forward
+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 0x23975872	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x23b260e5	task_xstate_cachep
+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 0x250c523e	xfrm_audit_state_replay_overflow
+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 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 0x26c9ed41	gpiochip_find
+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 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 0x28a4939a	gpio_export_link
+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 0x28f7d730	xfrm_audit_state_notfound_simple
+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 0x293a161f	stmpe_disable
+EXPORT_SYMBOL_GPL vmlinux 0x294ebd5a	sata_scr_valid
+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 0x2a3cc5d6	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2aa95c2a	fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x2ab1f8b0	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x2adebf12	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x2ae762f5	__ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x2b07da04	rio_get_device
+EXPORT_SYMBOL_GPL vmlinux 0x2b150ee2	blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x2b4179fa	perf_event_refresh
+EXPORT_SYMBOL_GPL vmlinux 0x2b930c72	eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x2b9f6d66	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x2bfa35ef	fixed_phy_set_link_update
+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 0x2c898966	crypto_ablkcipher_type
+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 0x2e1b3c80	single_open_net
+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 0x2e5f5449	__online_page_free
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012	scatterwalk_copychunks
+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 0x2fc29322	shash_register_instance
+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 0x2ff78979	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2ff85b6b	virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL vmlinux 0x304e3846	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x307a14f6	ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776	timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30889953	__class_create
+EXPORT_SYMBOL_GPL vmlinux 0x309fc624	netlink_has_listeners
+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 0x314b610b	blk_add_driver_data
+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 0x3206747a	evm_verifyxattr
+EXPORT_SYMBOL_GPL vmlinux 0x3208a316	tpm_pm_resume
+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 0x325e677c	gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x326010ba	dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x3263b7ab	find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c	ktime_get_boottime
+EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e	class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x32d44996	inet6_csk_addr2sockaddr
+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 0x331102ba	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3314e457	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x335a591f	unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x335e0a20	regulator_notifier_call_chain
+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 0x33cc3d28	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x33ef313f	usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6	gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x345d0913	rio_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x3474fc48	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3	eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x3480a918	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x34ae4011	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x34baf86a	add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x34f79189	file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x350df44a	crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+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 0x35c40302	noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x35df0d89	tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x360d90bd	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x361ce590	__rtnl_link_unregister
+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 0x364d94fd	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x36502ddc	bsg_goose_queue
+EXPORT_SYMBOL_GPL vmlinux 0x366a96b8	pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x36875389	__timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36a1cccf	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x36afbc74	regulator_register
+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 0x37a6831f	__pneigh_lookup
+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 0x381fef71	__rio_local_write_config_16
+EXPORT_SYMBOL_GPL vmlinux 0x384053e7	erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0x386fbc5f	find_get_pid
+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 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 0x3a438501	crypto_spawn_tfm
+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 0x3a62cc08	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x3a9672b8	scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x3ac1782d	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb	apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3b8c6570	tty_set_termios
+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 0x3bd06f42	kick_process
+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 0x3c7ad53e	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3c7bd5b8	spi_sync
+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 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 0x3ded8426	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x3df784d5	md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x3e35b6ec	mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x3e37a4d4	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3e3bfe19	perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x3e3e7a94	__netpoll_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc	__wake_up_sync_key
+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 0x3ec4b860	ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x3edad223	usb_usual_clear_present
+EXPORT_SYMBOL_GPL vmlinux 0x3edc75ba	each_symbol_section
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9	get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f0395bb	pm_generic_poweroff_noirq
+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 0x3f501223	crypto_hash_walk_first
+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 0x3fe69458	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x403b78cb	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40499063	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x40634549	dma_run_dependencies
+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 0x410a1e0a	blk_add_request_payload
+EXPORT_SYMBOL_GPL vmlinux 0x41138855	sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x41216005	skb_segment
+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 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 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 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 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 0x43fa5a69	clone_private_mount
+EXPORT_SYMBOL_GPL vmlinux 0x4411e45a	pci_intx
+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 0x44a52eff	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x44bcfa6d	system_nrt_freezable_wq
+EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55	klist_iter_exit
+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 0x45abd7dd	mddev_resume
+EXPORT_SYMBOL_GPL vmlinux 0x45bbd877	fib_rules_unregister
+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 0x45d521e6	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x45e34ee4	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x46074c17	sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa	rodata_test_data
+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 0x46c64649	get_task_mm
+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 0x47344b50	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x474359b6	kmsg_dump_register
+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 0x4853a4fe	wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x4863dad0	skb_pull_rcsum
+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 0x4928475e	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x4945c2b0	pci_pri_stopped
+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 0x49ff2873	set_cpus_allowed_ptr
+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 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 0x4bbff9cc	crypto_lookup_template
+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 0x4c01ac22	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x4c2772a7	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0	ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x4c39218f	blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c76b8e1	shash_free_instance
+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 0x4d2a55d4	sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x4d3bbda5	usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x4d407804	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x4d4fd5f1	xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4d564c16	__online_page_set_limits
+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 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 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 0x4f8744e4	aead_geniv_alloc
+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 0x5016be88	nf_register_afinfo
+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 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 0x51fa486e	kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x526a523a	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x526ff77d	transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x5275f31e	crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x52a4c789	crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x52ed43fc	cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f	bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x534521c9	raw_seq_stop
+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 0x541bd60a	irq_work_run
+EXPORT_SYMBOL_GPL vmlinux 0x54365ec1	ata_sas_queuecmd
+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 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 0x54d7a7e8	vfs_setxattr
+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 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 0x570c41e9	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x573ec1c9	xenbus_alloc_evtchn
+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 0x581adf24	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x581fa956	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0x5830827f	regmap_raw_write
+EXPORT_SYMBOL_GPL vmlinux 0x5859d2ff	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5885e07d	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x58a3e021	crypto_unregister_shash
+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 0x5997a9c7	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x59b21b63	sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x59b62938	inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x59eae699	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67	gnttab_free_grant_reference
+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 0x5a85e608	__scsi_get_command
+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 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 0x5bc39474	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x5bd15eba	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x5be0970e	css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x5be34ea7	sched_setscheduler
+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 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 0x5c8655fd	shash_attr_alg
+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 0x5d408f89	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x5d48a650	m2p_find_override_pfn
+EXPORT_SYMBOL_GPL vmlinux 0x5d51c76a	init_pid_ns
+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 0x5d865d74	register_user_hw_breakpoint
+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 0x5ec794eb	inet_csk_reqsk_queue_prune
+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 0x5f67b039	tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x5f9c0e91	__xenbus_register_backend
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d	xfrm_ealg_get_byidx
+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 0x604f4a2c	xfrm_output_resume
+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 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 0x6157104e	tpm_gen_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x61634f05	lock_flocks
+EXPORT_SYMBOL_GPL vmlinux 0x6194ffea	do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0x61bff1bc	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x61c9a47d	pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x61dc33ff	rtc_set_alarm
+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 0x6361aed9	posix_timer_event
+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 0x650e5c0b	__rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x651cbcb4	alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x6528856e	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL vmlinux 0x6543d834	crypto_register_alg
+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 0x65c00110	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x65c1fbc5	stmpe_block_write
+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 0x661554de	inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x664527c4	xen_swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x667a55f5	sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66898173	cgroup_add_files
+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 0x67425b25	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x6757c5c6	hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x6769428b	aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x678ff789	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a07aac	crypto_unregister_pcomp
+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 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 0x689f1f58	power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x68bae7a2	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x68d27378	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x690a0e49	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x6931c346	crypto_aead_setauthsize
+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 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 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 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 0x6a6d1b06	blk_queue_bio
+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 0x6ab922b2	regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x6aba167a	regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f	acpi_get_cpuid
+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 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 0x6c00d95f	crypto_givcipher_type
+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 0x6c8d5ae8	__gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c9a2020	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x6ca0ba6d	modify_user_hw_breakpoint
+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 0x6d2fc5a6	net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d334217	ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x6d4ecb96	register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x6d7bb045	setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6d86c2ac	power_supply_powers
+EXPORT_SYMBOL_GPL vmlinux 0x6db9cd14	raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x6ddc2e6c	ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x6de62cc5	devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x6e02e20e	tcp_done
+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 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 0x7019986f	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x701edcc9	crypto_unregister_template
+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 0x709ce55c	get_user_pages_fast
+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 0x71dc9998	crypto_il_tab
+EXPORT_SYMBOL_GPL vmlinux 0x720d9973	xen_unregister_device_domain_owner
+EXPORT_SYMBOL_GPL vmlinux 0x72418d77	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x725abc2f	crypto_find_alg
+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 0x72e15eec	get_dcookie
+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 0x73a48b4a	ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73aa9225	device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x73d69364	ring_buffer_change_overwrite
+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 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 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 0x7580472c	tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x75ae897d	da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x75b20f59	eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x75bb01ce	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x75dc2288	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0x75e841ab	blk_lld_busy
+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 0x76446709	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0x76be61d1	usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a	unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x77206e02	crypto_register_ahash
+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 0x7845835c	hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78c5916b	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x78cca41a	d_materialise_unique
+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 0x7977410f	blkcipher_walk_phys
+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 0x79e339ec	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x79e69460	intel_iommu_gfx_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x79f888f8	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x79fde1ec	inet_csk_compat_getsockopt
+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 0x7a8659e3	blkcipher_walk_virt_block
+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 0x7ae097ea	virtqueue_enable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e	cpufreq_frequency_table_put_attr
+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 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x7bde5f86	cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x7bf247d1	handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7c0373a7	do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x7c1309d2	ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7c896584	disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7cac0b35	usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x7ccf93bc	wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x7ce62d4b	perf_event_create_kernel_counter
+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 0x7e1183c9	async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e1ecdc5	register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x7e24701e	tun_get_socket
+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 0x7e87c145	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x7eaad028	locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x7eafc0cc	inet_hashinfo_init
+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 0x7f2ab96b	raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x7f3bdcd4	vfs_lock_file
+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 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 0x8078e48e	crypto_alloc_instance2
+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 0x80d48840	module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x80f3268f	__trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0x81244620	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x819a73cf	dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x81a0d017	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x81f49174	device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x81f4fbee	wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x8209c492	inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f	__gpio_cansleep
+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 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 0x82ee209c	page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7	gpio_export
+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 0x8480b2c3	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6	flush_work
+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 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 0x862100a8	regmap_write
+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 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 0x874be14f	regmap_init
+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 0x87bb7a7d	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x87c38aee	rio_mport_write_config_16
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90	injectm
+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 0x88a6be2a	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88be996b	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x88e6a5c7	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x88f61a98	__lock_page_killable
+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 0x8a277a80	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8a2b01bd	adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8a369ece	platform_get_resource
+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 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 0x8acbee58	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x8adf7936	usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8b04668e	bind_interdomain_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x8b21051f	crypto_alloc_base
+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 0x8b6b2771	preempt_notifier_register
+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 0x8bda0fb3	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x8bdd6ad3	usb_autopm_put_interface_no_suspend
+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 0x8c356025	rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a	unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x8c81f2c1	usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x8caf1e5a	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL vmlinux 0x8d04ccee	device_remove_file
+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 0x8de2bff6	__sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x8e040c33	bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x8e16fa2a	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x8e1cad4e	cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x8e2f80bb	net_ns_type_operations
+EXPORT_SYMBOL_GPL vmlinux 0x8e6ee816	map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x8e7848d3	mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x8e9526c3	mnt_want_write
+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 0x8f981178	platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8	usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x8fc450f5	pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x8fd42695	tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x902c16d7	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x903490bb	rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x9062c322	ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x90898d0d	tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a	crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90dc29df	aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x90dcd06b	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x90fb3895	platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x91084548	css_id
+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 0x91811b58	ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x918ad429	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x91d30208	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x91e3c18d	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x9233701a	hrtimer_init_sleeper
+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 0x92a18088	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92f4b6a0	task_active_pid_ns
+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 0x9427382e	inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x943fc708	xen_setup_shutdown_event
+EXPORT_SYMBOL_GPL vmlinux 0x944c9b60	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x94543045	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x9482e075	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x949d3542	pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94b39661	__inet_twsk_hashdance
+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 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 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 0x9693e017	crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96e64364	blkio_subsys
+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 0x97d0c081	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x97d9c7d7	sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x97ea18c8	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c	hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x9842f28e	blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x98546851	vfs_kern_mount
+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 0x98cc564a	regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x98ceef06	__tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0x98d1f42d	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x98e2706c	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x98e53433	regmap_raw_read
+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 0x997716af	unregister_efivars
+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 0x9a386c13	get_device
+EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034	idle_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9a57f8e4	sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x9a745929	ipv6_opt_accepted
+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 0x9aad3959	__rtnl_register
+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 0x9b18e884	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x9b449ae2	__mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x9b6db2e2	vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x9b7539e4	debugfs_create_u64
+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 0x9bbfe93b	register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x9bc8cf05	pm_stay_awake
+EXPORT_SYMBOL_GPL vmlinux 0x9c2de449	memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL vmlinux 0x9c429901	find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x9c4c59d7	__wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x9c535a03	console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x9c781c5e	hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x9c806325	__trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b	xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cc668b1	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x9cef04a2	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9d0274ca	lookup_instantiate_filp
+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 0x9e42836a	inet_csk_addr2sockaddr
+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 0x9e93d51b	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9ebfb844	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0x9f252009	regulator_bulk_get
+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 0x9f67ebac	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x9f6ded61	probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x9fa0edde	inet6_destroy_sock
+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 0xa0429d6d	regmap_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xa046a165	pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xa0596a66	scsi_internal_device_unblock
+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 0xa13f8a0b	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2	erst_get_record_id_end
+EXPORT_SYMBOL_GPL vmlinux 0xa164961d	regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa18fbff4	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL vmlinux 0xa1a5af3c	pstore_write
+EXPORT_SYMBOL_GPL vmlinux 0xa1ddf303	fpu_finit
+EXPORT_SYMBOL_GPL vmlinux 0xa1f7ff2a	usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xa24b8917	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xa27e3d2c	ata_std_prereset
+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 0xa2e0d5e4	__module_text_address
+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 0xa34952c3	skcipher_geniv_free
+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 0xa387a1af	crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xa3c37243	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xa3d6040f	usb_hcd_is_primary_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113	ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xa3eed45a	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590	input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa40d09f4	key_type_encrypted
+EXPORT_SYMBOL_GPL vmlinux 0xa4130758	crypto_nivaead_type
+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 0xa4ca8d07	register_efivars
+EXPORT_SYMBOL_GPL vmlinux 0xa4d58669	math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xa51e4b45	bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xa5405088	xfrm_audit_state_replay
+EXPORT_SYMBOL_GPL vmlinux 0xa551b9c6	xfrm_audit_policy_add
+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 0xa65695fb	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xa69614e8	blk_rq_prep_clone
+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 0xa71c82ce	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xa722a819	cpu_has_amd_erratum
+EXPORT_SYMBOL_GPL vmlinux 0xa73d217c	register_ftrace_event
+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 0xa7ff2526	register_mce_write_callback
+EXPORT_SYMBOL_GPL vmlinux 0xa7ff7b4c	dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xa8a68e4e	rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53	xen_destroy_contiguous_region
+EXPORT_SYMBOL_GPL vmlinux 0xa8f22ae9	rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416	gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff	hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa91bd725	tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0xa968b63f	spi_write_then_read
+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 0xaa65694e	__rtnl_link_register
+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 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 0xab3c3cca	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xab427f4f	tty_prepare_flip_string
+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 0xabfb6f86	usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xac43adac	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0xac90fbd2	wm8350_read_auxadc
+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 0xad4aff88	crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xad58f43e	skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39	nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad90a0bd	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0xad937228	sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0xada38534	regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xada4b4bf	scsi_nl_add_transport
+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 0xae55f6a2	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xae7c5411	ms_hyperv
+EXPORT_SYMBOL_GPL vmlinux 0xaec94c87	find_module
+EXPORT_SYMBOL_GPL vmlinux 0xaeea3073	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xaf0769fc	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec	wakeup_source_register
+EXPORT_SYMBOL_GPL vmlinux 0xaf627ca4	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xaf69699e	xv_get_object_size
+EXPORT_SYMBOL_GPL vmlinux 0xaf8b18e5	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9	leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xafacc24b	class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xafe1f546	pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xb017d109	inet_ctl_sock_create
+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 0xb0f8bb58	sk_attach_filter
+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 0xb178d3d4	inet_csk_clone
+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 0xb298d0d2	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xb2a9ecc4	ip6_local_out
+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 0xb35a29e2	inet_twsk_schedule
+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 0xb41128ff	__clocksource_updatefreq_scale
+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 0xb515988d	tps6586x_write
+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 0xb55211b3	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2	synchronize_sched_expedited
+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 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 0xb639294f	set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xb63cf38d	scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb66486fd	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL vmlinux 0xb693eab6	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661	ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6f1c8a6	anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xb6f24925	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xb716debf	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9	sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb75d662a	hrtimer_cancel
+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 0xb7f0d89a	ata_bmdma_start
+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 0xb82c7d32	xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0xb82d8042	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb8631a27	pm_runtime_forbid
+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 0xb94141dc	crypto_default_rng
+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 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 0xb9e46bb9	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0xb9ed8fed	usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xba222f0c	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL vmlinux 0xba39befb	ip_route_output_flow
+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 0xbad60f75	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27	scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb00811c	cgroup_unload_subsys
+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 0xbb32c36c	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0xbb3ec811	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0xbb56fa17	gnttab_map_refs
+EXPORT_SYMBOL_GPL vmlinux 0xbb89a4a0	pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859	edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbd81407	dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xbbdf12cb	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xbbfce101	__pm_relax
+EXPORT_SYMBOL_GPL vmlinux 0xbc0a11ce	agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0xbc2188cf	inet6_csk_xmit
+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 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 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 0xbea53823	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xbeb88745	print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xbed2940b	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbf055e88	crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xbf3ae0d0	sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbf400cd4	ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xbf51c911	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xbf5210ee	xenbus_probe_node
+EXPORT_SYMBOL_GPL vmlinux 0xbf531d91	part_round_stats
+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 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 0xbffffbb8	xfrm_inner_extract_output
+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 0xc0b0e3ef	crypto_alg_mod_lookup
+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 0xc1d119c6	__clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc1ee85c3	simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xc207c441	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc246ae60	posix_clock_register
+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 0xc280fb46	kdb_register
+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 0xc30cb537	xfrm_audit_policy_delete
+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 0xc38efc70	xenbus_dev_is_online
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f	scsi_nl_remove_driver
+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 0xc410caad	trace_event_raw_init
+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 0xc476ba9d	ipv6_dup_options
+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 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 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 0xc5993e97	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xc5a208ba	__crypto_alloc_tfm
+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 0xc5c264a5	amd_erratum_400
+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 0xc70adba8	ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc72e1233	__trace_bprintk
+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 0xc772ceab	register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL vmlinux 0xc7b3b120	sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0xc8305a04	wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc851c07c	set_online_page_callback
+EXPORT_SYMBOL_GPL vmlinux 0xc8632f7a	yield_to
+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 0xc8b32675	mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0xc8d3d73c	sock_prot_inuse_add
+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 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 0xca2d74fa	relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xca6d1fbe	tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xca72193b	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0xca736ab0	spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xca7c545c	__blk_end_request_err
+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 0xcb0748ed	inet_unhash
+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 0xcb3a84ab	proc_net_fops_create
+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 0xcb8f18ce	crypto_alloc_ablkcipher
+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 0xccb39086	usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xccf65db2	fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xcd006811	inode_dio_wait
+EXPORT_SYMBOL_GPL vmlinux 0xcd23fbbe	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xcd503f01	__put_net
+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 0xce2925ed	crypto_alloc_pcomp
+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 0xcebc9776	dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0xced176eb	blkiocg_update_dispatch_stats
+EXPORT_SYMBOL_GPL vmlinux 0xcedd0051	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xcee0f900	rio_local_get_device_id
+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 0xcfdf80f2	skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff	spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd01ee6ab	ahci_print_info
+EXPORT_SYMBOL_GPL vmlinux 0xd03c4205	regulator_get
+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 0xd0d31b66	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0xd0eb27f3	pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f	timerqueue_add
+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 0xd1488f9f	regmap_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59	erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd159f169	vfs_test_lock
+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 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 0xd2e5a7c0	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd2f94da7	cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0xd30f4981	eventfd_ctx_fileget
+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 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 0xd3f9ce57	skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xd4034828	system_freezable_wq
+EXPORT_SYMBOL_GPL vmlinux 0xd40fc436	ata_pci_bmdma_prepare_host
+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 0xd4e6ba3c	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0xd52f2441	xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0xd5508190	sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xd5599ca4	ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xd59668e6	unlock_flocks
+EXPORT_SYMBOL_GPL vmlinux 0xd5b79f51	inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac	ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd5e02e5d	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0xd608458a	ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xd6a4c0e7	dev_attr_sw_activity
+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 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 0xd8fb2361	crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8	scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd904c09b	skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xd919806a	amd_cache_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xd93e76a6	kbd_table
+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 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 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 0xda844634	tpm_show_pcrs
+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 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 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 0xdc4b4f9d	skb_tstamp_tx
+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 0xdc8a37b0	adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e	syscore_suspend
+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 0xdd0ff6d7	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xdd1d09ad	__ip_route_output_key
+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 0xddc1ef39	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xddccf49d	xfrm_audit_state_add
+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 0xdea5b31a	wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xdea912d1	regmap_init_i2c
+EXPORT_SYMBOL_GPL vmlinux 0xdebdb024	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xdf157502	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xdf22ee56	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xdf78c108	unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06	klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xdfa3fecf	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xdfab34e4	clockevents_register_device
+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 0xe0606c3e	crypto_drop_spawn
+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 0xe0c77bb5	mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cdcdaf	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xe0d5ed05	fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0xe0d5f082	crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0xe10bcbed	spi_sync_locked
+EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad	erst_get_record_id_begin
+EXPORT_SYMBOL_GPL vmlinux 0xe1151684	vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe125c4fe	class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xe17e94e4	sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe18e8eaf	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0xe1cd3e8c	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe1d2af4a	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xe1ecba68	virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL vmlinux 0xe201572b	gpiochip_add
+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 0xe3e34ad2	rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe3e872f8	xenbus_dev_fatal
+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 0xe54faaba	dev_forward_skb
+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 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 0xe6bde331	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xe6c094a5	crypto_ahash_finup
+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 0xe7232e0f	user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe75d8653	usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xe773d007	rtnl_put_cacheinfo
+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 0xe8b8d8c1	xfrm_output
+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 0xe9ed7c9e	blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea04f276	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01	task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea1ba676	sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f	atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea476f0e	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xea50dad3	ahci_ignore_sss
+EXPORT_SYMBOL_GPL vmlinux 0xea5a1eb2	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xea905975	hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xeaaab899	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xead0ac4f	register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0xeae66993	ip_build_and_send_pkt
+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 0xeb4a7004	xenbus_unregister_driver
+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 0xebbe7622	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e	regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec21af27	inet_csk_listen_start
+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 0xec860d52	ipv6_find_tlv
+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 0xece79da1	sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xecf2e518	ata_host_start
+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 0xee2ce2c9	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xee6057b7	serial8250_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0xeeb73a6e	cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xeec24d31	usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xeed83938	crypto_init_shash_spawn
+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 0xef5b725c	__tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0xef681275	pid_vnr
+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 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 0xf011c08c	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xf0178c7b	crypto_grab_aead
+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 0xf0b62dc1	uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0xf116cf81	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xf126d7ce	fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xf12c4ad3	__inet_lookup_listener
+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 0xf2021700	usb_register_driver
+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 0xf34806ec	hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf36d1c25	ata_pci_sff_init_host
+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 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 0xf4423674	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2	rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf49cbbbb	key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0xf4c99a53	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf4e9f1ca	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf534c413	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf53bd628	rtnl_register
+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 0xf5bb869b	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xf60d547d	cgroup_lock_live_group
+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 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 0xf8199586	xattr_getsecurity
+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 0xf8edea27	blk_unprep_request
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf90a346f	br_fdb_test_addr_hook
+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 0xf9476a44	event_storage_mutex
+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 0xf9771de4	__inet_hash_nolisten
+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 0xf9ed0b5e	posix_timers_register_clock
+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 0xfa4f2f40	rtnl_af_register
+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 0xfb203d96	__audit_inode_child
+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 0xfc873f1d	hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfca4760b	replace_page_cache_page
+EXPORT_SYMBOL_GPL vmlinux 0xfcad51a1	pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0xfcb3ad9b	crypto_larval_lookup
+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 0xfd0d8c9d	bdi_writeout_inc
+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 0xfde34a72	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xfde42658	xv_malloc
+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 0xfeb4d542	cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1	usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfedf0df9	stmpe_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xfee0be8e	sk_setup_caps
+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 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-36.57/amd64/generic.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/amd64/generic.modules
@@ -0,0 +1,3307 @@
+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
+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
+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
+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
+uas
+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-36.57/i386/generic-pae.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/i386/virtual.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/i386/generic.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/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-36.57/i386/generic
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/generic
@@ -0,0 +1,12569 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x46bb5447	kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0xdb3b7b88	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 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 0x64f70d40	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x028af19d	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 0x67bd4ad9	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 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 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 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 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 0xd5da27a5	ibnl_put_attr
+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 0xf133c073	ibnl_add_client
+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 0xf8d9c003	ibnl_put_msg
+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 0x1658c4dc	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x18fbdda8	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ca4542f	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2078a64f	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x227c28e0	rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x321224a2	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3d52a2b1	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x515f92d4	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x671bc61e	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x81f0b341	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8ef9d220	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x95ebeb66	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9eb77aa9	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa74a3c3e	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb09ed91a	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb11a0624	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb86d9c35	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcaad84cb	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd466f13d	rdma_reject
+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 0x0949c989	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x161262e2	capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x20bfbde5	capi_ctr_ready
+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 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 0x7e6f1307	capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x89965f3e	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 0xa34ef632	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 0xb19fda8d	capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f	capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbc61f64e	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xda8a2e08	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 0xea1d8b85	attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf102971b	capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf67a4a58	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x14cd2bd0	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x15afe603	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2a1957d7	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32b408fa	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6781fa10	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x84065850	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8c28aadb	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9d8b7a64	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f9c04d0	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb0b15512	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc1876cd5	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc4a31c3b	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc6ee42e3	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd26ec4fd	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xeb5ec023	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x03772a59	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0b317579	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x15cca9b7	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2d57eedc	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x47419f46	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x75293c47	b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7cd0ac35	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x949c8c41	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc175ff0a	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+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 0x0ced85f4	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x3ae64b12	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5555312b	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7e577e24	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x251c869c	mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x2d8db482	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 0xeea22070	hisax_init_pcmcia
+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 0x248ca63a	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x51b639cc	isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x53a2e271	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x86200f48	isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xea114dc1	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x07f1fe2b	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x15e4a8f1	isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x4a475a49	isdn_ppp_unregister_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 0x08a19745	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x15a8bdcb	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x20560f58	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c6fa8f6	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4db9e4d8	recv_Dchannel
+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 0x5dc7400a	mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61048aaa	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30	mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69bd3ed7	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x721b9fd3	mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x81cae8bd	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x839283cc	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x881ce8a0	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x923f3752	mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa3da46c5	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7a42af8	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb8a43a7e	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbfb8922d	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5ca48f5	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf512ef5	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd33225cf	dchannel_senddata
+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 0xf12b14b4	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f	mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfd99da69	get_next_dframe
+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 0x20b78338	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x3dcdd6fa	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0x3ee97967	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x5e41a9bd	dm_dirty_log_type_unregister
+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 0x6397fd43	dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x6e5457c2	dm_snap_cow
+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 0x0ce68667	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x261a5bb8	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x27b46297	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2e3e5f56	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4221ef43	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x571809e5	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5845ea46	flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5a5a31c5	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x60083846	flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x76f51a6e	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81aa8229	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x87316776	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x90a1ca30	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb3304fb5	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc1beb70c	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc2bd2f79	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdf8aa216	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdfdee688	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe42bfc51	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe9834e58	flexcop_dma_config
+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 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 0x785f2927	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 0x833c6816	dvb_ca_en50221_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 0xd4c40ace	dvb_net_release
+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 0x3109075f	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4459346e	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6b8e92ba	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x9f5433cb	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb5955a40	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdc714fce	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-af9005-remote 0x13e247e0	rc_map_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x373ee1a0	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 0x09352b4c	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x117ee7de	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4d2903cc	dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9da89ae7	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 0xcc06e86b	dibusb_rc_query
+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 0xe46b0a2c	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe94e6709	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xea18d2c6	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf86f745c	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfa8b0bb6	dibusb_pid_filter
+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 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4d27059c	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4e98b3d8	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x5aa40b42	cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbe7b3f2b	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xfed76114	cx18_start_v4l2_encode_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 0x2349e9ba	videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x723c7a37	videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xba854cab	videobuf_dvb_get_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 0x14d93bba	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x57992019	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x58196d53	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x62d6f2cf	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6957d3ba	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x84776b79	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x876f10f3	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9ca0212b	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xec4751f0	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf323a9c8	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x36c5db84	com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x424b1ed3	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb219a51a	com20020_check
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x271b2266	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x335cff97	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x527f1212	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5ce149db	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7b8dabd1	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x85fd52a4	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x89d12a4d	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xbe5996df	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcd3fe624	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xce459cc0	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x23289db8	eip_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x2f32391f	eip_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x3b0405a0	eip_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x438b1c4a	eip_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x51922b43	eip_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x70c01d03	NS8390p_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x93c31194	eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7	eip_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xcbab1d24	__alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xe018d823	eip_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xe4e9031c	eip_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xa56de3f0	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x8b8f3557	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x109a3921	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0c1eb2a0	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x189e693d	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2a63174b	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x47efe87e	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5082acc9	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x525d1829	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5c1e3694	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x71e301b2	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa8c61a47	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaf64b254	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc71d0aae	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdfd099b7	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe94242be	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf98ba59c	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfc8127ec	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfe74d597	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x137c3f43	cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x22d3de8a	cxgb4_l2t_send
+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 0x507ee227	cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x52ac56ea	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x677b8d52	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7c1ef16e	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d2401e9	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce336cda	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 0xdf257e41	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeaf2c9b9	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeb28c104	cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3b09e6b	cxgb4_iscsi_init
+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 0x005cf8f0	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x54b4d1ea	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7ac820a0	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xad6e6a81	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc8e18384	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3ea6cd69	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4d4051f2	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x732ca7c0	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7aa9313f	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7e6520c1	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8d8b6aab	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x97c68e2d	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9f34a5c7	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafe66b78	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbd053709	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 0x2a20aca4	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x83684ee7	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x0c0524db	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x4ae021f7	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xd7cfae9c	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x52f7d704	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x0f48cef5	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3003b19d	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7b1383cd	tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xac11f77f	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcb9d873f	tmsdev_term
+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 0x1f4b8288	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x50226473	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x51ef71ef	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x53afe17c	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5ec00ec2	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x67ac02cb	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x71fa51c9	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc090fce0	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc88df5fe	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcd356378	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe4042525	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0x008ea413	z8530_channel_load
+EXPORT_SYMBOL drivers/net/wan/z85230 0x025d24a6	z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988	z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x2cf200e7	z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0x34543fdc	z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x4eab128a	z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29	z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x9445d85a	z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0xb3555897	z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xb440c3cc	z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xb5a124f3	z8530_sync_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xbc65bd62	z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xbe91a3b0	z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0xc43aff66	z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xc5bb7869	z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0xc7067031	z8530_null_rx
+EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0	z8530_interrupt
+EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064	z8530_hdlc_kilostream_85230
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xa465f791	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x0f0fdb41	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x3bcca8c6	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8fc15455	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x130f5c77	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x14b0b5f1	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x40b758d4	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5	ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x895f82ba	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x93c06d77	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb01379af	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcf4c09c4	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xda14ef18	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe1e25192	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x011b2869	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x25aacca7	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 0x7b2d9233	ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcd5bb5fd	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 0xf59eadf3	ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a315fdb	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d216f19	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1131c6e4	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11533a2c	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x126db23c	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19809285	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cf0ea36	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e20a547	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x201bc993	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28fbf4c5	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b62b12c	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2df66aad	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3259433d	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x327fb466	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3323ca6a	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33f26f4b	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3412f821	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3578d745	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3595cbde	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a7a1906	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ae14913	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43ba5e36	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x455f961c	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49615db7	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x497a5dc9	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e97d0aa	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53d7884e	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x546fd3ad	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5488c647	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x549c05cc	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54ac68c9	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55bcbc55	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5891c124	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a0acdf0	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5caef559	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5da4d2a2	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e7fab5e	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fecdb88	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6336510e	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64ad6c7b	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x67fe0cc9	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e8d5f09	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f868436	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70114872	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71347fca	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7373ba16	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x784bd268	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78ccdc3c	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c57e934	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7edfe598	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80823b72	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8303f6db	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83b295b2	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8726d13d	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x872a2029	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88d64c79	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8af24564	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93294703	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99bacae3	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d00d0c3	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa08eb781	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4c60f44	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabbd69ee	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac513e34	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb212d36f	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb523f2f2	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb618ce19	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba99e7f5	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5fdaefa	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca68945e	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd37329e	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcda79665	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce8f5d62	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcecda743	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2608ae8	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7d5b9b2	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9b7f4f0	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbb55174	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2bac2c1	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe42b431b	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8f103f8	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe91926ca	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea1d2eec	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed9d7277	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7e9279a	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8a4cc23	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8afcf56	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf952d179	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x0ef96317	stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xacc6668a	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xfa40294d	init_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 0x0c8c6f20	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2260cbb6	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2cebcc02	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3448527f	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3583c8ae	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3f31a209	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x437cc2c5	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4c5a04ff	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x62e0b1df	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa2254815	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa8ff1e33	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb7f9902e	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb83d834d	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf8bf40dd	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c868138	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x460cd36a	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4757c236	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50848f4a	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x54c51c5c	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a07076e	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a3d1883	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5bbdf85d	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x65eec142	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6d396b1c	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x704f9da5	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x73aba28e	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83d34c82	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9571ab1e	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab186894	hostap_80211_ops
+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 0xb64111a4	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb84ad8f5	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc093bc20	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xce3f0f6a	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd96b2f1e	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe83a60c6	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xea5ea377	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1ccef9f	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf4c39565	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfebcee28	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x07f090b8	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x083b6b93	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0f9c6973	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x28b20133	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c4558d9	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x39d0a4f7	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3d60b5af	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x52155f3f	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x542263b6	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56fb9a99	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5cd40229	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x62bc9ac4	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x65cfb080	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x678ef169	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c3125db	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d7b02bd	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9bcf1da7	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcd801cba	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe0d4a2cf	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeeb03f05	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa05de36	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0148e482	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0370b99d	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x05c37002	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x06fc3328	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x08f4136e	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0bb997cc	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0cd53f7b	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0e0fa7ff	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x11422521	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x159f6fcf	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x15b17f0f	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x168c4709	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x184906b3	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1e6e10e7	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20e0ce72	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x21c1f35f	iwl_legacy_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x230d24b0	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x243f6cb7	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x292eb78e	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2c6b0d75	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2d836883	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x30724024	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x30e48824	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x33912d94	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x39a1f254	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x39fbbd52	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3bb5f16f	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x408beef0	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x40e9196f	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41a0075d	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x443a2512	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44b1d62e	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x49196c12	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4ec4bd5d	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x515784c4	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52ac676e	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5323fab6	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x538ff8a4	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x582b00e9	iwl_legacy_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5d11cb33	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6399edda	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6695381f	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x693aafe7	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6cbe1a73	iwl_legacy_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e512dab	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6f9f4a7e	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x73089902	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x75e2fae3	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x768c0b7d	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7d042ce6	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x80cb398e	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x84dc99d1	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x86ff9081	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8bceb13a	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d9ebcd3	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x95d30a52	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9c85cdd0	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9d8243cf	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3c6023c	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa65e950b	iwl_legacy_rx_reply_error
+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 0xb20d20b5	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb70e3ef1	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb968cdf3	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbcc05626	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbd29a2ff	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbe7e133d	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbed5c9aa	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbf9dc49d	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc06cc9a5	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc78f5537	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc81aa5cd	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xce2b071c	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xce383724	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcf6a6357	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd0a58369	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd4bdf66a	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd5febc95	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdca61c29	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8ed678b	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeac344c0	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeba86bb3	iwl_legacy_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xebaaeadb	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xed2bd6f4	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf035ec76	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf0ead303	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf4004f9a	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf4f838bb	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfc20abb4	iwl_legacy_get_free_ucode_key_index
+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 0x0f160908	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a524525	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x25ce3c18	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x45c35c30	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x496378a8	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x57106ff1	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a1a95f4	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x65bf6ff4	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8731e65e	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x96d9e7e4	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa22223c3	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc001716a	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe6577898	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeb27d9fe	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf492b841	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe1e31f9	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0490d0b8	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x07b10fd0	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b5badb5	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0dd5605e	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x15b21c41	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x195f4868	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1cc2e395	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1e47a8f4	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1e57b794	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3223c664	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x34b40fc5	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3ea0e47f	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x454c7202	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x47b308d9	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5bf7733c	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x678f32cb	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6e1abff2	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72395327	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7339f9d0	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x813e831d	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x82042a2c	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x86079893	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x91732f51	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x97459d55	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9badfb19	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9e41b9f1	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2cc5368	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc01a6a39	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc4234d65	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc63e42f2	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd05ce1ed	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdacb62eb	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc3679a0	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc67b9c0	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe0b55be0	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe17bd818	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe88a35a9	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeb8b933d	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xee41c0e2	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf05794dc	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf52e7c6e	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf8935bb3	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01c6b68c	rtl_usb_suspend
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ffcf0ec	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1edaefa4	rtl_pci_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x257191c3	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x26a32730	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x49a6a63e	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4e02ab18	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x518ece30	rtl_usb_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x59cc3a6d	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x74f8a2c5	rtl_usb_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x859895cf	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x88ab4044	rtl_ps_enable_nic
+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 0xa0d95895	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb18b3a2d	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb4edceb5	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb6bfc9a4	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc7cdc9cd	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb4c2424	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf92b578c	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf9435b7e	rtl_usb_probe
+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 0x184128ff	pcmcia_get_mac_from_cis
+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 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 0x09b93e03	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x4ae24383	pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xad6acb06	pps_event
+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 0x1a05da69	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3fa31264	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4723683b	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fed1e3e	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9073aa1a	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9ce8deb0	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd4c4baae	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdb18a229	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe5807aa5	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00271e22	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x037ffa1f	fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b2b4a65	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e4740d7	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1375d473	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15115b0a	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26da240c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c075ca8	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d32b77e	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x315aa1b9	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x337339b8	fc_exch_recv
+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 0x3b2c178f	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b515db7	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b6c78e1	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d90fc42	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x517dcdc7	fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5745fcb4	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e28a100	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x601f809b	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64e3f0cb	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x675b30f0	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68cb946b	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77e7a3c2	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c16ef48	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cadc84b	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8be5cefc	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d4b2f67	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x949ef14b	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9508fe2a	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c657360	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3e5cb58	fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7c1f678	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xafcc92d3	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1ec219b	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb84f69e3	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd770abd	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc53d3555	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7da7bcf	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc6557e0	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfe458a7	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd356dba3	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd992c13e	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde81e46e	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdff7388d	fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe605ca59	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea186a8c	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf416c512	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfce5c905	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 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 0x025533e1	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05cc3b3f	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06bdaf3a	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f9d3413	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11509553	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1256e781	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x235e0ef3	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x301377ae	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3604541f	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40b9cfc7	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41d0a706	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46f1d04b	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50696a59	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x515fb37a	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x561e3a50	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59f4d066	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b51ccdf	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c6eb2ac	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d131c10	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e6b4086	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6069067d	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x606b4a95	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60e8c5d0	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6235a871	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x646f472b	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c3bc8b2	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x70861e65	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77b24f9e	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c451af1	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x806b0b86	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81d0ba65	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x942fd12d	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x989cc0c4	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f6102c7	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa84fa5ae	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaaa711af	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc2605b9	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbe9716e8	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc040ec9c	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1a47d3b	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd86d73a	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd342aded	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd94ddb71	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xda7208ba	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0108101	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe24bde09	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe644cc1d	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7ddf79b	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecd0d1db	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3054061	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf64ef476	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa0ae222	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa492c83	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe2a73e7	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x02151301	vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x05c407ce	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 0x1540517c	vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8	vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3527dbaf	vme_unregister_bridge
+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 0x5fa5fe9a	vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x660f3f77	vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae	vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6bed1eb5	vme_dma_list_add
+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 0x7b940647	vme_irq_free
+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 0x8ebf9ba4	vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9039296f	vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x927764f8	vme_irq_request
+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 0x978eab65	vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8	vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xacb63db9	vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002	vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xce8821f5	vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5	vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd832de5b	vme_dma_request
+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 0xee70922e	vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf8d81d47	vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfd2a01a8	vme_irq_generate
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x03601169	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x04eca432	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x06c8ee99	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x06f405de	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1a198eab	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x23955984	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x23c4e5fd	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x25c329ca	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x29293af6	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x29401c74	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2983f226	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2edb4fb5	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x33242c2c	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0x35c41669	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3961a65c	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3cc050d6	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3d2cb9a0	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x428c00e3	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4a20794f	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x501c8f5e	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5ac9f28c	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x62e2f940	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6a54301e	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6c5546bf	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x708455c9	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0x734b9d5d	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7879a4cc	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d	transport_set_vpd_ident_type
+EXPORT_SYMBOL drivers/target/target_core_mod 0x83609acb	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8558a724	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ab04f63	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8d0890cf	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0x91e23205	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0x920216d7	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x92db346e	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa1a511a8	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa3af5c9e	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa8fb8775	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad2fdef5	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad3333ac	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb32ac987	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbb9a748a	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc1460ad4	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc3b32c1f	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc430f148	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcd42697c	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcd66297d	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xce1009a4	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd12d8eb5	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd291a626	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd477e7eb	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd8ba4e32	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdd1b3608	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdeb04d29	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe26f567d	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe73e7a28	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xea8e05f9	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xee866056	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0xef757a83	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf633e3af	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xfff8a8de	transport_register_session
+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 0x0c22dc25	usb_wwan_close
+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 0x4392cc75	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4bf13bb2	usb_wwan_write
+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 0x9a4550aa	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9cd4b64e	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa7fc5808	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab2e88d5	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xabf0ed4b	usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb07ff35c	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xda635930	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf785cb78	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 0x3db625dc	w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xb226600a	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 0x22e3fb17	extract_attr_from_ios
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x42471706	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0x4bc9dfbd	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0x51c9797e	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0x6899fbae	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0x6acb9e16	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x72f86ee5	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xb933ae97	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0xd76012e7	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0xff464b9b	ore_write
+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 0x23ee3e21	destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x8cd768f2	make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x05423927	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x0b54878d	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x0d63978c	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x10157a25	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x177230ce	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x18818a7a	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1ac6bc07	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x4834bd38	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x48fb0d16	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x4c6aa3ae	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0x4f3dfe86	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x5347ad5f	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x538e67a0	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x65beff58	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x68fec492	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x85377d14	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x8991c665	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x9491d102	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x96cbbbd8	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9cf91d11	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xa11209f6	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa5aa3586	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0xa6bb9b84	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xa7048681	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xab9dc85e	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xae8771a0	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xb610f99f	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xb6b712c7	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xbe17681f	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0xbf6a2ab2	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc77086b8	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xd2b1d70f	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xd6326a87	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0xd8cf9d18	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe9fa2b0d	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0xf44ba6a3	p9_client_stat
+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/9p/9pnet 0xfe1df685	p9_client_write
+EXPORT_SYMBOL net/appletalk/appletalk 0x4d86ae86	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x6fa7bba3	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x9938bd29	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xe313037a	atalk_find_dev_addr
+EXPORT_SYMBOL net/atm/atm 0x0de2c440	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x14c8bada	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x3b17453f	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x47aa5d2d	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x5f369401	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x653793a3	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x6bcb1ca5	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0x7e67315f	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x93136f41	vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa601f1ce	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb6ff3608	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xbda5e216	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0xc7371124	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xe70eba95	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x0646c258	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9	ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x4452f146	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a	asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x47461a20	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314	ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x49fe4920	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff	ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x595a0254	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x7ceee1ff	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x7dccafa6	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xca91beae	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xffd37995	ax25_send_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x02f64936	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x086cae05	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0b0a8e3a	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f5cf4a5	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x161a5795	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b34de06	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b4cf46d	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1da904ce	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d8a9246	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f9ad1a1	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x34caede5	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x35110b22	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x38d0da33	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3954f273	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5900a638	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ae371f7	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5aef7484	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x81c94d0e	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a1b4734	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8cd84b71	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x92277ba3	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x93620a8d	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x96a37aa0	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3113cdc	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa60a7a5d	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa832df17	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaecbc258	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaed82cc2	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3793e6d	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb70f27a0	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbae40adb	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe793422	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1ad3415	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5fafde8	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc5f6ed5	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf5705848	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6a0563d	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7a620f0	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7b7fd7b	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd5d1bff	bt_sock_link
+EXPORT_SYMBOL net/bridge/bridge 0x38f33908	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6d60d5db	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xde229999	ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xea3abc35	ebt_do_table
+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 0x54609620	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x5807d88d	caif_free_client
+EXPORT_SYMBOL net/caif/caif 0x63e9812a	cfcnfg_set_phy_state
+EXPORT_SYMBOL net/caif/caif 0x81e65920	caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0xcfe8978b	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0xdb8d11e6	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/can/can 0x135f2e4a	can_ioctl
+EXPORT_SYMBOL net/can/can 0x392f0036	can_proto_register
+EXPORT_SYMBOL net/can/can 0x5a86fdac	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x8b8ac103	can_rx_register
+EXPORT_SYMBOL net/can/can 0xfbc7e543	can_send
+EXPORT_SYMBOL net/can/can 0xfe7ec730	can_proto_unregister
+EXPORT_SYMBOL net/ceph/libceph 0x0100bde2	ceph_con_open
+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 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 0x13b37e18	ceph_con_close
+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 0x275ee54a	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x2a2fad6c	ceph_calc_raw_layout
+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 0x3d2d8260	ceph_con_init
+EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a	ceph_destroy_options
+EXPORT_SYMBOL net/ceph/libceph 0x3f0c93a0	ceph_osdc_init
+EXPORT_SYMBOL net/ceph/libceph 0x40f17361	ceph_msg_new
+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 0x716b6d1c	ceph_create_client
+EXPORT_SYMBOL net/ceph/libceph 0x72ad94bf	ceph_messenger_destroy
+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 0x84ff8203	ceph_con_keepalive
+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 0xaee7f548	ceph_get_direct_page_vector
+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 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 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 0xdb9ccfad	ceph_messenger_create
+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 0xf59f0e76	ceph_client_id
+EXPORT_SYMBOL net/ceph/libceph 0xf6ca37dd	ceph_copy_user_to_page_vector
+EXPORT_SYMBOL net/ceph/libceph 0xf984d311	ceph_con_send
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0c1cdbcc	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0f684f64	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x15da9ca9	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2488c2a9	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a31aa04	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x46ffccc1	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x49c44704	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x541c0d6d	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5c800fdf	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x63a3242e	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbda1485c	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcdc72b1e	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf7a2fe08	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x64aa727e	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc0ba9f36	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd813a035	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x44af410e	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6d846fa5	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd7c31c8f	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x111ca951	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1a1a92c3	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1a359f4e	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x30020403	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8ed9cb81	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b3c7ba9	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfa41e675	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/tunnel4 0x236e4cb8	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0x280acc22	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0e9a0afc	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3b39100e	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x463558b0	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa2b426a0	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x2a61de9e	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x2e40cd5f	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x62475a65	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xde375536	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x37698297	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4600f9e5	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5ada78ec	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6975ef6e	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa6be87be	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xce190b2c	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd6c89d81	ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe1d4d43d	ircomm_data_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 0x07d3647c	irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0bab6037	hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x0feae503	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x157fa0c1	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x192fad21	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23a2eee7	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x2489b26c	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x2b2b1540	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x2cc54db1	proc_irda
+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 0x3b1f08ea	iriap_close
+EXPORT_SYMBOL net/irda/irda 0x3b71c6c7	iriap_getvaluebyclass_request
+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 0x46c1c4a2	irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x47319335	irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x48d17824	irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x5163a779	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x52d6af43	irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x62acf28c	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x6417bee3	irlap_open
+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 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 0x8cd99be0	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x96c52f9b	irlmp_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 0xa370c681	hashbin_find
+EXPORT_SYMBOL net/irda/irda 0xa45cab70	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0xab4034aa	iriap_open
+EXPORT_SYMBOL net/irda/irda 0xad315a87	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xb3bf333f	irlmp_close_lsap
+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 0xbe562b82	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xc09b69cd	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xc0bee29c	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xc433f93a	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xd3566044	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xeb0596bb	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 0xf61dde9c	irlap_close
+EXPORT_SYMBOL net/irda/irda 0xf71bf95f	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xf766c9c7	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xf94e69b6	irda_device_set_media_busy
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x74cf7792	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x23515abf	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x2f000c8f	lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x4bee005f	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x66bd62e3	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x8a397677	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x9f730ff7	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0xc698bcf0	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xcb26fd08	lapb_data_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x0ced1071	ieee80211_alloc_hw
+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 0x205f57bd	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0x2298f3a6	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x29e6c8cc	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x2c22dd68	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ee72832	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x38879a54	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x3f2dd319	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x404b69f2	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x4254db92	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x43c0407f	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x4540df40	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0x486e1f40	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x4ddfd664	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x5977996f	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 0x61aee5b0	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554	ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x6452de57	ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71	ieee80211_sta_eosp_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f29b33e	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x71d7bb18	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x769959a7	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x7ab66dd8	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x81912a82	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x847a755a	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x85f3a3a4	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x8b0ee61e	__ieee80211_create_tpt_led_trigger
+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 0xa8ccc903	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa8efb16a	ieee80211_beacon_get_tim
+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 0xaa642586	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0xae119198	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xae8a998a	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb485558d	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb8cbbf3f	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xc4fd717b	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xc908855c	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xd6afdd5a	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0xdb198175	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xdbbd0c38	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xdfa8f95b	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xe09462b9	ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xe6626d47	ieee80211_rts_duration
+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 0xed275811	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xf2235751	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xf405c1eb	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe5759b1	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xff814534	ieee80211_queue_work
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x34ca13c2	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x35e0be9c	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x531da717	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8d225af6	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x97c013a3	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9dbee2c8	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa121134d	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa821ad71	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb59f0bc7	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe31e7a6a	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe8a836de	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xefab5130	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf29712a6	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf8eecbef	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb52d196e	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xc7a0aa8d	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd115a3db	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x7f3ea2a3	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x23ce14c4	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x4422a2d4	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6b69ec90	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x7a40ffd6	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x99fb5b15	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x9f56e69d	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xd168f8d4	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xd98ac22a	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xdeb3d0bc	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xfc206525	xt_unregister_match
+EXPORT_SYMBOL net/nfc/nci/nci 0x1256d57b	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x1cd4a7f6	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xa9f16229	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xba6a6e04	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0xc28d1922	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x51a581fa	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x5429b030	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0x6802b69e	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0x7bb7f1d1	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0x9528172c	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0xb0890fd8	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xdcbd0a49	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0xe87f24e1	nfc_class
+EXPORT_SYMBOL net/phonet/phonet 0x0f6f5a32	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x23a63e75	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x389c8784	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x4d9fae71	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x4e5cbfab	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x5ed41965	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xeae2f3cf	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xf34d01e2	phonet_proto_unregister
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e23cfae	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1efb2962	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x232deeaf	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x38dae660	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4180442b	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4457dbfa	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4db62c72	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x849d3b0e	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa43dd618	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc475e768	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca3915a5	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce32007e	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1c604a9	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xefd8203a	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf2fac491	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x4cf905fc	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xec6b0fa9	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x51af646a	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xb26cfd01	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x02962832	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x0587309e	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0b1afc06	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x107ec038	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0x15760ff7	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x15b88a00	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x1c8549b7	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x217a1371	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x223617b3	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x24b49586	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c9f862b	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x2f77e511	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x382ca0f6	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x3aef7d67	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4ae026a3	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x4bb3c021	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4bc3a371	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d1620f5	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x4fab77a7	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x50f7af53	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x5212020a	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5664f382	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x56c15133	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x66fa6958	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x6965ffba	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x7dd43c88	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x830a058d	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x83e0dda9	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x842e6eff	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x84ce3f33	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x8a4e1021	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x8a4e3e59	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x954853c7	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x95ac3fa6	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0xa106dfbc	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa31211e1	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xa7529a9b	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xa7f3224e	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xaaa48942	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1338365	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xbc4c6468	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xce3ad998	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xd0ab20d9	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xd338cd90	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xe64b9c9e	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xe69dd5fe	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xe718eb85	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0xe879f47e	cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xec7edb36	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xf046be81	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0xf2e21461	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46cd6c7	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xf718a0c8	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf9149146	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xfc36cbdf	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x0e903c01	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x63995d71	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8a1a23f1	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x9b1c1b6c	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xdf16e187	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xf68ecd2b	lib80211_crypt_info_free
+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 0x0018446d	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x001c8738	skb_find_text
+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 0x005e8c5e	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00806480	skb_clone
+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 0x00e1d542	mca_device_claimed
+EXPORT_SYMBOL vmlinux 0x00e7764f	generic_file_llseek
+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 0x00f96373	pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x010510e1	pci_map_biosrom
+EXPORT_SYMBOL vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL vmlinux 0x0152e76a	dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x0153280b	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x016b7e1e	dev_addr_add
+EXPORT_SYMBOL vmlinux 0x0173e5e1	genphy_read_status
+EXPORT_SYMBOL vmlinux 0x01814ae7	scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a691c4	vfs_open
+EXPORT_SYMBOL vmlinux 0x01d19038	acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01db2d25	arp_tbl
+EXPORT_SYMBOL vmlinux 0x0206742c	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL vmlinux 0x021451d3	sock_no_shutdown
+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 0x0237b57a	arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x024715e6	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x02649054	security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x02776a19	poll_freewait
+EXPORT_SYMBOL vmlinux 0x0287299d	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x029444f0	native_read_tsc
+EXPORT_SYMBOL vmlinux 0x0296752a	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x029f0c90	__ip_dev_find
+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 0x02e8f7a9	generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x03188c5b	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x03198660	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033ac5c0	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x034f9e73	param_ops_byte
+EXPORT_SYMBOL vmlinux 0x03525837	mpage_writepages
+EXPORT_SYMBOL vmlinux 0x03592ea0	security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0x0367b59a	dev_driver_string
+EXPORT_SYMBOL vmlinux 0x036ef560	ps2_end_command
+EXPORT_SYMBOL vmlinux 0x0373d795	ip4_datagram_connect
+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 0x03ff1b2a	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0455b30b	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x0486a2a4	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x0487f831	fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04937294	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x04a6dbab	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x04a8b81c	vfs_create
+EXPORT_SYMBOL vmlinux 0x04b70244	arp_invalidate
+EXPORT_SYMBOL vmlinux 0x04d01f6f	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x04d3a48b	key_type_keyring
+EXPORT_SYMBOL vmlinux 0x04d61487	scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04e5e855	set_user_nice
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x050e4091	mfd_cell_disable
+EXPORT_SYMBOL vmlinux 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x0523d006	mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x055a0995	pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x056e45f8	i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x058a56e9	blk_rq_init
+EXPORT_SYMBOL vmlinux 0x059422c8	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x05d08c5f	scsi_verify_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x05e6604a	udp_prot
+EXPORT_SYMBOL vmlinux 0x06127f07	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0x0612b6c1	fb_find_mode
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x0645afc7	netdev_alert
+EXPORT_SYMBOL vmlinux 0x0648a006	bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x065ec1c4	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x065fb357	pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x0664903c	scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x06701ed4	fasync_helper
+EXPORT_SYMBOL vmlinux 0x06732715	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06a16d6f	read_cache_page
+EXPORT_SYMBOL vmlinux 0x06a5bee9	submit_bio
+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 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12	generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x075d7a04	netlink_dump_start
+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 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 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 0x07e7c106	__napi_schedule
+EXPORT_SYMBOL vmlinux 0x08058ef9	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+EXPORT_SYMBOL vmlinux 0x082eaf42	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x0842e630	mii_check_link
+EXPORT_SYMBOL vmlinux 0x08482f84	file_update_time
+EXPORT_SYMBOL vmlinux 0x0848a364	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x08569031	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x08576ce9	i2c_release_client
+EXPORT_SYMBOL vmlinux 0x0879e880	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x0897287b	acpi_disable_all_gpes
+EXPORT_SYMBOL vmlinux 0x08bf826c	_raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x08d3f0be	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x09170b42	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x0933aae1	efi_enabled
+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 0x09b4a86a	bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x09b55930	__bread
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d0e990	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a58e022	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x0a5e14b5	bdi_destroy
+EXPORT_SYMBOL vmlinux 0x0a7ac13b	noop_qdisc
+EXPORT_SYMBOL vmlinux 0x0aa211ad	do_splice_from
+EXPORT_SYMBOL vmlinux 0x0aa427d0	lock_may_read
+EXPORT_SYMBOL vmlinux 0x0ab20f38	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x0ab592fd	key_unlink
+EXPORT_SYMBOL vmlinux 0x0ac5957e	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x0acb1a3c	__bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679	dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0ae1c1e3	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x0ae8257b	iunique
+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 0x0b2d898b	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x0b302f18	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x0b3f0963	of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0x0b4089cc	seq_lseek
+EXPORT_SYMBOL vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL vmlinux 0x0b4a678c	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x0b5394a0	xfrm_policy_delete
+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 0x0be698bf	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x0beacf77	security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x0c0f7ace	scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x0c3c6ddb	cdrom_open
+EXPORT_SYMBOL vmlinux 0x0c401d65	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x0c4f84c6	soft_cursor
+EXPORT_SYMBOL vmlinux 0x0c528ebe	textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x0c585791	mmc_flush_cache
+EXPORT_SYMBOL vmlinux 0x0c65e73c	scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99	scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c9415c1	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x0c9d13b3	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cb2284a	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x0cccf71e	dump_trace
+EXPORT_SYMBOL vmlinux 0x0d0c9fd7	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0d3dda14	acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d7780a9	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x0d9bc047	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x0da06219	kmap
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0da158b8	qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x0dacdb35	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x0dc5c7c0	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x0deec652	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x0df75bf1	simple_fill_super
+EXPORT_SYMBOL vmlinux 0x0e05117f	simple_statfs
+EXPORT_SYMBOL vmlinux 0x0e196b48	mnt_pin
+EXPORT_SYMBOL vmlinux 0x0e5233c6	pci_ltr_supported
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e6832e3	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x0e6dba84	devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x0e8173d4	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x0e8419cd	dev_printk
+EXPORT_SYMBOL vmlinux 0x0eb4a754	send_sig
+EXPORT_SYMBOL vmlinux 0x0ec3b9e9	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x0edfdd5f	pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x0f04d676	free_task
+EXPORT_SYMBOL vmlinux 0x0f1f2ce1	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x0f3a7565	d_set_d_op
+EXPORT_SYMBOL vmlinux 0x0f417060	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f701bcb	md_error
+EXPORT_SYMBOL vmlinux 0x0f7fa596	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x0f8475a2	kill_litter_super
+EXPORT_SYMBOL vmlinux 0x0f85d84d	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x0f99e3a8	free_inode_nonrcu
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0faf964d	bio_alloc
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fb1e80c	free_buffer_head
+EXPORT_SYMBOL vmlinux 0x0fcc1fb4	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x0fd00a68	acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fdde076	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0fe9a154	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x0fea70ae	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x101ac191	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x101f462c	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x102bddd0	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x102c56de	irq_regs
+EXPORT_SYMBOL vmlinux 0x103073c3	eth_mac_addr
+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 0x104f8bd8	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x1077607c	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x1085b463	load_nls
+EXPORT_SYMBOL vmlinux 0x10ab7e68	down_killable
+EXPORT_SYMBOL vmlinux 0x10af0c48	blk_requeue_request
+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 0x11267875	scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x112df9b6	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x1130507c	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x113dc5dd	padata_do_serial
+EXPORT_SYMBOL vmlinux 0x1145036f	skb_abort_seq_read
+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 0x117884bd	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x11834ae4	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x11944f72	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x11a1c1da	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x11a97f11	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x11dba971	unregister_nls
+EXPORT_SYMBOL vmlinux 0x11e2ec12	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x122178a5	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x12328b68	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x1269b7c4	sock_tx_timestamp
+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 0x12c592ce	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x12da5bb2	__kmalloc
+EXPORT_SYMBOL vmlinux 0x12eab777	scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x12ee50bd	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x131727f0	dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x132478dd	generic_setxattr
+EXPORT_SYMBOL vmlinux 0x13376f3d	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x1338485a	mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x136d3b7d	page_symlink
+EXPORT_SYMBOL vmlinux 0x13776b9a	journal_abort
+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 0x13e45561	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13f6a125	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x1417f0ac	dcb_getapp
+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 0x145a9a89	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x1463f923	aio_put_req
+EXPORT_SYMBOL vmlinux 0x14d662c7	agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x14e7ca7c	alloc_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x14ed938e	simple_release_fs
+EXPORT_SYMBOL vmlinux 0x154c6338	dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x1551dc51	bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1579277a	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x15919150	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x15a905cb	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x15b9b387	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x15ba638c	set_groups
+EXPORT_SYMBOL vmlinux 0x15d70e6a	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x15eae601	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x15fe82b7	tcp_gro_complete
+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 0x164ff09b	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x16527f16	fb_blank
+EXPORT_SYMBOL vmlinux 0x166bd4f5	tcp_close
+EXPORT_SYMBOL vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL vmlinux 0x168f1082	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x1695ada2	nla_reserve
+EXPORT_SYMBOL vmlinux 0x16ab4673	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16c84db1	blk_complete_request
+EXPORT_SYMBOL vmlinux 0x16cc8c3d	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x16f8a0cd	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x170b7850	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x170c25ee	acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x1720f1e1	poll_initwait
+EXPORT_SYMBOL vmlinux 0x1729de33	i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x17362eb2	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x173d8777	d_genocide
+EXPORT_SYMBOL vmlinux 0x17542626	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x1762f2e3	input_event
+EXPORT_SYMBOL vmlinux 0x17695f18	inet_put_port
+EXPORT_SYMBOL vmlinux 0x17906a70	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x1790d76b	_raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x179846f0	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x179ed813	pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x17a500e2	mmc_can_secure_erase_trim
+EXPORT_SYMBOL vmlinux 0x17dad4cb	tcp_read_sock
+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 0x1841b47e	xfrm_init_replay
+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 0x18790eb8	dquot_file_open
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18d66d9b	simple_setattr
+EXPORT_SYMBOL vmlinux 0x18f0c1b0	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x1939d966	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x194e8647	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x195a5816	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x195fccc9	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x19778805	pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x19912407	cpu_rmap_update
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a9e62b	complete
+EXPORT_SYMBOL vmlinux 0x19ad36ca	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19c87a83	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x19d86de7	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x19f179ff	path_get
+EXPORT_SYMBOL vmlinux 0x19f84061	get_disk
+EXPORT_SYMBOL vmlinux 0x1a3d1fd6	dev_getfirstbyhwtype
+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 0x1a672fa4	generic_show_options
+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 0x1b4f8bfb	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x1b6314fd	in_aton
+EXPORT_SYMBOL vmlinux 0x1b657770	dev_activate
+EXPORT_SYMBOL vmlinux 0x1b6887d8	simple_write_end
+EXPORT_SYMBOL vmlinux 0x1b7d5890	nf_afinfo
+EXPORT_SYMBOL vmlinux 0x1b8adebe	tcf_em_tree_destroy
+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 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 0x1c328ce8	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x1c5bd9fe	scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x1c72432b	block_write_end
+EXPORT_SYMBOL vmlinux 0x1c8a04b0	acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c991c32	pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x1c999beb	lookup_hash
+EXPORT_SYMBOL vmlinux 0x1cbbe7df	register_console
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1d0f2782	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x1d2793f4	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d5ffc98	__find_get_block
+EXPORT_SYMBOL vmlinux 0x1db1bec0	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dc8967f	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1df83af9	console_start
+EXPORT_SYMBOL vmlinux 0x1e047854	warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x1e08051f	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e290aea	dev_mc_flush
+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 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ec758a2	mount_bdev
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1efa5458	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x1f223091	__serio_register_port
+EXPORT_SYMBOL vmlinux 0x1f622d60	bio_put
+EXPORT_SYMBOL vmlinux 0x1f714abd	security_file_permission
+EXPORT_SYMBOL vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fede3b5	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x1ffc4c6e	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x203b4f08	inet_stream_ops
+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 0x206f4cea	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x2078dea4	brioctl_set
+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 0x20cbee3c	locks_init_lock
+EXPORT_SYMBOL vmlinux 0x20e34fad	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x20e7c478	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x20fe970d	vc_cons
+EXPORT_SYMBOL vmlinux 0x210cc814	proto_unregister
+EXPORT_SYMBOL vmlinux 0x210ef0fd	agp_copy_info
+EXPORT_SYMBOL vmlinux 0x211ed669	bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x212552b9	tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x2146ed24	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x215ebd78	bitrev16
+EXPORT_SYMBOL vmlinux 0x2163080c	blk_init_queue_node
+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 0x21b29ff3	vfs_getattr
+EXPORT_SYMBOL vmlinux 0x21d02b2d	scsi_remove_device
+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 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 0x227e35ae	secpath_dup
+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 0x22985c1a	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x22adbcf2	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22ef0774	pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x231b6f29	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x231d4001	fb_edid_add_monspecs
+EXPORT_SYMBOL vmlinux 0x233c1bc8	agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x23494a04	xfrm_input
+EXPORT_SYMBOL vmlinux 0x2352226f	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x23532c4d	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2375b79d	would_dump
+EXPORT_SYMBOL vmlinux 0x237ec7f6	mmc_request_done
+EXPORT_SYMBOL vmlinux 0x2397a07c	agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x239bf428	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23af1311	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x23c775dc	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23d39fc6	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0x23d8cdc2	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x23dd648b	register_snap_client
+EXPORT_SYMBOL vmlinux 0x23f8f9ac	sg_miter_next
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24219047	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x243d7e97	pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x244c797c	write_one_page
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x246a3f20	tty_port_put
+EXPORT_SYMBOL vmlinux 0x247f55e7	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x2482e688	vsprintf
+EXPORT_SYMBOL vmlinux 0x24be1d4a	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x24d8cfb0	journal_load
+EXPORT_SYMBOL vmlinux 0x24f169fc	down_read_trylock
+EXPORT_SYMBOL vmlinux 0x24f1df0a	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x24f28072	sk_stream_wait_close
+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 0x254d6f63	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x255d57f6	pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x2567087c	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258fbd29	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x259c01c2	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x25af6d73	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x25b234cf	input_unregister_device
+EXPORT_SYMBOL vmlinux 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25c6b2c1	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x25dcc67c	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x25e0cf36	of_phy_connect
+EXPORT_SYMBOL vmlinux 0x262d5ed7	pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x2639d2e1	mntget
+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 0x26701776	dev_change_flags
+EXPORT_SYMBOL vmlinux 0x2675bab4	flush_signals
+EXPORT_SYMBOL vmlinux 0x2681cd56	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x26874f4e	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x268cc6a2	sys_close
+EXPORT_SYMBOL vmlinux 0x26a457ce	of_dev_put
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26edd1a3	phy_attach
+EXPORT_SYMBOL vmlinux 0x2702952d	dget_parent
+EXPORT_SYMBOL vmlinux 0x27073f8e	serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x271329c8	find_get_page
+EXPORT_SYMBOL vmlinux 0x271614a8	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x27252891	skb_checksum
+EXPORT_SYMBOL vmlinux 0x27255301	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x272b176c	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x272b6a45	scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x272d394e	mtrr_del
+EXPORT_SYMBOL vmlinux 0x275e7987	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x2767aafa	ihold
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x2788ef94	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0x278c7f37	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x279d8c8f	__elv_add_request
+EXPORT_SYMBOL vmlinux 0x27ae7d0c	ec_transaction
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27bca434	pci_get_domain_bus_and_slot
+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 0x27fe05e7	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x280fb3ec	devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x28258063	jbd2_journal_get_undo_access
+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 0x28ae7f71	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x28b715a6	isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x292093f4	native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29393660	netdev_info
+EXPORT_SYMBOL vmlinux 0x29398c09	arp_xmit
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x295db419	x86_hyper
+EXPORT_SYMBOL vmlinux 0x2966544c	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x298061da	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x298f052b	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x299145ff	pm860x_page_bulk_write
+EXPORT_SYMBOL vmlinux 0x29935003	scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x29b0aefe	dm_io
+EXPORT_SYMBOL vmlinux 0x29b1c366	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29ba4573	generic_write_end
+EXPORT_SYMBOL vmlinux 0x29fdda53	kstrtos8_from_user
+EXPORT_SYMBOL vmlinux 0x2a04df88	mmc_can_sanitize
+EXPORT_SYMBOL vmlinux 0x2a0a4f76	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x2a303d4d	check_signature
+EXPORT_SYMBOL vmlinux 0x2a360729	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x2a37d83e	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0x2a581ac2	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0x2a5c69dd	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x2a6e1c3f	acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2ad7e685	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x2adeec3c	module_layout
+EXPORT_SYMBOL vmlinux 0x2af51a1c	dma_supported
+EXPORT_SYMBOL vmlinux 0x2b048bc9	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2782a5	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x2b282a4b	ps2_command
+EXPORT_SYMBOL vmlinux 0x2b28b874	con_is_bound
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b516290	journal_forget
+EXPORT_SYMBOL vmlinux 0x2b62ac54	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x2b646069	set_security_override
+EXPORT_SYMBOL vmlinux 0x2b6c310a	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x2b960ad6	mark_buffer_dirty
+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 0x2bc0204f	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x2bc95bd4	memset
+EXPORT_SYMBOL vmlinux 0x2bca1d75	skb_unlink
+EXPORT_SYMBOL vmlinux 0x2be89477	journal_destroy
+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 0x2c1d0c83	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL vmlinux 0x2c642713	set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x2c8ab037	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x2c8f42f0	skb_split
+EXPORT_SYMBOL vmlinux 0x2ca27c44	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x2ca8bb44	sock_create_kern
+EXPORT_SYMBOL vmlinux 0x2cb250c3	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x2cd2ec1c	kern_path
+EXPORT_SYMBOL vmlinux 0x2cd86d22	kill_pgrp
+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 0x2d6d872f	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x2d89342a	scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2dababa7	dm_get_device
+EXPORT_SYMBOL vmlinux 0x2db2f25e	of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x2dbeaae8	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x2dd16564	arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dd800f0	find_get_pages_contig
+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 0x2df9a27c	proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x2e03d27a	ns_capable
+EXPORT_SYMBOL vmlinux 0x2e1f5efb	lookup_one_len
+EXPORT_SYMBOL vmlinux 0x2e226b11	__rta_fill
+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 0x2e754ae2	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x2e7574d5	bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x2ea7d424	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x2eabaf20	of_get_mac_address
+EXPORT_SYMBOL vmlinux 0x2eb03147	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2edbe510	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x2eeceb42	sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x2ef5eb87	unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x2ef63ad6	scsi_dev_info_list_del_keyed
+EXPORT_SYMBOL vmlinux 0x2efd88cd	atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x2f03fc4b	security_secmark_refcount_inc
+EXPORT_SYMBOL vmlinux 0x2f1ba0f2	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x2f287f0d	copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f34abb4	mmc_remove_host
+EXPORT_SYMBOL vmlinux 0x2f4d753f	pskb_copy
+EXPORT_SYMBOL vmlinux 0x2f65d4a0	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x2f9c87db	md_write_end
+EXPORT_SYMBOL vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL vmlinux 0x2fca59af	agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x2fccb355	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x2fcde7cd	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x2fd458ef	skb_recycle_check
+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 0x303032b1	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x304ce645	generic_setlease
+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 0x30a49bfc	elv_add_request
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL vmlinux 0x30c25a13	vfs_readlink
+EXPORT_SYMBOL vmlinux 0x30cada8f	radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x30d70fa9	of_get_pci_address
+EXPORT_SYMBOL vmlinux 0x30dbf584	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x30ddc063	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x310917fe	sort
+EXPORT_SYMBOL vmlinux 0x312d27d0	kmem_cache_alloc_trace
+EXPORT_SYMBOL vmlinux 0x31441544	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31d9a34c	skb_pad
+EXPORT_SYMBOL vmlinux 0x31e5ab1b	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x31e76b57	recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL vmlinux 0x31f7290a	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x31f9b663	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x320c2d79	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x324d994e	mca_device_write_pos
+EXPORT_SYMBOL vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL vmlinux 0x326dbb63	flush_old_exec
+EXPORT_SYMBOL vmlinux 0x32a92d2e	vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x32c1b956	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x32cea339	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x32d325fb	phy_find_first
+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 0x32fa382b	netdev_state_change
+EXPORT_SYMBOL vmlinux 0x33200137	isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x33313f58	cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x334383a2	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x335c14e5	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x335efa15	udplite_prot
+EXPORT_SYMBOL vmlinux 0x337fb7f9	sock_i_ino
+EXPORT_SYMBOL vmlinux 0x338a4c14	find_or_create_page
+EXPORT_SYMBOL vmlinux 0x338c8b8c	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x33b4f002	blk_register_region
+EXPORT_SYMBOL vmlinux 0x33c0fbe1	mmc_add_host
+EXPORT_SYMBOL vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+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 0x346c2ba5	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+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 0x34a407bd	neigh_create
+EXPORT_SYMBOL vmlinux 0x34af99a8	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x34c265bf	atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34f135e8	md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x34f4fb3d	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x351e0759	security_path_unlink
+EXPORT_SYMBOL vmlinux 0x357634b9	locks_free_lock
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x359a5266	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x35af86fa	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x35b27ce9	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35d72bd8	__kmap_atomic
+EXPORT_SYMBOL vmlinux 0x35e2eecf	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x35f5509a	vfs_writev
+EXPORT_SYMBOL vmlinux 0x35f6fd22	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x35f8cdf7	inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x35fbd6a1	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x360b1afe	probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x3620604d	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x3629b463	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x362ef408	_copy_from_user
+EXPORT_SYMBOL vmlinux 0x36348996	__breadahead
+EXPORT_SYMBOL vmlinux 0x368d4acf	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x369cc001	mii_link_ok
+EXPORT_SYMBOL vmlinux 0x369ef0e4	elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x36a7d828	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x36aad357	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x36bd61bb	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x36d17c82	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f189d0	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x3713bc2b	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x372157ff	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x3748b113	agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0x3758b7db	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x37692a66	inet_shutdown
+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 0x37a4040b	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x37a6b879	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x37af6a79	tty_kref_put
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37c0b664	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0x37ceb460	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x37db8f19	dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37e74642	get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x37ea921e	vfsmount_lock_local_lock_cpu
+EXPORT_SYMBOL vmlinux 0x37ed3f23	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x37f614b7	__kfifo_len_r
+EXPORT_SYMBOL vmlinux 0x37fc34b7	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x37ff4c06	copy_from_user_overflow
+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 0x388f9128	xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x3894240b	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x389ebce1	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0x38ab10a1	scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38c76dbd	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x38d2a566	inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x38e1d7ec	scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x38ff8ad3	blkdev_get_by_dev
+EXPORT_SYMBOL vmlinux 0x3902b4a7	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x3922df32	register_con_driver
+EXPORT_SYMBOL vmlinux 0x39390bba	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x395ed285	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398f332b	netlink_unicast
+EXPORT_SYMBOL vmlinux 0x399bc714	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x39a055f3	acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0x39c0ad2f	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x39ea223b	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x39f21720	scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x39f68a9f	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x39f72db6	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x39fb69f3	make_EII_client
+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 0x3a2c0344	inet_sendpage
+EXPORT_SYMBOL vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL vmlinux 0x3a3c3ad2	vga_tryget
+EXPORT_SYMBOL vmlinux 0x3a42db5a	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x3a5d82f9	agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x3a68e691	alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x3a72fa49	dev_warn
+EXPORT_SYMBOL vmlinux 0x3a9991e9	generic_listxattr
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9c3358	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x3aa014b3	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3ae13aaf	request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x3ae86442	skb_checksum_help
+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 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3c07609d	give_up_console
+EXPORT_SYMBOL vmlinux 0x3c1520c9	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x3c188068	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3c2caead	seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x3c59a3e2	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x3c6226f6	tc_classify
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb6cfc1	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x3cd2d1c1	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3ce8d1a8	of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0x3ceb3766	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x3ceb90e7	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x3cf23865	mem_cgroup_update_page_stat
+EXPORT_SYMBOL vmlinux 0x3d4adcf8	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x3d536e08	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x3d5cb901	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x3d5f4f43	kernel_listen
+EXPORT_SYMBOL vmlinux 0x3d6700e9	netdev_rx_csum_fault
+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 0x3dfc897c	seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e0e9023	param_set_long
+EXPORT_SYMBOL vmlinux 0x3e1764a8	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8	acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e532efb	llc_sap_find
+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 0x3eafcb43	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3edd1f6c	tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x3efa7336	ll_rw_block
+EXPORT_SYMBOL vmlinux 0x3f046ec3	security_path_mknod
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f0c9482	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x3f2f0faf	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x3f42abf7	sock_wfree
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f47be13	redraw_screen
+EXPORT_SYMBOL vmlinux 0x3f59d7da	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x3f78491c	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x3f99fd77	pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x3f9f868f	__percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x3fa58ef8	wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3fd9da4b	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x3fe7f47e	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x40143cb2	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x4021bf11	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x4022c495	alloc_buffer_head
+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 0x406233a4	eth_header
+EXPORT_SYMBOL vmlinux 0x4064741d	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x406dda42	of_device_unregister
+EXPORT_SYMBOL vmlinux 0x4073bf37	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x40932e1f	tcp_check_req
+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 0x40e07b8b	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x412c229d	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x4159487a	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x4175bb6a	framebuffer_release
+EXPORT_SYMBOL vmlinux 0x4184d8a5	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41945631	bdi_register
+EXPORT_SYMBOL vmlinux 0x4199959d	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x419ad90b	acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x419ee6e8	idr_pre_get
+EXPORT_SYMBOL vmlinux 0x41d76953	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x41e21a27	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x420a71de	file_open_root
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x421dd6af	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x42224298	sscanf
+EXPORT_SYMBOL vmlinux 0x42294663	set_page_dirty
+EXPORT_SYMBOL vmlinux 0x4239de63	ida_init
+EXPORT_SYMBOL vmlinux 0x4247525a	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x4253980f	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x4255be62	i2c_smbus_write_i2c_block_data
+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 0x429d3d0d	have_submounts
+EXPORT_SYMBOL vmlinux 0x42a42ee2	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x42c3fa59	set_binfmt
+EXPORT_SYMBOL vmlinux 0x42e25e13	security_path_symlink
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x4322532d	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x43254fd3	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x432f2024	__bio_clone
+EXPORT_SYMBOL vmlinux 0x433206f7	tty_mutex
+EXPORT_SYMBOL vmlinux 0x43385ad9	acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x43529ebf	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x4390717c	skb_pull
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43ed17f6	__inet6_hash
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x44101d08	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x44147d78	ip_cmsg_recv
+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 0x44658fca	arp_send
+EXPORT_SYMBOL vmlinux 0x4489c623	sock_get_timestamp
+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 0x44c5b1cd	blk_start_queue
+EXPORT_SYMBOL vmlinux 0x44d58155	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x44da5384	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x44f1606d	down_trylock
+EXPORT_SYMBOL vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4550ba8a	register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4554e3aa	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x4557bedc	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x4558bff6	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x456c85bb	block_write_full_page_endio
+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 0x45a11b77	pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x45bd9efd	dm_table_put
+EXPORT_SYMBOL vmlinux 0x45d216b9	tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d694fd	do_sync_read
+EXPORT_SYMBOL vmlinux 0x45f1bb75	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x4605614a	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x4609a52d	of_device_is_available
+EXPORT_SYMBOL vmlinux 0x461cfc04	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x46214106	files_lglock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0x4624e145	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x4628887c	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x46391895	kill_block_super
+EXPORT_SYMBOL vmlinux 0x463eb8b0	pid_task
+EXPORT_SYMBOL vmlinux 0x4640ef85	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x466f5200	put_disk
+EXPORT_SYMBOL vmlinux 0x46b74fbc	security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x46c9f73c	security_path_rename
+EXPORT_SYMBOL vmlinux 0x46d819ca	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x46e7fb43	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x46ee27da	netpoll_setup
+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 0x47403220	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x4744ca2a	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x474b165e	icmp_send
+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 0x477ff229	pagecache_write_begin
+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 0x47a573ba	sk_stream_kill_queues
+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 0x47d650bb	input_alloc_absinfo
+EXPORT_SYMBOL vmlinux 0x47dbb215	agp_bridge
+EXPORT_SYMBOL vmlinux 0x47fbca01	security_sb_clone_mnt_opts
+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 0x4844d887	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x486d2f29	dqstats
+EXPORT_SYMBOL vmlinux 0x487648c0	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x48860b9d	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x488b51b0	padata_start
+EXPORT_SYMBOL vmlinux 0x4891cd01	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x4896ddaa	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x48a17620	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x48a771c5	cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48ae2992	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x48d25e60	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x48eb0c0d	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x48fde35c	module_refcount
+EXPORT_SYMBOL vmlinux 0x494e3393	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b46e08	bio_init
+EXPORT_SYMBOL vmlinux 0x49fa2fad	acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0x49fd9d79	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a64f741	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x4a9f8127	neigh_update
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+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 0x4b1f372f	tcp_poll
+EXPORT_SYMBOL vmlinux 0x4b1f44ea	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x4b2c24ac	submit_bh
+EXPORT_SYMBOL vmlinux 0x4b34fbf5	block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b376a6b	intel_gmch_probe
+EXPORT_SYMBOL vmlinux 0x4b3e4fc6	dm_register_target
+EXPORT_SYMBOL vmlinux 0x4b4be141	pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x4b5f47a2	dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x4b5fd49e	dm_kcopyd_do_callback
+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 0x4b8cd5cd	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x4b933869	phy_stop
+EXPORT_SYMBOL vmlinux 0x4bb9cc40	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x4bc4d5a5	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4be0b765	agp_alloc_bridge
+EXPORT_SYMBOL vmlinux 0x4bf66e65	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x4bf7b27d	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x4bf87f63	sock_create_lite
+EXPORT_SYMBOL vmlinux 0x4bfd46cf	eisa_bus_type
+EXPORT_SYMBOL vmlinux 0x4c1182cb	bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c11ca9f	efi
+EXPORT_SYMBOL vmlinux 0x4c1356b4	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x4c2ae700	strnstr
+EXPORT_SYMBOL vmlinux 0x4c45b37b	journal_restart
+EXPORT_SYMBOL vmlinux 0x4c4ec957	__quota_error
+EXPORT_SYMBOL vmlinux 0x4c9603b1	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x4c98c7a9	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x4cbb0181	pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ccf09ff	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d034ccc	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x4d1bafbb	max8998_write_reg
+EXPORT_SYMBOL vmlinux 0x4d20ddbc	atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d2e5732	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d52e41b	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x4d66c9d1	input_free_device
+EXPORT_SYMBOL vmlinux 0x4d7129b6	generic_make_request
+EXPORT_SYMBOL vmlinux 0x4d915960	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4dacd605	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x4dc22ef5	dev_alloc_skb
+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 0x4e08f7f3	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x4e0ba241	kern_path_create
+EXPORT_SYMBOL vmlinux 0x4e21999c	acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e29c7cb	idr_for_each
+EXPORT_SYMBOL vmlinux 0x4e31ad6e	aio_complete
+EXPORT_SYMBOL vmlinux 0x4e3567f7	match_int
+EXPORT_SYMBOL vmlinux 0x4e42d1e3	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x4e565c00	dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4eb0aefe	register_quota_format
+EXPORT_SYMBOL vmlinux 0x4eb11f1f	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x4ec118ea	inet6_release
+EXPORT_SYMBOL vmlinux 0x4ed9297e	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x4ed96df7	pci_find_capability
+EXPORT_SYMBOL vmlinux 0x4ee2a5a5	napi_complete
+EXPORT_SYMBOL vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f476e96	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f4e3ed8	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x4f51b152	kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x4f783f30	acpi_read
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe60ea5	update_region
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x501bb64d	xfrm_state_delete_tunnel
+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 0x50701c51	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x507a75ac	neigh_destroy
+EXPORT_SYMBOL vmlinux 0x509275d1	no_llseek
+EXPORT_SYMBOL vmlinux 0x50996403	__insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50ccd8e6	bio_clone
+EXPORT_SYMBOL vmlinux 0x50eedeb8	printk
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x51226035	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x513148a8	mount_subtree
+EXPORT_SYMBOL vmlinux 0x5134a9d2	mddev_congested
+EXPORT_SYMBOL vmlinux 0x5144cd45	backlight_force_update
+EXPORT_SYMBOL vmlinux 0x5152e605	memcmp
+EXPORT_SYMBOL vmlinux 0x5173805b	dump_seek
+EXPORT_SYMBOL vmlinux 0x51740cc9	i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x51782572	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x5186518f	profile_pc
+EXPORT_SYMBOL vmlinux 0x5188ff3c	fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x51917a58	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x51a1ca22	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x51b6f4e7	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x51ce5ad3	files_lglock_local_lock_cpu
+EXPORT_SYMBOL vmlinux 0x51d12d4e	acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51d471ad	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x51d816e4	seq_write
+EXPORT_SYMBOL vmlinux 0x51dce73b	xfrm_state_walk_init
+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 0x5236eb0f	__cleancache_init_fs
+EXPORT_SYMBOL vmlinux 0x524004ac	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x5240c261	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x52423a0c	ida_pre_get
+EXPORT_SYMBOL vmlinux 0x524353e7	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x52760ca9	getnstimeofday
+EXPORT_SYMBOL vmlinux 0x528700ae	sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x52896c4d	genl_register_family
+EXPORT_SYMBOL vmlinux 0x528c687b	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x528c709d	simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x52aed9dc	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52dbd916	tr_type_trans
+EXPORT_SYMBOL vmlinux 0x52e36d49	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x52e8c756	dev_get_flags
+EXPORT_SYMBOL vmlinux 0x52ebf701	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x52fc28b1	sk_dst_check
+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 0x5318c3ac	tcp_sync_mss
+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 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 0x53b2c758	genphy_suspend
+EXPORT_SYMBOL vmlinux 0x53b4b478	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x53bd1261	register_filesystem
+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 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x545e1496	init_task
+EXPORT_SYMBOL vmlinux 0x548e7706	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x54935666	acpi_os_read_port
+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 0x54bb09e1	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x54c1a3b6	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f7f206	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x55303869	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+EXPORT_SYMBOL vmlinux 0x554433e6	set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x55498a7c	dm_put_device
+EXPORT_SYMBOL vmlinux 0x5552b61f	set_pages_nx
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x559a84c5	udp_proc_register
+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 0x5601483a	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x5614b010	xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x5614c3ba	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x5615156c	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x56193c39	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5635ed7a	get_gendisk
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x56663c27	padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x566971a9	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x56a0030c	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x56ace4f4	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0x56b3f13a	request_firmware
+EXPORT_SYMBOL vmlinux 0x56b6b750	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x56b77ad3	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x56ba394b	set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x56c547e4	phy_driver_register
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56da0675	inet_getname
+EXPORT_SYMBOL vmlinux 0x56dfaad2	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x57212bce	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x573457f0	pci_enable_device
+EXPORT_SYMBOL vmlinux 0x5750e12b	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x57561594	generic_writepages
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57931c2e	d_lookup
+EXPORT_SYMBOL vmlinux 0x579fbcd2	cpu_possible_mask
+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 0x580d7cf4	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x5824bf3e	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x582d963d	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x5838f6c9	rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x583f848d	pci_set_master
+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 0x588f6e66	kernel_connect
+EXPORT_SYMBOL vmlinux 0x5892d54c	acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x58fef6f8	ist_info
+EXPORT_SYMBOL vmlinux 0x59187f5a	mdiobus_register
+EXPORT_SYMBOL vmlinux 0x592b59af	acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x592f6d66	cdev_del
+EXPORT_SYMBOL vmlinux 0x5931c44e	jbd2_journal_force_commit_nested
+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 0x59d4172a	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a	ioport_resource
+EXPORT_SYMBOL vmlinux 0x59dfd4b8	inet_frags_init
+EXPORT_SYMBOL vmlinux 0x59dfddb3	tty_hangup
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x59e8f154	ethtool_op_get_link
+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 0x5a78cde6	journal_ack_err
+EXPORT_SYMBOL vmlinux 0x5a894a33	pm860x_page_reg_write
+EXPORT_SYMBOL vmlinux 0x5ac1abbf	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x5ac376a5	acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5aca1179	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x5ad24ed2	max8998_bulk_write
+EXPORT_SYMBOL vmlinux 0x5ad6b5bc	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x5af85b25	tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x5b107742	get_fs_type
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b51c6a7	acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b7995a2	agp_enable
+EXPORT_SYMBOL vmlinux 0x5b88e8c9	atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5bacb17f	max8998_update_reg
+EXPORT_SYMBOL vmlinux 0x5be0384c	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0x5bf2710b	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x5bfe10f3	dquot_release
+EXPORT_SYMBOL vmlinux 0x5c088e02	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x5c1647e0	blk_start_request
+EXPORT_SYMBOL vmlinux 0x5c17ad53	dquot_resume
+EXPORT_SYMBOL vmlinux 0x5c265cba	sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c34c640	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0x5c3edd59	_raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c68705b	mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c734c15	tcp_connect
+EXPORT_SYMBOL vmlinux 0x5c7a5cac	mount_ns
+EXPORT_SYMBOL vmlinux 0x5c86d5e8	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x5c91ea61	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x5cc1fdb4	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x5ce8b6ef	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d631109	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x5d6651ca	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x5d7fd18d	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x5da7b8ef	end_writeback
+EXPORT_SYMBOL vmlinux 0x5dafcfc1	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x5db43a25	tcp_enter_memory_pressure
+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 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e8c9b32	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5eacdc8b	skb_put
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5ec5b20f	get_phy_device
+EXPORT_SYMBOL vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed353a5	skb_trim
+EXPORT_SYMBOL vmlinux 0x5ed79bf1	d_invalidate
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee34522	simple_getattr
+EXPORT_SYMBOL vmlinux 0x5ef5bae0	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f12014b	contig_page_data
+EXPORT_SYMBOL vmlinux 0x5f1bd579	mca_find_adapter
+EXPORT_SYMBOL vmlinux 0x5f27544a	mempool_destroy
+EXPORT_SYMBOL vmlinux 0x5f29e433	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x5f2ac3e8	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x5f4e281d	devm_ioremap
+EXPORT_SYMBOL vmlinux 0x5f52459e	nf_reinject
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f8e1801	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fe12e16	names_cachep
+EXPORT_SYMBOL vmlinux 0x5fe41fb6	percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x5fe79def	pci_release_regions
+EXPORT_SYMBOL vmlinux 0x5fe9a192	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x5ff42b08	acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x600087b4	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x600413ca	padata_stop
+EXPORT_SYMBOL vmlinux 0x600683d3	do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x600c36db	kill_pid
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x6020ea97	block_is_partially_uptodate
+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 0x604b41fa	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x607e0816	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x608ee889	tty_port_open
+EXPORT_SYMBOL vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL vmlinux 0x60b15fc7	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x60b2e38a	rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x60f3eda9	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x6103d43b	pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x6107b950	stop_tty
+EXPORT_SYMBOL vmlinux 0x6113fa32	scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x611ee5f8	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61305d31	vfs_unlink
+EXPORT_SYMBOL vmlinux 0x613d98a6	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0x6141ee9e	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x61536865	idr_destroy
+EXPORT_SYMBOL vmlinux 0x617263a0	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x61769417	dev_close
+EXPORT_SYMBOL vmlinux 0x6185406c	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x619b187b	add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x61a5bcb4	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x61b499e2	generic_file_open
+EXPORT_SYMBOL vmlinux 0x61b5ade0	down_write
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61b86117	of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x61db6f2e	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x61e87f9b	elv_rb_add
+EXPORT_SYMBOL vmlinux 0x61f58625	acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0x62049256	acpi_disable
+EXPORT_SYMBOL vmlinux 0x6213a6e7	sock_sendmsg
+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 0x626e73be	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x62718c0e	writeback_inodes_sb_nr
+EXPORT_SYMBOL vmlinux 0x62726f5a	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL vmlinux 0x627776e3	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x6277b38c	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x62827bec	security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x6287f711	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x6298dd7a	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x62b4cd27	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x62cb4cee	interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x62cd8754	__tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x62e02466	page_readlink
+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 0x636a5691	acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x637621ee	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x638a7e3c	register_framebuffer
+EXPORT_SYMBOL vmlinux 0x63b8fa3d	__d_drop
+EXPORT_SYMBOL vmlinux 0x63b935e8	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x63d05d75	do_splice_to
+EXPORT_SYMBOL vmlinux 0x63d285af	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x63dccc7f	input_grab_device
+EXPORT_SYMBOL vmlinux 0x63eb9355	panic_blink
+EXPORT_SYMBOL vmlinux 0x63ecad53	register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63ed0e47	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64078393	create_proc_entry
+EXPORT_SYMBOL vmlinux 0x64134a9d	cad_pid
+EXPORT_SYMBOL vmlinux 0x64330c8e	ppp_input_error
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x64467195	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x644e8cb7	genl_register_ops
+EXPORT_SYMBOL vmlinux 0x6459be16	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x646c40e0	neigh_lookup_nodev
+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 0x64a0fd91	__page_symlink
+EXPORT_SYMBOL vmlinux 0x64c003e1	blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x64c6af86	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x64e5170f	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x64eae7ad	set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x650332bb	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x65134b4b	thermal_zone_device_update
+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 0x654a27d7	migrate_page
+EXPORT_SYMBOL vmlinux 0x654b4c03	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x655f1ab0	set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6562d589	phy_device_register
+EXPORT_SYMBOL vmlinux 0x6563d7bf	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x656f5cec	sk_common_release
+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 0x65d7c1b0	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x65f624d4	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x6605f97f	flex_array_clear
+EXPORT_SYMBOL vmlinux 0x66355efc	vprintk
+EXPORT_SYMBOL vmlinux 0x6666f424	fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x66673195	scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x66821753	pci_disable_msi
+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 0x66d8254a	misc_deregister
+EXPORT_SYMBOL vmlinux 0x66dc068a	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x66f5c6af	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x67053080	current_kernel_time
+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 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 0x67db2c81	seq_open
+EXPORT_SYMBOL vmlinux 0x67f7403e	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x67fc1a82	scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x6813d994	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x683ec966	pci_get_class
+EXPORT_SYMBOL vmlinux 0x684fb14b	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x687b918e	fb_get_mode
+EXPORT_SYMBOL vmlinux 0x687efc30	nla_put
+EXPORT_SYMBOL vmlinux 0x68accbbe	kernel_bind
+EXPORT_SYMBOL vmlinux 0x68adb21b	pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x68bb767b	phy_connect
+EXPORT_SYMBOL vmlinux 0x68d8d192	user_revoke
+EXPORT_SYMBOL vmlinux 0x690d45dd	get_user_pages
+EXPORT_SYMBOL vmlinux 0x69231109	block_commit_write
+EXPORT_SYMBOL vmlinux 0x693685a2	mmc_hw_reset_check
+EXPORT_SYMBOL vmlinux 0x693e7a90	vm_insert_page
+EXPORT_SYMBOL vmlinux 0x69527d29	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL vmlinux 0x69984279	pcim_iomap
+EXPORT_SYMBOL vmlinux 0x69a0ca7d	iowrite16be
+EXPORT_SYMBOL vmlinux 0x69ad2f20	kstrtouint
+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 0x69e55ec5	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x69eb5214	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x69f1faac	bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a20d396	d_alloc
+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 0x6a71aded	d_instantiate
+EXPORT_SYMBOL vmlinux 0x6a738c93	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad2a191	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x6ad432a7	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x6ad85887	acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6ae4fa72	netdev_notice
+EXPORT_SYMBOL vmlinux 0x6af5aee5	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b286d64	__invalidate_device
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b529053	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x6b5ed3f9	mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x6b7f9ca5	follow_up
+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 0x6bb1fd0b	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc4fd4e	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320	strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c498457	proc_create_data
+EXPORT_SYMBOL vmlinux 0x6c52b412	sock_i_uid
+EXPORT_SYMBOL vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7	sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7d1341	touch_atime
+EXPORT_SYMBOL vmlinux 0x6ca50d67	mntput
+EXPORT_SYMBOL vmlinux 0x6cb03700	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x6cbfef9b	sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x6cdb3bdf	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf15fd0	bio_integrity_split
+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 0x6d2a9207	d_validate
+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 0x6d4985ad	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x6d4a2e78	set_pages_x
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d8688b8	put_page
+EXPORT_SYMBOL vmlinux 0x6d9ed5e8	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x6dbb4cb8	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x6ddfa755	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x6de66388	task_nice
+EXPORT_SYMBOL vmlinux 0x6ded6fb9	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6dff4957	alloc_trdev
+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 0x6e74e0b0	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x6e797aab	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x6e80e1e1	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x6e8534b4	bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ea04ea9	ilookup
+EXPORT_SYMBOL vmlinux 0x6ea211a7	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0x6ecfb08b	elevator_exit
+EXPORT_SYMBOL vmlinux 0x6ed408cc	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x6ef59dc6	simple_readpage
+EXPORT_SYMBOL vmlinux 0x6ef6cda5	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x6f03c778	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x6f34b0cb	dev_uc_init
+EXPORT_SYMBOL vmlinux 0x6f556bdb	acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f57c735	cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x6fa6e1c7	console_stop
+EXPORT_SYMBOL vmlinux 0x6fbed62d	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x6fc2d0a4	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fcfc3c6	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x6fdd92b6	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x6feb2039	acpi_write
+EXPORT_SYMBOL vmlinux 0x6fff393f	time_to_tm
+EXPORT_SYMBOL vmlinux 0x7038d632	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x703b4352	_raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x7048f712	request_key_async
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4	request_dma
+EXPORT_SYMBOL vmlinux 0x7057f4ba	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x706dd5f3	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x7081a241	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x708272f5	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x709c1b5a	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x709d6d85	pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x70b6e2ec	pci_match_id
+EXPORT_SYMBOL vmlinux 0x70bc17d7	inode_wait
+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 0x70dbbdb2	__register_binfmt
+EXPORT_SYMBOL vmlinux 0x70e6bfa3	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x70e701d1	writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x70f9b067	km_query
+EXPORT_SYMBOL vmlinux 0x70feda9e	journal_extend
+EXPORT_SYMBOL vmlinux 0x7114a71f	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x7129d30a	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x716372aa	eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x717a996e	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x7196f861	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71cf0c62	agp_free_memory
+EXPORT_SYMBOL vmlinux 0x71d3d317	generic_permission
+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 0x71f06acf	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x722121fc	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x7243d7e3	pm860x_page_set_bits
+EXPORT_SYMBOL vmlinux 0x724ae9f5	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x727f77c8	blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x7287a2ec	padata_set_cpumasks
+EXPORT_SYMBOL vmlinux 0x728eaffe	security_path_link
+EXPORT_SYMBOL vmlinux 0x729bddf6	get_agp_version
+EXPORT_SYMBOL vmlinux 0x729dfb15	kfree_skb
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72b191fb	__mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x72b243d4	free_dma
+EXPORT_SYMBOL vmlinux 0x72b3b956	__sk_mem_schedule
+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 0x72ef9022	unlock_page
+EXPORT_SYMBOL vmlinux 0x730a1a58	irq_set_chip
+EXPORT_SYMBOL vmlinux 0x730ff363	param_set_uint
+EXPORT_SYMBOL vmlinux 0x7311d914	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x731f4ffc	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x732b7833	irq_cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x733c3b54	kasprintf
+EXPORT_SYMBOL vmlinux 0x734598ca	of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL vmlinux 0x7362dd1e	vfs_fstat
+EXPORT_SYMBOL vmlinux 0x7367d411	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x736c79dc	param_get_byte
+EXPORT_SYMBOL vmlinux 0x737de5e9	radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x738803e6	strnlen
+EXPORT_SYMBOL vmlinux 0x7388503f	pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73af87c5	freeze_super
+EXPORT_SYMBOL vmlinux 0x73bb3646	block_truncate_page
+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 0x741ef868	init_net
+EXPORT_SYMBOL vmlinux 0x74354817	__pagevec_release
+EXPORT_SYMBOL vmlinux 0x743944bc	filp_open
+EXPORT_SYMBOL vmlinux 0x7453580b	truncate_setsize
+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 0x749ca0a2	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74cc1cbe	unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74cd1f39	blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x74cdc2f3	skb_push
+EXPORT_SYMBOL vmlinux 0x74d80856	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x750458c0	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x751b2247	param_get_bool
+EXPORT_SYMBOL vmlinux 0x75271716	save_processor_state
+EXPORT_SYMBOL vmlinux 0x7530ab64	journal_flush
+EXPORT_SYMBOL vmlinux 0x7538b132	agp_off
+EXPORT_SYMBOL vmlinux 0x755b0bd7	of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x75707eec	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x7593d385	div64_s64
+EXPORT_SYMBOL vmlinux 0x75969a6c	softnet_data
+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 0x75c25081	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x75d87a0f	of_match_device
+EXPORT_SYMBOL vmlinux 0x75f46f74	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x75fe4254	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7615552f	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0x7628f3c7	this_cpu_off
+EXPORT_SYMBOL vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL vmlinux 0x764d7078	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x7651b132	vmap
+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 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 0x770a0036	isapnp_cfg_begin
+EXPORT_SYMBOL vmlinux 0x7710baa9	mutex_trylock
+EXPORT_SYMBOL vmlinux 0x77287266	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x7729c8a6	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x772f9eec	__percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x77690527	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x77702261	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x777539b7	cpu_info
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77a515f6	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77ca4083	filemap_fdatawait_range
+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 0x77ee4dca	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x77fa5d1f	ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x77fe2697	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x78120783	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x7844f13f	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x784d4632	follow_pfn
+EXPORT_SYMBOL vmlinux 0x78536de6	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL vmlinux 0x788fe103	iomem_resource
+EXPORT_SYMBOL vmlinux 0x78bb2011	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0x78df6bd7	no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e014dc	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x78ee6b2e	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x79068fda	acpi_install_method
+EXPORT_SYMBOL vmlinux 0x7911718c	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x7926565b	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x797eaf02	seq_read
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79b3c5a7	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x79c6efcd	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x79d7861f	init_buffer
+EXPORT_SYMBOL vmlinux 0x79de8570	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x79eab265	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x79f5938d	d_rehash
+EXPORT_SYMBOL vmlinux 0x7a0795b8	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a2387f2	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+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 0x7a9bf88d	udplite_table
+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 0x7ae4c9a9	arp_find
+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 0x7b0f76ad	filp_close
+EXPORT_SYMBOL vmlinux 0x7b134ddf	acpi_get_name
+EXPORT_SYMBOL vmlinux 0x7b140dfe	netlink_ack
+EXPORT_SYMBOL vmlinux 0x7b15afae	of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x7b29c9a5	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x7b4763be	acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x7b52a859	wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05	acpi_lid_notifier_register
+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 0x7bd1faf4	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x7c0edd7d	acpi_check_region
+EXPORT_SYMBOL vmlinux 0x7c3afcca	sget
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c63bae0	llc_sap_open
+EXPORT_SYMBOL vmlinux 0x7c8513d6	ip_ct_attach
+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 0x7cfa45f3	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x7d081565	follow_down
+EXPORT_SYMBOL vmlinux 0x7d11c268	jiffies
+EXPORT_SYMBOL vmlinux 0x7d14172e	pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0x7d19d595	unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x7d6ceeb5	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x7d714eab	shrink_dcache_sb
+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 0x7de14a17	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x7de866c7	proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e0d838a	pneigh_enqueue
+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 0x7e6499ed	__pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x7e95c3f9	pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7eb11c05	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x7ebb7615	vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x7ecb001b	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7ed95531	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x7edc1c40	nobh_truncate_page
+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 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f658e80	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0x7f8e4e80	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x7f9af672	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x7fa4f434	vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0x7faee74c	sock_create
+EXPORT_SYMBOL vmlinux 0x7feea3e9	md_write_start
+EXPORT_SYMBOL vmlinux 0x7feff644	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x800587d3	consume_skb
+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 0x807c987b	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x80a5ae09	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x80a64963	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x80b90c2f	sk_filter
+EXPORT_SYMBOL vmlinux 0x80d06543	mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x80e11443	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x80e27eae	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x80eab7b3	dquot_initialize
+EXPORT_SYMBOL vmlinux 0x80fd08f9	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x810b3618	param_ops_string
+EXPORT_SYMBOL vmlinux 0x81472677	acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730	nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x8150802a	tcp_splice_read
+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 0x8171fe30	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x817be3eb	of_i2c_register_devices
+EXPORT_SYMBOL vmlinux 0x819e1c25	acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x81a21051	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x81a28088	dump_write
+EXPORT_SYMBOL vmlinux 0x81a386e1	kobject_init
+EXPORT_SYMBOL vmlinux 0x81a5e22a	kobject_del
+EXPORT_SYMBOL vmlinux 0x81d10f5f	trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81d64f0b	do_splice_direct
+EXPORT_SYMBOL vmlinux 0x81db6ebb	xz_dec_reset
+EXPORT_SYMBOL vmlinux 0x81e6b37f	dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82034bdc	posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL vmlinux 0x821fdea4	dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x8235805b	memmove
+EXPORT_SYMBOL vmlinux 0x823b64f0	__dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x8248a27a	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x8251bcc3	bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x825fa449	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x8260686f	bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262142e	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x8284bb24	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x828d2aed	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x8290b9ca	journal_errno
+EXPORT_SYMBOL vmlinux 0x82aabad3	user_path_create
+EXPORT_SYMBOL vmlinux 0x82acfb70	blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82d3be92	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x82d8884a	ip_defrag
+EXPORT_SYMBOL vmlinux 0x82f5df10	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x8312092e	dput
+EXPORT_SYMBOL vmlinux 0x8326bba9	sock_release
+EXPORT_SYMBOL vmlinux 0x8327bc0d	inet_csk_accept
+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 0x835ed661	register_netdevice
+EXPORT_SYMBOL vmlinux 0x836873a2	proc_dointvec
+EXPORT_SYMBOL vmlinux 0x8377f149	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x83800bfa	kref_init
+EXPORT_SYMBOL vmlinux 0x8384a2c5	tty_unlock
+EXPORT_SYMBOL vmlinux 0x839d2d4f	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x83a08017	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x83a476ce	bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b67480	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x83e8c76b	sk_free
+EXPORT_SYMBOL vmlinux 0x841181c2	may_umount
+EXPORT_SYMBOL vmlinux 0x84139cc8	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x8417f512	acpi_update_all_gpes
+EXPORT_SYMBOL vmlinux 0x8424ee32	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x8429329b	simple_rename
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x8450aeee	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x84a31ba3	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x84be886f	completion_done
+EXPORT_SYMBOL vmlinux 0x8522b8f4	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x8540ad96	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x85561743	scsi_host_get
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856f2c02	pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x8591fe53	inet_sk_rebuild_header
+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 0x860406fc	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x862d05b6	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x863bb0fe	jbd2_journal_load
+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 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 0x86ce0af7	skb_insert
+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 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 0x873a2b30	thaw_process
+EXPORT_SYMBOL vmlinux 0x87573789	security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x876cc60b	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x876dafc3	ec_write
+EXPORT_SYMBOL vmlinux 0x877ed139	set_create_files_as
+EXPORT_SYMBOL vmlinux 0x8784fc83	genl_unregister_family
+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 0x87c06997	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x8834c2e2	serio_interrupt
+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 0x88dd397e	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x88e5a094	pci_choose_state
+EXPORT_SYMBOL vmlinux 0x88e88136	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x88ed0505	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x88f90839	skb_copy
+EXPORT_SYMBOL vmlinux 0x89135239	qdisc_watchdog_cancel
+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 0x89513297	lock_rename
+EXPORT_SYMBOL vmlinux 0x89604a0c	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x896062db	key_validate
+EXPORT_SYMBOL vmlinux 0x8964fb8c	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x896d4b80	of_node_get
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x898a54d4	bdevname
+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 0x89c7eba1	journal_wipe
+EXPORT_SYMBOL vmlinux 0x89d5538d	fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811	build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89da4432	of_iomap
+EXPORT_SYMBOL vmlinux 0x8a147878	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x8a1615d6	mempool_create_node
+EXPORT_SYMBOL vmlinux 0x8a1960fb	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x8a1ecd51	sk_alloc
+EXPORT_SYMBOL vmlinux 0x8a32fae0	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x8a4794a7	phy_start
+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 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a93b57a	ida_destroy
+EXPORT_SYMBOL vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aca8ba8	inode_permission
+EXPORT_SYMBOL vmlinux 0x8ae9b2e7	kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x8af751cc	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x8b18496f	__copy_to_user_ll
+EXPORT_SYMBOL vmlinux 0x8b1a7a66	pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b391e8e	jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x8b4336b0	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x8b57d39e	may_umount_tree
+EXPORT_SYMBOL vmlinux 0x8b5a91fd	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b6c5163	module_put
+EXPORT_SYMBOL vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bd5a328	mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x8bea377c	bio_copy_user
+EXPORT_SYMBOL vmlinux 0x8c0425f6	fsnotify_alloc_group
+EXPORT_SYMBOL vmlinux 0x8c0f9422	security_inode_permission
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c43d037	in6_dev_finish_destroy
+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 0x8cb325f2	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x8cc4f7fd	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8d098e3b	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x8d3cd3e5	pci_try_set_mwi
+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 0x8d6f81b4	__div64_32
+EXPORT_SYMBOL vmlinux 0x8d76da4e	__xfrm_route_forward
+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 0x8dfc655a	vfs_link
+EXPORT_SYMBOL vmlinux 0x8e002cda	acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+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 0x8e6b167f	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x8e75a30b	kset_unregister
+EXPORT_SYMBOL vmlinux 0x8e7b03c6	gnet_stats_finish_copy
+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 0x8ed5b483	unregister_key_type
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef0b561	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x8ef7b441	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f3fe09b	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f7192fb	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x8f7ab03d	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x8f9c199c	__get_user_2
+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 0x8fed371e	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x8ff4079b	pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x902ab9c9	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x902d12b2	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x904409c6	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x90453b6d	sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x9082c813	dqget
+EXPORT_SYMBOL vmlinux 0x90a1601f	dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90aaf35f	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x90b75d1c	netdev_err
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90e90126	current_task
+EXPORT_SYMBOL vmlinux 0x90f13632	proc_dostring
+EXPORT_SYMBOL vmlinux 0x90ff8b2f	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x910fe1d6	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x912dc521	phy_driver_unregister
+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 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 0x91a71f2d	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0x91b07479	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x91bccd99	dst_release
+EXPORT_SYMBOL vmlinux 0x920f7426	dst_destroy
+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 0x924af895	ethtool_op_set_ufo
+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 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x93229fb6	register_gifconf
+EXPORT_SYMBOL vmlinux 0x932dcd55	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x9330cb9f	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x93341504	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x93475c2f	journal_update_format
+EXPORT_SYMBOL vmlinux 0x9354233a	deactivate_super
+EXPORT_SYMBOL vmlinux 0x935b0441	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x9371f83b	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x93837f36	kern_unmount
+EXPORT_SYMBOL vmlinux 0x939697b8	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x93a13618	kernel_read
+EXPORT_SYMBOL vmlinux 0x93a2c725	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93c651be	acpi_info
+EXPORT_SYMBOL vmlinux 0x93d4fa68	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x93dbbc7d	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x93ecea78	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x93f00ed3	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x941177ba	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x941ed3f8	prepare_creds
+EXPORT_SYMBOL vmlinux 0x942cdc64	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x9442906d	security_file_mmap
+EXPORT_SYMBOL vmlinux 0x94522658	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x94604bf6	tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x94645a07	blkdev_put
+EXPORT_SYMBOL vmlinux 0x9474c029	wireless_send_event
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x949e87f8	f_setown
+EXPORT_SYMBOL vmlinux 0x94b541b5	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94c2aa6b	d_find_alias
+EXPORT_SYMBOL vmlinux 0x94c4302e	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0x950505af	dev_alert
+EXPORT_SYMBOL vmlinux 0x9526b85f	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x952a36e2	ilookup5
+EXPORT_SYMBOL vmlinux 0x9534eb0f	scsi_init_io
+EXPORT_SYMBOL vmlinux 0x953db383	free_irq_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x954488a4	syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d	tasklet_init
+EXPORT_SYMBOL vmlinux 0x954788b1	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x955e1ef5	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0x9568ba00	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x956e9574	ppp_input
+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 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 0x962818da	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x96315bb1	ip6_frag_init
+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 0x965d9004	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x96754501	journal_revoke
+EXPORT_SYMBOL vmlinux 0x96783cf6	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x968e5885	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x9696ac72	rename_lock
+EXPORT_SYMBOL vmlinux 0x969b26bc	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x96a592f6	seq_puts
+EXPORT_SYMBOL vmlinux 0x96aba801	simple_lookup
+EXPORT_SYMBOL vmlinux 0x96c47101	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0x96c7e43b	seq_printf
+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 0x970c7274	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x973544ff	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97803f93	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x978483a1	gnet_stats_copy_app
+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 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97b08b65	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x97b4e015	generic_write_checks
+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 0x97fa9a78	eth_header_cache
+EXPORT_SYMBOL vmlinux 0x98077cf1	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x980a7d82	md_integrity_register
+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 0x98450840	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x985fb121	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0x9863596c	__generic_block_fiemap
+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 0x98a02b04	of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x98b316c4	tcp_create_openreq_child
+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 0x997702cb	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x9989179f	__cleancache_init_shared_fs
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99b789d7	pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x99bfbe39	get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99cdc86b	sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99e920c2	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x99eb17e2	sock_no_poll
+EXPORT_SYMBOL vmlinux 0x99f2cdb0	mount_nodev
+EXPORT_SYMBOL vmlinux 0x99ffd839	find_vma
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a525cb6	pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x9a566ec9	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x9a5a0e3c	__cleancache_put_page
+EXPORT_SYMBOL vmlinux 0x9a5e82dc	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x9a6a83f9	cmos_lock
+EXPORT_SYMBOL vmlinux 0x9aa697e2	input_close_device
+EXPORT_SYMBOL vmlinux 0x9aa9075a	udp_poll
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9b01d77f	fget
+EXPORT_SYMBOL vmlinux 0x9b0573a3	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x9b2cc33d	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b38d83c	block_write_begin
+EXPORT_SYMBOL vmlinux 0x9b3d0eca	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x9b493d7e	ip6_frag_match
+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 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 0x9c12307d	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x9c23bcba	atomic64_add_return_cx8
+EXPORT_SYMBOL vmlinux 0x9c25e052	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x9c2c944a	__copy_from_user_ll_nocache_nozero
+EXPORT_SYMBOL vmlinux 0x9c364d67	serial8250_set_isa_configurator
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c80ef45	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x9c8aab7b	dquot_disable
+EXPORT_SYMBOL vmlinux 0x9c8ecd26	abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc351b2	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x9cd86036	udp_lib_getsockopt
+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 0x9d166657	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x9d1bcbfb	find_inode_number
+EXPORT_SYMBOL vmlinux 0x9d1d47ce	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x9d225b97	ppp_output_wakeup
+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 0x9d79807e	mdiobus_write
+EXPORT_SYMBOL vmlinux 0x9d914d11	km_policy_notify
+EXPORT_SYMBOL vmlinux 0x9dbb922b	I_BDEV
+EXPORT_SYMBOL vmlinux 0x9dc10861	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x9dc359fa	agp_generic_enable
+EXPORT_SYMBOL vmlinux 0x9dcb6748	atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e2000a7	memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e363b6b	acpi_disable_gpe
+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 0x9e7ae475	__dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e8d6946	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ead857c	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x9ec0d8d0	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x9ec16bb2	kick_iocb
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9ee79184	km_state_notify
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f3a0236	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f491e5d	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x9f874e24	jbd2_journal_start_commit
+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 0x9ff0acb9	pci_iounmap
+EXPORT_SYMBOL vmlinux 0xa01301ef	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0xa01be056	__neigh_event_send
+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 0xa09c0e21	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51	out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d0ff93	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xa0d94185	shrink_dcache_parent
+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 0xa1244155	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xa14135e6	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa1586f79	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xa1678d9f	vfs_mkdir
+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 0xa1c7d114	dev_get_stats
+EXPORT_SYMBOL vmlinux 0xa1f61226	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xa1f9cb98	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa2385740	pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xa23d3439	vfs_readdir
+EXPORT_SYMBOL vmlinux 0xa2426fdc	ata_print_version
+EXPORT_SYMBOL vmlinux 0xa2476bd5	inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa267fb98	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa2e441e1	journal_dirty_metadata
+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 0xa337d8b5	mapping_tagged
+EXPORT_SYMBOL vmlinux 0xa34c4af3	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xa34f1ef5	crc32_le
+EXPORT_SYMBOL vmlinux 0xa3504378	rwsem_wake
+EXPORT_SYMBOL vmlinux 0xa350a8f8	set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa35de80f	ipv4_config
+EXPORT_SYMBOL vmlinux 0xa363dab4	udp_table
+EXPORT_SYMBOL vmlinux 0xa37e74f4	try_to_release_page
+EXPORT_SYMBOL vmlinux 0xa380fb0b	get_io_context
+EXPORT_SYMBOL vmlinux 0xa3cea1a6	__put_cred
+EXPORT_SYMBOL vmlinux 0xa3dbf4dd	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xa407af7c	register_cdrom
+EXPORT_SYMBOL vmlinux 0xa42d0c7f	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0xa430a805	filemap_flush
+EXPORT_SYMBOL vmlinux 0xa431a2e2	vfs_write
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa4419f69	tty_register_driver
+EXPORT_SYMBOL vmlinux 0xa452e37b	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xa46ad91e	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xa474702f	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xa48398f1	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xa489fb69	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xa4af3149	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4bdbd4e	bioset_create
+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 0xa4e61c5a	ip_route_input_common
+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 0xa5206a5d	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xa5332a33	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0xa559d23f	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xa570dae7	elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0xa587e09d	pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xa58fbf16	fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a633b9	sg_last
+EXPORT_SYMBOL vmlinux 0xa5b2c232	bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xa5b7390b	d_splice_alias
+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 0xa5fc4670	__blk_end_request_cur
+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 0xa652c4ef	__kfifo_dma_in_prepare_r
+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 0xa6891c04	tcf_em_register
+EXPORT_SYMBOL vmlinux 0xa6940533	dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL vmlinux 0xa69cb171	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0xa6a08377	scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xa6a2aba2	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0xa6b13658	__percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xa6b1bda6	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xa6bb6c73	register_8022_client
+EXPORT_SYMBOL vmlinux 0xa6cbb1b5	log_wait_commit
+EXPORT_SYMBOL vmlinux 0xa6d5c220	mount_single
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71e7463	__first_cpu
+EXPORT_SYMBOL vmlinux 0xa7289e15	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xa732d47a	release_firmware
+EXPORT_SYMBOL vmlinux 0xa785fadd	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xa789faa2	iget5_locked
+EXPORT_SYMBOL vmlinux 0xa7a3e0b7	mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0xa7b0d86d	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xa7bbaa8a	proto_register
+EXPORT_SYMBOL vmlinux 0xa7c5f0bc	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xa7d62276	eisa_driver_unregister
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa849c7d5	inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa84dafa8	elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xa84f7748	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xa857090d	mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa875db81	kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0xa886f1be	dst_discard
+EXPORT_SYMBOL vmlinux 0xa88b8be9	generic_getxattr
+EXPORT_SYMBOL vmlinux 0xa8c67c8b	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xa8d0b51d	of_device_alloc
+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 0xa91b5561	acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa92e14e6	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xa9338dbe	nf_log_packet
+EXPORT_SYMBOL vmlinux 0xa93acd28	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa93e93ca	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xa95dfd2d	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xa967df2e	pci_assign_resource
+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 0xa9ad08b7	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xa9bd2676	__vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c73d14	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xa9f303f2	of_parse_phandle
+EXPORT_SYMBOL vmlinux 0xaa0168d4	unlock_rename
+EXPORT_SYMBOL vmlinux 0xaa0224ec	dev_mc_del
+EXPORT_SYMBOL vmlinux 0xaa32ae63	blk_init_queue
+EXPORT_SYMBOL vmlinux 0xaa5b84af	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xaa675a04	xfrm_policy_flush
+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 0xaaaa773c	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xaaaaacd1	ioremap_wc
+EXPORT_SYMBOL vmlinux 0xaaab8067	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaaae8cb5	d_alloc_name
+EXPORT_SYMBOL vmlinux 0xaab9f7e7	node_states
+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 0xab18bbba	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xab1c2237	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xab1f80e1	mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xab28271c	i8253_lock
+EXPORT_SYMBOL vmlinux 0xab2be17b	nla_append
+EXPORT_SYMBOL vmlinux 0xab46d7b4	dev_trans_start
+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 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 0xabf9d5bd	find_lock_page
+EXPORT_SYMBOL vmlinux 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac15c146	__alloc_skb
+EXPORT_SYMBOL vmlinux 0xac26849b	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0xac2bf50a	inode_init_always
+EXPORT_SYMBOL vmlinux 0xac3849c0	simple_empty
+EXPORT_SYMBOL vmlinux 0xac4dacce	bio_alloc_bioset
+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 0xac6d2f6b	ether_setup
+EXPORT_SYMBOL vmlinux 0xac723df8	inet_bind
+EXPORT_SYMBOL vmlinux 0xac88c0bc	pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0xac88ca72	ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xacc25f6d	pci_restore_state
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xacd7e446	netif_napi_add
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xacf75656	__napi_complete
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad07f027	gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0xad13c689	acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad3527c0	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad472ec6	blk_put_request
+EXPORT_SYMBOL vmlinux 0xad4ad08b	mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xad4ffe24	inet6_bind
+EXPORT_SYMBOL vmlinux 0xad550d84	set_bh_page
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad9d661a	__break_lease
+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 0xadf39c7a	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xadf42bd5	__request_region
+EXPORT_SYMBOL vmlinux 0xae020aab	mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xae172a47	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xae2128f4	acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0xae2f80da	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xae3b1edf	skb_make_writable
+EXPORT_SYMBOL vmlinux 0xae642582	__bforget
+EXPORT_SYMBOL vmlinux 0xae7bdf94	read_dev_sector
+EXPORT_SYMBOL vmlinux 0xae8e1daf	md_register_thread
+EXPORT_SYMBOL vmlinux 0xaea42d3d	serio_close
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaee51f68	elevator_init
+EXPORT_SYMBOL vmlinux 0xaf1ffd95	sg_miter_start
+EXPORT_SYMBOL vmlinux 0xaf245260	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc	scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf4b1540	acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xaf5b2245	iterate_mounts
+EXPORT_SYMBOL vmlinux 0xaf5f7994	remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf611eac	amd_nb_misc_ids
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xaf9f4844	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xafbda5ea	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xafe3d4ae	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb0207ecf	___ratelimit
+EXPORT_SYMBOL vmlinux 0xb0639919	mmc_free_host
+EXPORT_SYMBOL vmlinux 0xb06a8f17	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xb074659e	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xb077ef32	acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb08b6200	mem_map
+EXPORT_SYMBOL vmlinux 0xb0935111	journal_start
+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 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0f68410	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xb10e7fc7	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb12ae843	security_path_chown
+EXPORT_SYMBOL vmlinux 0xb1342214	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xb1347e7e	key_put
+EXPORT_SYMBOL vmlinux 0xb134d82a	cdev_add
+EXPORT_SYMBOL vmlinux 0xb1498a85	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xb17521bb	input_allocate_device
+EXPORT_SYMBOL vmlinux 0xb19760c3	bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1b920b0	kill_fasync
+EXPORT_SYMBOL vmlinux 0xb1bc4f90	tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22	rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1d9523e	wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb2068a77	register_netdev
+EXPORT_SYMBOL vmlinux 0xb2082d1e	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb219d72a	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xb22f2fa0	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0xb2556234	blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0xb25e0aea	ilookup5_nowait
+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 0xb28e6888	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xb2bd1954	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xb2c9163c	ata_link_printk
+EXPORT_SYMBOL vmlinux 0xb2d09b53	__blk_end_request
+EXPORT_SYMBOL vmlinux 0xb2d13b99	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0xb2e9da5f	posix_lock_file
+EXPORT_SYMBOL vmlinux 0xb2efb6be	mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL vmlinux 0xb3002019	mdiobus_unregister
+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 0xb31f3ce5	__netif_schedule
+EXPORT_SYMBOL vmlinux 0xb3284531	acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb3308861	tcp_valid_rtt_meas
+EXPORT_SYMBOL vmlinux 0xb34cb661	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xb34d4c2e	acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb352177e	find_first_bit
+EXPORT_SYMBOL vmlinux 0xb357f9aa	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xb35c06d6	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xb36238e6	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xb36ff992	scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0xb381b638	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3ac72cf	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xb3e0590d	acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb3f9cd45	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0xb3fe684b	km_report
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb4253bda	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xb4322ab7	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0xb4390f9a	mcount
+EXPORT_SYMBOL vmlinux 0xb43c1c7d	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0xb45578b8	memscan
+EXPORT_SYMBOL vmlinux 0xb4707334	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb49e20d8	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xb4af0dc7	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xb4cd6cb9	dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xb4cf8ce1	llc_add_pack
+EXPORT_SYMBOL vmlinux 0xb4e34966	padata_add_cpu
+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 0xb54db5f2	unlock_buffer
+EXPORT_SYMBOL vmlinux 0xb55f5ae2	get_write_access
+EXPORT_SYMBOL vmlinux 0xb5665f21	tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xb574d5c6	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xb58fc481	acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5b27378	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xb5ca1c46	slhc_free
+EXPORT_SYMBOL vmlinux 0xb5de3479	security_path_truncate
+EXPORT_SYMBOL vmlinux 0xb5e6eb08	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xb5ea0791	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xb5eecdb2	blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xb5fb870b	commit_creds
+EXPORT_SYMBOL vmlinux 0xb6007e1a	free_netdev
+EXPORT_SYMBOL vmlinux 0xb61d2073	xfrm_user_policy
+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 0xb6492730	do_mmap_pgoff
+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 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6d0f739	kunmap
+EXPORT_SYMBOL vmlinux 0xb6ed1e53	strncpy
+EXPORT_SYMBOL vmlinux 0xb7523526	max8925_set_bits
+EXPORT_SYMBOL vmlinux 0xb758b225	acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb75e480c	vga_put
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb7b3e5d6	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7f97b7d	pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb82cdbb1	__module_put_and_exit
+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 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 0xb898ff40	__tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb8aa2342	__check_region
+EXPORT_SYMBOL vmlinux 0xb8abd797	sock_no_connect
+EXPORT_SYMBOL vmlinux 0xb8c6474f	dev_deactivate
+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 0xb93354af	blk_fetch_request
+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 0xb9a0d77e	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xb9b60a9e	force_sig
+EXPORT_SYMBOL vmlinux 0xb9b631fe	default_llseek
+EXPORT_SYMBOL vmlinux 0xb9b96956	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xb9cf2f97	neigh_parms_alloc
+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 0xba4355d4	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xba45638f	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba520dfc	acpi_root_dir
+EXPORT_SYMBOL vmlinux 0xba5a22bc	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xba7f9e5c	misc_register
+EXPORT_SYMBOL vmlinux 0xba89cb1e	phy_mii_ioctl
+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 0xbab300eb	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xbacec372	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0xbae68e79	md_flush_request
+EXPORT_SYMBOL vmlinux 0xbaf21222	mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0xbb03a1dd	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xbb0c781a	i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1d2c0f	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xbb1e6a06	abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0xbb3ecd9d	pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0xbb3ecfd7	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xbb4798d2	__mutex_init
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb7a2429	prepare_binprm
+EXPORT_SYMBOL vmlinux 0xbb837d27	machine_real_restart
+EXPORT_SYMBOL vmlinux 0xbb9231a1	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xbb99125c	get_default_font
+EXPORT_SYMBOL vmlinux 0xbba159e0	files_lglock_local_unlock
+EXPORT_SYMBOL vmlinux 0xbba538a0	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xbbbfb4e7	blk_make_request
+EXPORT_SYMBOL vmlinux 0xbbd863a1	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xbbded9d3	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xbbef3c81	blk_get_request
+EXPORT_SYMBOL vmlinux 0xbbffba70	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xbc08dc08	pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0xbc1afedf	up_write
+EXPORT_SYMBOL vmlinux 0xbc2031de	acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc3386da	nf_log_register
+EXPORT_SYMBOL vmlinux 0xbc34f60c	d_add_ci
+EXPORT_SYMBOL vmlinux 0xbc515c32	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbc619ca2	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xbc661e83	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xbc672f22	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0xbc6db088	inet_accept
+EXPORT_SYMBOL vmlinux 0xbc754a61	pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0xbc77c177	ip_xfrm_me_harder
+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 0xbccefb31	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xbcdb5576	blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xbcdff7a3	unload_nls
+EXPORT_SYMBOL vmlinux 0xbce7c169	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xbced94f3	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xbcf1bfb3	should_remove_suid
+EXPORT_SYMBOL vmlinux 0xbcf3faf4	igrab
+EXPORT_SYMBOL vmlinux 0xbd0afb92	tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xbd4987f9	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0xbd59ef3d	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0xbd64950c	uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xbd6f1628	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xbd7557ad	path_is_under
+EXPORT_SYMBOL vmlinux 0xbd967ae1	tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xbda1e576	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xbdadd3dd	input_inject_event
+EXPORT_SYMBOL vmlinux 0xbdb08567	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0xbdc20c68	intel_gtt_get
+EXPORT_SYMBOL vmlinux 0xbdefd36e	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xbdf5c25c	rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe194856	eth_type_trans
+EXPORT_SYMBOL vmlinux 0xbe28c1a5	pci_set_mwi
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe3b797f	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xbe3f7453	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0xbe53dfef	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xbe5d22d4	dma_set_mask
+EXPORT_SYMBOL vmlinux 0xbe63ee40	request_resource
+EXPORT_SYMBOL vmlinux 0xbec5d68f	napi_frags_skb
+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 0xbeeef747	xfrm_input_resume
+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 0xbf1b918c	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xbf289ed0	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xbf29db5b	processors
+EXPORT_SYMBOL vmlinux 0xbf4b5c7e	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xbf5875bb	dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0xbf7cde7a	abort_creds
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf85915f	xfrm6_rcv_spi
+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 0xbfc38511	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xbfc7b198	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0xbfdff814	of_get_address
+EXPORT_SYMBOL vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff39ae9	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0xc003c637	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc01cf848	_raw_read_lock
+EXPORT_SYMBOL vmlinux 0xc01ee431	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0xc01eed33	__copy_from_user_ll_nozero
+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 0xc07ecfe2	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xc083be98	write_inode_now
+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 0xc0e3e6ac	d_alloc_root
+EXPORT_SYMBOL vmlinux 0xc0f0132e	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc14028a8	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xc1461111	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xc15e1495	ip_fragment
+EXPORT_SYMBOL vmlinux 0xc15f90af	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xc1651591	__getblk
+EXPORT_SYMBOL vmlinux 0xc1a4c500	add_disk
+EXPORT_SYMBOL vmlinux 0xc1be20bf	scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xc1bf41df	i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xc1c1169f	vfs_rename
+EXPORT_SYMBOL vmlinux 0xc1c2dd09	__hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1d38943	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xc1d6f394	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc1e81d11	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xc1eaacdf	security_d_instantiate
+EXPORT_SYMBOL vmlinux 0xc1ee9d96	buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xc20330f1	pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0xc21ed29a	cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xc21ff379	set_blocksize
+EXPORT_SYMBOL vmlinux 0xc241a369	netdev_update_features
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc249bed6	___pskb_trim
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc280a525	__copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc29db87e	pci_bus_type
+EXPORT_SYMBOL vmlinux 0xc2aa48af	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xc2b09046	mutex_unlock
+EXPORT_SYMBOL vmlinux 0xc2b95c93	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0xc2c41cd2	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xc2c9124f	acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0xc2d711e1	krealloc
+EXPORT_SYMBOL vmlinux 0xc2e2b728	kernel_accept
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc2f2d448	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0xc313150f	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc3245b11	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0xc3267e0c	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xc33298df	kobject_put
+EXPORT_SYMBOL vmlinux 0xc3595d37	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xc35e7d9f	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0xc39b9571	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9	__put_user_1
+EXPORT_SYMBOL vmlinux 0xc3be31ed	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xc3ce4454	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3cf7a5e	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xc3df2644	d_drop
+EXPORT_SYMBOL vmlinux 0xc3e833c8	dev_open
+EXPORT_SYMBOL vmlinux 0xc3fa6a59	memchr
+EXPORT_SYMBOL vmlinux 0xc3fba4d2	wait_on_sync_kiocb
+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 0xc46f71a1	generic_write_sync
+EXPORT_SYMBOL vmlinux 0xc4758dca	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xc48024ed	pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc49eb81d	input_open_device
+EXPORT_SYMBOL vmlinux 0xc4a31489	fd_install
+EXPORT_SYMBOL vmlinux 0xc4c5ad8d	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xc4e6cb20	netdev_warn
+EXPORT_SYMBOL vmlinux 0xc4f52157	serio_open
+EXPORT_SYMBOL vmlinux 0xc50ff746	__seq_open_private
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc5718627	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5cc6082	kill_anon_super
+EXPORT_SYMBOL vmlinux 0xc5d9c46c	agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc5e5804e	tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xc5f46566	rb_augment_insert
+EXPORT_SYMBOL vmlinux 0xc60decca	inode_init_owner
+EXPORT_SYMBOL vmlinux 0xc6116f62	dquot_acquire
+EXPORT_SYMBOL vmlinux 0xc6293e8e	__scm_send
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc63cc125	prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xc64adec6	inet6_getname
+EXPORT_SYMBOL vmlinux 0xc65abeb7	agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc65e8d52	dev_load
+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 0xc6aa651a	dev_emerg
+EXPORT_SYMBOL vmlinux 0xc6ad994d	xfrm_init_state
+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 0xc6f75f40	inet_listen
+EXPORT_SYMBOL vmlinux 0xc6fcaf1e	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xc701dd0f	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xc70efe24	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc72a0233	wake_up_process
+EXPORT_SYMBOL vmlinux 0xc73e8790	netpoll_parse_options
+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 0xc7acc1b5	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0xc7bf53e3	page_put_link
+EXPORT_SYMBOL vmlinux 0xc7dc15fb	tty_register_device
+EXPORT_SYMBOL vmlinux 0xc7ded7d3	phy_detach
+EXPORT_SYMBOL vmlinux 0xc7e7a3c3	address_space_init_once
+EXPORT_SYMBOL vmlinux 0xc7e9a028	put_io_context
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc7f8d2d0	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xc802e218	thaw_super
+EXPORT_SYMBOL vmlinux 0xc8074118	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xc81a12ff	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0xc82b5406	tcp_seq_open
+EXPORT_SYMBOL vmlinux 0xc82f8492	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc84f2d7b	alloc_file
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8c8c340	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xc90dd5c7	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc93f06e6	acpi_device_hid
+EXPORT_SYMBOL vmlinux 0xc94fa003	irq_stat
+EXPORT_SYMBOL vmlinux 0xc974a2b5	journal_dirty_data
+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 0xc9b525de	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xc9b6cfe9	agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0xc9b7d3e6	xfrm4_prepare_output
+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 0xc9e7a6d8	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xc9f53e23	__sock_create
+EXPORT_SYMBOL vmlinux 0xca0d9b8b	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xca2bf945	cdev_alloc
+EXPORT_SYMBOL vmlinux 0xca33da16	generic_readlink
+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 0xca6be291	phy_register_fixup_for_uid
+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 0xca9d4992	rt6_lookup
+EXPORT_SYMBOL vmlinux 0xcaa7f2bc	skb_recycle
+EXPORT_SYMBOL vmlinux 0xcab92642	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xcb046cd1	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xcb04712b	follow_down_one
+EXPORT_SYMBOL vmlinux 0xcb0c3789	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0xcb322694	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xcb451e56	idr_init
+EXPORT_SYMBOL vmlinux 0xcb65d1f2	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xcb7131fb	fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb733bf2	acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcb7633e4	ip6_xmit
+EXPORT_SYMBOL vmlinux 0xcb8d1d50	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xcb99edb0	posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0xcb9fc4c3	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xcbaac2b2	uart_resume_port
+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 0xcbebfedb	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xcbf7f4c3	unlock_super
+EXPORT_SYMBOL vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc36f32e	fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5809b8	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xcc5b27b5	acpi_extract_package
+EXPORT_SYMBOL vmlinux 0xcc5e09de	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xcc5e9f9c	of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0xcc6f3136	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xcc76a7ab	phy_print_status
+EXPORT_SYMBOL vmlinux 0xcc7ccd18	pipe_lock
+EXPORT_SYMBOL vmlinux 0xcc7eef56	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+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 0xccfc8f2d	sock_no_accept
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd36c040	pipe_unlock
+EXPORT_SYMBOL vmlinux 0xcd3a1a5f	pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xcd54b8a5	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xcd6ed34f	bmap
+EXPORT_SYMBOL vmlinux 0xcd88d95c	udp_ioctl
+EXPORT_SYMBOL vmlinux 0xcdcee358	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xcdd5ada3	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcded0702	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 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 0xceee8e33	generic_fillattr
+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 0xcf109871	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xcf1b2b9d	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xcf1d067f	bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xcf1d28ab	acpi_error
+EXPORT_SYMBOL vmlinux 0xcf26da10	i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0xcf4547bb	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xcf5a0493	jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xcf608678	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f	msrs_free
+EXPORT_SYMBOL vmlinux 0xcf71adcc	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xcfa4cfb3	bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0xcfb0068f	splice_from_pipe_next
+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 0xd00b174e	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd03d94e5	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xd043f38c	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xd0478158	acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0xd08197fa	acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd0838251	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xd085185b	pci_iomap
+EXPORT_SYMBOL vmlinux 0xd092d233	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b0e098	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xd0d34fd4	unregister_console
+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 0xd0fb7cd4	__tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0fef3b2	agp_free_key
+EXPORT_SYMBOL vmlinux 0xd101aeb1	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xd11c0dc1	__kernel_param_unlock
+EXPORT_SYMBOL vmlinux 0xd12151d7	thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xd12cd360	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xd1472061	acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd184e0e0	generic_file_splice_write
+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 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 0xd2d51180	of_gpio_count
+EXPORT_SYMBOL vmlinux 0xd2e6a582	acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd2e71844	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xd2ee707b	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xd2fd7016	pci_enable_ltr
+EXPORT_SYMBOL vmlinux 0xd3119310	dentry_unhash
+EXPORT_SYMBOL vmlinux 0xd315ff02	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xd3187da4	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd33e6244	get_phy_id
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd35e249a	_raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0xd38480a0	rb_augment_erase_end
+EXPORT_SYMBOL vmlinux 0xd3951da4	acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3a204f2	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0xd3aae056	ping_prot
+EXPORT_SYMBOL vmlinux 0xd3b8f924	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xd3c08471	gen_pool_create
+EXPORT_SYMBOL vmlinux 0xd3da9f4c	blk_end_request
+EXPORT_SYMBOL vmlinux 0xd3dcab0b	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0xd3ffd0de	sock_register
+EXPORT_SYMBOL vmlinux 0xd40ae3cf	i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xd40d176f	mii_check_media
+EXPORT_SYMBOL vmlinux 0xd418e1c0	adjust_resource
+EXPORT_SYMBOL vmlinux 0xd4693bf9	pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xd4f6a254	lock_super
+EXPORT_SYMBOL vmlinux 0xd50fef48	acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd51d208f	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xd536e8ad	d_delete
+EXPORT_SYMBOL vmlinux 0xd54c96c7	atomic64_add_unless_cx8
+EXPORT_SYMBOL vmlinux 0xd55331b9	nobh_write_end
+EXPORT_SYMBOL vmlinux 0xd55654b8	arp_create
+EXPORT_SYMBOL vmlinux 0xd5670071	blk_recount_segments
+EXPORT_SYMBOL vmlinux 0xd57fe53a	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0xd5821dee	journal_start_commit
+EXPORT_SYMBOL vmlinux 0xd5ae7333	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5b1376d	register_shrinker
+EXPORT_SYMBOL vmlinux 0xd5b44c86	acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0xd5e93868	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xd5f2172f	del_timer_sync
+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 0xd64aa73c	rtnl_notify
+EXPORT_SYMBOL vmlinux 0xd65379a6	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0xd6650ea8	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xd68abc76	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6c39f25	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xd6c91bb0	dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xd6d3a75b	blk_insert_request
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f3ace8	pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xd7224001	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xd72a33fb	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xd732cf1f	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xd73b2e75	d_move
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7aa885c	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xd7bd3af2	add_wait_queue
+EXPORT_SYMBOL vmlinux 0xd7c1936f	keyring_clear
+EXPORT_SYMBOL vmlinux 0xd7c856f9	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7e96f14	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xd806001a	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0xd81142a7	phy_device_free
+EXPORT_SYMBOL vmlinux 0xd829e7fc	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xd8581f52	rawv6_mh_filter_register
+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 0xd87ba14e	netdev_crit
+EXPORT_SYMBOL vmlinux 0xd88357c1	log_start_commit
+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 0xd8c0f172	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0xd8d2417a	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0xd8d2da9b	bio_map_user
+EXPORT_SYMBOL vmlinux 0xd8e1e532	scsi_put_command
+EXPORT_SYMBOL vmlinux 0xd8e484f0	register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd903292a	sk_stream_error
+EXPORT_SYMBOL vmlinux 0xd9091363	acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd918d197	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd94ffe5f	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xd958ccad	input_register_device
+EXPORT_SYMBOL vmlinux 0xd9653bdb	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xd969b2c7	amd_e400_c1e_detected
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9869708	phy_start_interrupts
+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 0xda38d9ed	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xda3d1429	scsi_print_result
+EXPORT_SYMBOL vmlinux 0xda5c0143	pnp_possible_config
+EXPORT_SYMBOL vmlinux 0xda6399fa	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xda66b6c0	ata_scsi_cmd_error_handler
+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 0xdaa57ec3	totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdada009e	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xdadbee65	cdev_init
+EXPORT_SYMBOL vmlinux 0xdaedf65f	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xdb1dd2d6	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0xdb2349db	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xdb357e17	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xdb572022	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdb743bc9	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb828586	netdev_set_bond_master
+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 0xdba6f222	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0xdbc1712d	vga_get
+EXPORT_SYMBOL vmlinux 0xdbc3910c	pci_request_regions
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe7a975	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xdbe97690	journal_get_undo_access
+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 0xdc2979b9	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xdc2adb35	add_taint
+EXPORT_SYMBOL vmlinux 0xdc3f3769	napi_get_frags
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9	__sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8	daemonize
+EXPORT_SYMBOL vmlinux 0xdc46972d	alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xdc4e244d	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xdc57f532	acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0xdc7e8751	acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0xdcb45850	scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xdcc573e5	page_follow_link_light
+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 0xdd23d48b	__dst_free
+EXPORT_SYMBOL vmlinux 0xdd2ca0d4	__lock_page
+EXPORT_SYMBOL vmlinux 0xdd589d6b	tty_shutdown
+EXPORT_SYMBOL vmlinux 0xdd66d733	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0xdd84023a	loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xdd8d9631	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xdd9e4e81	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xdda7bdf3	textsearch_register
+EXPORT_SYMBOL vmlinux 0xddd0756b	mca_device_status
+EXPORT_SYMBOL vmlinux 0xdde688ea	journal_set_features
+EXPORT_SYMBOL vmlinux 0xdde6b41e	skb_append
+EXPORT_SYMBOL vmlinux 0xde834410	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xde90ca6c	write_cache_pages
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdea1b874	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xdec7338c	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xdec778f6	ida_get_new
+EXPORT_SYMBOL vmlinux 0xdece6ad8	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xdee19f90	tcp_prot
+EXPORT_SYMBOL vmlinux 0xdf0da3cc	acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf1e695b	journal_check_available_features
+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 0xdf9dc08a	km_state_expired
+EXPORT_SYMBOL vmlinux 0xdfbff6e4	sock_no_listen
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xdffd34b3	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xe005a338	bd_set_size
+EXPORT_SYMBOL vmlinux 0xe022ecf8	send_sig_info
+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 0xe091f477	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xe094ef39	sg_next
+EXPORT_SYMBOL vmlinux 0xe0a1cb9f	pci_save_state
+EXPORT_SYMBOL vmlinux 0xe0a2d903	__ps2_command
+EXPORT_SYMBOL vmlinux 0xe0aae782	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2	acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL vmlinux 0xe0c1bbd2	tty_port_init
+EXPORT_SYMBOL vmlinux 0xe0dbd051	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xe0e82e78	do_munmap
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe11f27ea	of_get_property
+EXPORT_SYMBOL vmlinux 0xe1246f5e	journal_lock_updates
+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 0xe174d64a	of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1cf5f4b	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xe1d915bd	truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xe1e00691	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe21b2f96	__kfree_skb
+EXPORT_SYMBOL vmlinux 0xe228078a	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0xe22afdc2	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0xe23ae481	blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97	jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2619e9b	dentry_open
+EXPORT_SYMBOL vmlinux 0xe2889acb	serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe28cf7e4	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xe2b28266	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xe2b57128	i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL vmlinux 0xe2e02b1d	blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL vmlinux 0xe2edcd73	is_container_init
+EXPORT_SYMBOL vmlinux 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe319eb24	acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0xe36e646b	icmpv6_send
+EXPORT_SYMBOL vmlinux 0xe39e3011	of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0xe3b77e52	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xe3c6079e	atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3c72eb8	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3df52f4	__ht_create_irq
+EXPORT_SYMBOL vmlinux 0xe3e06212	netpoll_cleanup
+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 0xe425dfb2	serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0xe430e2ba	agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0xe43617f7	acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe43dbe71	vfs_read
+EXPORT_SYMBOL vmlinux 0xe448fb8a	bio_add_page
+EXPORT_SYMBOL vmlinux 0xe44b14fa	netif_skb_features
+EXPORT_SYMBOL vmlinux 0xe45f60d8	__wake_up
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe48cb4ca	lease_modify
+EXPORT_SYMBOL vmlinux 0xe49775f9	flush_delayed_work
+EXPORT_SYMBOL vmlinux 0xe4bb31d2	inet_release
+EXPORT_SYMBOL vmlinux 0xe4bd2c3c	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xe4bf2304	journal_create
+EXPORT_SYMBOL vmlinux 0xe4cbc0ec	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0xe4eda08f	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0xe4f0a759	bdev_read_only
+EXPORT_SYMBOL vmlinux 0xe4ff74fd	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xe5044a42	xfrm_sad_getinfo
+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 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+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 0xe6427a63	of_find_property
+EXPORT_SYMBOL vmlinux 0xe647362f	da903x_query_status
+EXPORT_SYMBOL vmlinux 0xe656185c	__netdev_printk
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6b3fe21	interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xe6d746df	journal_stop
+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 0xe716baed	acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe7239d6f	i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xe7609b0d	generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe7638c9a	do_sync_write
+EXPORT_SYMBOL vmlinux 0xe7722171	flex_array_free
+EXPORT_SYMBOL vmlinux 0xe7888bd7	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7ba269e	__brelse
+EXPORT_SYMBOL vmlinux 0xe7c9209c	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7feb4a4	scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe8913555	uart_write_wakeup
+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 0xe8da4ee5	simple_write_begin
+EXPORT_SYMBOL vmlinux 0xe8eb6d9d	dev_notice
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe8ecd575	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xe8f96257	tty_throttle
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe925f328	dst_alloc
+EXPORT_SYMBOL vmlinux 0xe94c7bc9	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe96aa297	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xe9952352	netdev_printk
+EXPORT_SYMBOL vmlinux 0xe997667b	wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9e694be	registered_fb
+EXPORT_SYMBOL vmlinux 0xe9f3f0f0	mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0xe9f61ca0	inet_stream_connect
+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 0xea2611e4	user_path_at
+EXPORT_SYMBOL vmlinux 0xea355189	__dev_printk
+EXPORT_SYMBOL vmlinux 0xea406cbc	datagram_poll
+EXPORT_SYMBOL vmlinux 0xea60cce8	rtnetlink_put_metrics
+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 0xea8eba86	__blk_end_request_all
+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 0xeacee51b	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeadc00c2	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeaf30583	do_truncate
+EXPORT_SYMBOL vmlinux 0xeb126b38	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb563a2a	__free_pages
+EXPORT_SYMBOL vmlinux 0xeb5c91bd	release_sock
+EXPORT_SYMBOL vmlinux 0xeb65877b	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xeb66810f	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xeb882a1c	mca_register_driver_integrated
+EXPORT_SYMBOL vmlinux 0xeb8ef3b1	pagevec_lookup
+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 0xec15c420	cdrom_release
+EXPORT_SYMBOL vmlinux 0xec15f00a	tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec2252b3	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xec226781	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0xec2b3f34	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xec2e3774	vfs_readv
+EXPORT_SYMBOL vmlinux 0xec43f690	cont_write_begin
+EXPORT_SYMBOL vmlinux 0xec4e50df	free_user_ns
+EXPORT_SYMBOL vmlinux 0xec5f46de	blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xec6b10ed	__block_write_begin
+EXPORT_SYMBOL vmlinux 0xeca09c81	dquot_alloc
+EXPORT_SYMBOL vmlinux 0xecb3a5e1	clocksource_register
+EXPORT_SYMBOL vmlinux 0xecb721f1	try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xecd8bcd9	unregister_netdev
+EXPORT_SYMBOL vmlinux 0xed022313	pci_disable_obff
+EXPORT_SYMBOL vmlinux 0xed036db7	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0xed1d541f	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed33eb0f	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xed5306df	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0xed629c07	set_device_ro
+EXPORT_SYMBOL vmlinux 0xed6d38e1	padata_free
+EXPORT_SYMBOL vmlinux 0xed6f8c54	fb_pan_display
+EXPORT_SYMBOL vmlinux 0xed92ec89	dev_set_group
+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 0xedd8e606	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xede0c971	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xedfb5159	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xee04fec0	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xee1ee7db	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3496c3	dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xee3a137b	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee7f7353	intel_gtt_insert_pages
+EXPORT_SYMBOL vmlinux 0xee8ec2ae	nf_register_hook
+EXPORT_SYMBOL vmlinux 0xee9f0bac	start_tty
+EXPORT_SYMBOL vmlinux 0xeea9dbaf	bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeee97d38	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xeefdabc0	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xef1d35b7	acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0xef3bd862	mca_find_unused_adapter
+EXPORT_SYMBOL vmlinux 0xef677fb8	bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0xef801f1f	blk_put_queue
+EXPORT_SYMBOL vmlinux 0xef9aedfc	boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xef9b725b	__get_user_pages
+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 0xf02c4694	d_path
+EXPORT_SYMBOL vmlinux 0xf0390e85	blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xf05a888c	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf07a32e2	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xf07fb46e	sock_map_fd
+EXPORT_SYMBOL vmlinux 0xf0c9d4cc	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0xf0d6e98d	sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf0dc6ad4	set_pages_wb
+EXPORT_SYMBOL vmlinux 0xf0ef15b4	list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c	kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f4bd64	save_mount_options
+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 0xf1239eac	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xf126285f	dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0xf12a5c83	idr_find
+EXPORT_SYMBOL vmlinux 0xf14f70ad	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0xf16640a5	path_put
+EXPORT_SYMBOL vmlinux 0xf168f512	netif_rx
+EXPORT_SYMBOL vmlinux 0xf17887a1	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1ba4d2d	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xf1c813ff	__blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xf1cf3036	blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0xf1daf8d9	sock_init_data
+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 0xf209c28b	udp_lib_get_port
+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 0xf23989fa	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf24b8360	netif_napi_del
+EXPORT_SYMBOL vmlinux 0xf24dee95	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0xf251e3de	ht_create_irq
+EXPORT_SYMBOL vmlinux 0xf28c17f3	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2e74040	mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf2f2bc98	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf32055e7	dev_base_lock
+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 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35b0f41	scsi_host_put
+EXPORT_SYMBOL vmlinux 0xf3654ffb	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xf37260ab	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xf3884438	dev_get_by_flags_rcu
+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 0xf3bfb76d	search_binary_handler
+EXPORT_SYMBOL vmlinux 0xf3dbf302	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0xf3e36791	padata_unregister_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0xf411f3bc	kunmap_high
+EXPORT_SYMBOL vmlinux 0xf438ee65	filemap_fault
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf44f1a5b	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0xf45bd8fc	key_task_permission
+EXPORT_SYMBOL vmlinux 0xf48a2c4c	MCA_bus
+EXPORT_SYMBOL vmlinux 0xf494f618	mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4987cbc	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0xf4a5c213	avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4a7c307	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f19e51	downgrade_write
+EXPORT_SYMBOL vmlinux 0xf502d273	acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf5098e2c	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0xf51ae235	touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf5202259	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xf529356f	iov_iter_copy_from_user_atomic
+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 0xf554c896	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xf59885b8	llc_sap_close
+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 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf64a2cc6	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xf64cfce2	pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0xf66dc896	open_exec
+EXPORT_SYMBOL vmlinux 0xf678f001	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0xf68b0a00	i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xf68f57e5	genphy_resume
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+EXPORT_SYMBOL vmlinux 0xf6d45216	current_fs_time
+EXPORT_SYMBOL vmlinux 0xf6d75858	pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xf6dcfa35	pnp_is_active
+EXPORT_SYMBOL vmlinux 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf7634922	dev_addr_init
+EXPORT_SYMBOL vmlinux 0xf777b63d	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7e37635	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0xf7f4b8cd	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xf7f7275d	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xf7fee021	qdisc_reset
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf828b7bf	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xf82abc1d	isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47	acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84e423a	vfs_mknod
+EXPORT_SYMBOL vmlinux 0xf84e7e5d	simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xf86fd33f	sock_no_bind
+EXPORT_SYMBOL vmlinux 0xf87b3d7c	__block_page_mkwrite
+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 0xf8a68b1c	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xf8de21ed	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xf8f38290	of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0xf9164015	task_ns_capable
+EXPORT_SYMBOL vmlinux 0xf919af54	dev_addr_del
+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 0xf96655d3	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xf97456ea	_raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xf97909bc	mpage_readpage
+EXPORT_SYMBOL vmlinux 0xf983e628	register_qdisc
+EXPORT_SYMBOL vmlinux 0xf993723f	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xf99a4667	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9b1f4d9	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xf9b475e8	i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xf9bca1a1	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xf9db43b6	kset_register
+EXPORT_SYMBOL vmlinux 0xf9de741a	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xf9ece5c8	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xfa058a05	tty_name
+EXPORT_SYMBOL vmlinux 0xfa30957c	mempool_free
+EXPORT_SYMBOL vmlinux 0xfa393a96	uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xfa3efa61	i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xfa768854	netdev_change_features
+EXPORT_SYMBOL vmlinux 0xfa84d610	blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xfa92260e	mpage_writepage
+EXPORT_SYMBOL vmlinux 0xfa961daf	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0xfa9f0c9a	iput
+EXPORT_SYMBOL vmlinux 0xfabe798b	xfrm_policy_bysel_ctx
+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 0xfb323065	inode_init_once
+EXPORT_SYMBOL vmlinux 0xfb661ee3	inet_sendmsg
+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 0xfb96e26f	__f_setown
+EXPORT_SYMBOL vmlinux 0xfb9ed2c1	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0xfbaaf01e	console_lock
+EXPORT_SYMBOL vmlinux 0xfbaf4e48	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xfbb82242	fsync_bdev
+EXPORT_SYMBOL vmlinux 0xfbc3d0f3	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xfbd7c6b2	__nla_put
+EXPORT_SYMBOL vmlinux 0xfbe27a1c	rb_first
+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 0xfc3b0921	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xfc4d3b7c	bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xfc562165	acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xfc65459a	kstrtoull_from_user
+EXPORT_SYMBOL vmlinux 0xfc6588e9	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0xfc872fd1	get_ibs_caps
+EXPORT_SYMBOL vmlinux 0xfc9a06db	qdisc_create_dflt
+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 0xfcdfeda1	mpage_readpages
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcf086d4	sock_rfree
+EXPORT_SYMBOL vmlinux 0xfcf6c3fd	unmap_mapping_range
+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 0xfd607bf3	tcp_simple_retransmit
+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 0xfd80124f	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xfd82c061	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xfd962908	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xfda0dbe8	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda11423	mdiobus_free
+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 0xfdfc0b3b	fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe1a8367	of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xfe3eafd6	elevator_change
+EXPORT_SYMBOL vmlinux 0xfe44726a	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xfe5b3f8c	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe79b47c	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0xfe7c4287	nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe90bb3d	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0xfe94e4bb	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xfeb465c7	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xfebd297a	gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0xfec3c2f2	bcd2bin
+EXPORT_SYMBOL vmlinux 0xfedd35fc	console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee7a0f0	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0xfef7b82a	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xfef96e23	__scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff03694c	noop_llseek
+EXPORT_SYMBOL vmlinux 0xff1e9dd8	seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2a71e7	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xff2c3263	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xff2ecc49	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xff30727c	dquot_operations
+EXPORT_SYMBOL vmlinux 0xff35f4c1	mmc_host_disable
+EXPORT_SYMBOL vmlinux 0xff480992	dump_fpu
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff746d99	vfs_statfs
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffc6793f	ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xffc6e302	kmap_high
+EXPORT_SYMBOL vmlinux 0xffd146a0	lock_may_write
+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 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x02a7bbe1	kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x07f57c1b	gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09f65921	kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b6c868c	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d3958fa	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d9baad9	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x146f896c	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19719a09	kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a623ec0	load_pdptrs
+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 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28a99ca6	kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2bdde02c	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e9e2d24	gfn_to_pfn_async
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31	kvm_spurious_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3432cda0	kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x346664a2	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39590f38	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c116422	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ce707d6	kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3dcacac2	kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f3799d8	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41515907	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41a1aaaa	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x445d6985	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44f5b68f	kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48cb4672	kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5798f461	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x580ad418	kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e23222d	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62821d36	__tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x636e4d2a	fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6396f55d	kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63fd86b8	gfn_to_memslot
+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 0x67af098d	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d4b5dd4	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07	is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ea6b3ec	kvm_set_xcr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f081b42	kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x703f0c32	kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72a94d38	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74bcbe2f	kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74fbc94a	is_fault_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x778e11c0	kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x793bb255	kvm_set_cr0
+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 0x7d543c50	kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7db97b52	gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e3ec0db	kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8015de02	kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x81f5f46d	kvm_set_msr_common
+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 0x8517b22e	kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a2290a0	kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ad81c14	kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8aee9366	kvm_requeue_exception
+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 0x8dfce28f	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95c87e45	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95e96e45	handle_mmio_page_fault_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96e1e92e	x86_emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x997b6948	hva_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dd42af7	kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9f007807	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2006c43	kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2333917	kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa65f09eb	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6fa77bd	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be	is_invalid_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad3a235a	kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf5ca255	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xafd425f8	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2cc66c3	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb30bc22f	kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4f6a085	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb5ae8683	is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605	__tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7117489	kvm_get_cr8
+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 0xbf422569	kvm_write_tsc
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbfafe0c3	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7b8f3b2	kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8153a6d	kvm_mmu_unload
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb90300e	kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc46d161	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcdf6314a	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67	kvm_has_tsc_control
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0863003	kvm_gfn_to_hva_cache_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a	kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd14b317a	kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd160f507	kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9	kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd46683a8	kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe135a17f	kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1564b8f	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe336eba9	kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4c5f24c	kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4d64e39	gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeae0eb70	kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec733320	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414	__tracepoint_kvm_exit
+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 0xf5ffca24	kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf980c638	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcb29789	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL crypto/af_alg 0x313d265f	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x52b0fc5f	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0x81e45602	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x8951f40e	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x8fb65e33	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0xaf8fc7fe	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0xd90c0d85	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde	af_alg_cmsg_send
+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 0x08e878e4	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x209f4dc7	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x387d060b	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x50bf7a4b	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x886c6de4	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9e096ab6	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbd378c48	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xc697b8ec	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf1b12eed	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf6684a8e	cryptd_aead_child
+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 0x2c91de17	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4b88e980	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x656763e3	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x65afc28d	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9df1ce85	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd4e7917e	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf8c2423d	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfc703189	btmrvl_enable_ps
+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 0x0cd0bf8f	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c3d7a4f	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f0e613e	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x30cc1d36	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3f456391	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4f7d8c36	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x59491bb2	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x67be24c6	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7e08d4e9	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84eac522	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8cd884d6	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4725c52	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbcc3f7c6	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcd9fbf7a	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xeb5e2b20	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf36f8135	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfea011fb	gigaset_blockdriver
+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 0x4beef046	dm_region_hash_create
+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 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/dm-region-hash 0xfdb0e795	dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d	dm_tm_pre_commit
+EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 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 0x2f7bd498	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x705d8775	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x537a6134	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0eefe6ca	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x209edbc6	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2f2e2cae	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x482d2235	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x62923a9a	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6890e6b5	mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x85065cf5	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x86787561	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9436135c	mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb703f835	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb8f0db2b	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc7740ef4	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcb70943c	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcf777944	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd647d731	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe3795c8a	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf2491323	mantis_dma_init
+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 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x817176ab	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x93513027	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9a921c49	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb91fe1cb	ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc0b17388	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc4f3dd3f	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc7a5e533	ttpci_budget_debiwrite
+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 0x5e7cb021	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfdc926f6	st_unregister
+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 0x6b9a4360	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa7025964	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc1c6fb01	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xdd5c641b	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x05220682	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0cefef8f	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2bb466bc	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x510b4bba	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7a2847a6	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8dba7222	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xaba0df35	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xac0a36c3	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xae1cf84d	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc9eb9ef5	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xce6660ea	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd008929b	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x55058a6d	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd476625e	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe6403013	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xfdc4d271	register_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 0x313b6848	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4fb8f621	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x63a9e8f2	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb01b8102	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcd7363fe	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0x732c64da	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1cfb5d7f	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4a34d14f	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe3651c00	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xea5055f0	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x06424093	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x997d9d0e	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa4b7eacd	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xceb2bb3e	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe570cad0	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf4aa95ba	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x10745185	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x42c30052	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43ec75e5	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5afafa24	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5eb43516	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x603ef9b2	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x625f2097	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62781bde	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8495b4d8	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x936ac762	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9402394c	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa1f3c88c	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa5526059	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb60f4ca3	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb70f6da	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd0184871	usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd561c2fe	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea30be53	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea3599a5	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeef77178	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1cae173	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4ebfd69	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfae497fe	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc9b0857	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0ad4653b	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x31443bc4	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3a9278bf	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x529c168a	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5791dffd	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x68bb992e	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6c515752	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa8424843	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xacb1bd8b	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb8835915	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcaa181de	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe0a64cab	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xea1705da	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xeb9ee6af	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf72c0ae9	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf90fdb3d	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19	libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x6882ec7e	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x2af4da8a	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x6bc1ce76	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xab074b1a	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xc22fa810	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1412997b	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x14a32f42	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1d89e3bb	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x22a24096	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2573a720	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x28054777	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2be0eee3	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x442fc6de	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4c89cf4e	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63758f49	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6401f3ec	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x79a5cf2e	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97cede9d	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x992c47a5	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa96c6c8d	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0d0bcf53	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x11fe4c52	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x214fe058	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x89314262	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x89e69cb4	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa92dd160	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbd6225d9	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 0xf34d770a	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x82c5ac31	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd52e03e9	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x07ea0001	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x08eae01a	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x120dbc3d	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x178afeb7	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8a41f33f	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x91aea421	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa5a1bf3d	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa3bde06	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc1d9f0c8	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd9adf71b	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf31e3a2d	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0355784d	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0c77188e	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x20dc284b	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x224d24d2	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x456fa6ba	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91982854	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa4babd14	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa6bc20c3	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb8b9851f	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ab4d46a	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0c4b391d	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2660966d	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a7c168c	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2eb1ba0d	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x301348b9	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3798de49	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3deefe52	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f75c205	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x469e0e6e	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x46dc2376	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x52beb8ce	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b9cd2fc	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5d48d067	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x66b3b2a4	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7375c919	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x88ec7167	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9370a98f	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9bf29877	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c863a25	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa6a7a9f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac7a465c	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb5da0e23	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb6e993de	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb922bfc7	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc63c2f7a	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc8273971	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb08ffb8	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcba46b9d	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcdc5162b	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf19ce8b	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf49841f	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc6c490f	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0d01461	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8bcb209	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef5a4966	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf15f1728	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00297850	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08f6633d	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x09187875	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0c6d96cd	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x152d2862	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x176aca7b	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b92023a	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x218e7ab9	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21919401	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x284cab16	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28bd4963	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a307de0	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32cd3c95	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f8ed025	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x456331e3	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5844137d	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59749210	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ef78bc8	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x66123aba	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x718b13eb	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7437d0c0	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b1f0443	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d7379ae	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8913b0a2	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92ba565a	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x991540aa	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa481782c	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5a17313	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7ebf322	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa8312d07	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaaf9cc7c	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xadea1f45	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb626c287	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9f55a63	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbe7241be	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc75871db	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9db7cc1	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcba9e8b9	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcc2016a1	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5ec5eb6	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdc873801	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe1916bfb	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe198ae0b	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8ca9f87	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8dbdc89	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe3c9aef	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1690cf63	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x226ab349	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x47fdcf8c	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x53bafdd9	rt2x00pci_probe
+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 0xd1048bec	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xea8e082b	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfd96639b	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0b20e1b8	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x16f11eca	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1d9381e9	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2b4303e2	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f4abc1f	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6ae77572	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75b05ec9	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a1143a1	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c05a174	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9d6f806f	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9f042fde	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa2befb95	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb49626b8	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc263aed5	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc6dda910	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca3ba896	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x3ae3935f	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x90f8fa2f	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xc01d3ab0	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x09ae533c	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x2e04d415	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x4efa98de	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x708ae12f	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x916a2713	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x98347bef	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xba8e569d	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+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 0x043efee8	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0543f5f8	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x05c47970	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x11ace4c4	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22b33c99	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e5ecadc	cxgbi_set_conn_param
+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 0x4601740a	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48bc7c39	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4beab0d3	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4cdeb863	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5102950b	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x52422823	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x58476837	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d713e19	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5da37b75	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x628cfe4b	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x63589369	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x681716fb	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f92ceb4	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x75d3e2b3	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x78cbb194	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e628086	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x881ed51d	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x921fae87	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x94152ee6	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x983dffc9	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d741296	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa92cacab	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab32037e	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xacd4e78f	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xadbdca7b	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb398b0ba	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb679d6c3	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb552602	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc9a9a1d	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc0a599e3	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc930b11f	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xca7fb8b3	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd13e0392	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6cbcd1c	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd79f825e	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfa473bf4	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfcd39c99	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfef1e342	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x047024df	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x09bf2631	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x32610be6	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x99a28ead	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd2076c5a	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xefab1c9b	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf9662b33	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfd3adb50	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfddd92d6	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 0x00d4faf0	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x115f3019	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x133884b3	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1441472e	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16981380	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d65c1d5	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2278e15c	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a0d775e	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bb03a38	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4991c3dd	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d8ae920	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x562a35e9	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d214475	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e934b80	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6162801b	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63db4be9	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a897972	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7046e35c	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x716bf824	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77099aa0	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77696d02	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c6622e1	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x812a7a08	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81d8692a	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8fcf0539	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x97b95d60	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9882b98e	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ad5c853	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ad8a853	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9dda3c65	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa47ae87c	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb21202e	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf6e33a7	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc6b80621	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb499a2b	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc75e803	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd06f27bc	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6a32edf	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe56e6190	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf907af3d	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9200b65	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd1d85bf	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffcfa791	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x031f6fc1	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0fa3256f	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x16c135b6	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x36ab55b1	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x37540e75	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x60caad40	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x70697717	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x737efa91	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x83e13852	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x96bc2794	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x99a675ee	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa422c3fb	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb9d734e8	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd38583e3	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd9aef4e2	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xec675775	iscsi_tcp_conn_setup
+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 0x07bf8c9c	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x088d6c11	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24060a07	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29a2b855	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d4b01d8	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e048179	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x352bea80	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x363c7a45	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d155d54	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x519c4789	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x638b44c0	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x681b8b88	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e242f47	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9691d6f4	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98cc1975	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb5331bce	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6a7328f	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd0f92fe	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd056e82d	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2cf8d9e	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd926b6f8	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdda28f23	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe2b28b1a	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe541fccc	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1538773	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf74031bb	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa5743f0	iscsi_destroy_endpoint
+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 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/comedi 0xde5d8fa4	comedi_get_device_file_info
+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 0x04fdf00f	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x13996cba	usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x16fd15ff	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x228d6a0c	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x47cd7b14	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4ec00c0d	usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5d206061	usbip_alloc_iso_desc_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 0x97f12b20	sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc74b7dfe	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcdbd1b24	usbip_recv_iso
+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 0xf06b27f9	usbip_dump_urb
+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 0x1972d8a3	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xaffc5f38	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 0x1a3ac03a	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1db44e18	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2080a431	usb_serial_generic_write_bulk_callback
+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 0x3aa3c8f3	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43b40cc9	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4921f4f1	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x52907771	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8bd3c297	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8cca7086	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8dcf35c3	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b1fd227	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc4b40dd4	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca113b6e	usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xce166fd3	usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd0ede487	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9896413	usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf18ae4e9	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf81816b6	ezusb_writememory
+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 0x03abf05a	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x58b38749	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62976ba7	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35	locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x70a234a4	nlmclnt_proc
+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 0xe75c9bd9	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x169f1118	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x350abcad	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e005f51	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41d66470	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a9ea0d9	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c37a9b9	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x890d9920	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9161f739	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96d50bf9	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9f6a273	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac687e8b	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb396ce9	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf32a8fa7	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa917e75	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff19a75f	nfs_init_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 0x029c41aa	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 0x1f0c0a8b	o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553	o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3cf931be	o2nm_get_node_by_ip
+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 0x8ebbf2bf	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9b4b029c	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 0xb3fdbb1e	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 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 0xfba3a5d9	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x140d0406	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x52948e62	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6afd2429	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x93bac6f2	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcc458e0a	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 0xfa1cec21	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 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 0x3ff3898a	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x5651e4bd	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x68182a28	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xd6733fc2	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xdc8c026a	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xf15a22d0	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0xdd5b090e	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0xe67fbc57	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x6574139f	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x77e2747f	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 0x56b97bce	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 0x3e0c1ef4	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x00051cb7	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x03c0d23a	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ed83b48	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x165cb96e	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x18efe10b	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3295b6ff	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x33bcc9af	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35f8efa6	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3671b259	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x381cdc34	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x39d9eb10	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e7f362d	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x44a0d171	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x46ac49f2	dccp_set_state
+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 0x5950d8f8	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5b9dc92f	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x67bc5c26	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6ddba83e	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x83f5664f	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8e0fe96b	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x921fdf72	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x97d1d63c	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f58fd7f	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6541b07	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4fd4fda	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xba7cc747	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbc8ef7a	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc39fdbe1	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xce537dbb	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd22a98fb	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd49a8472	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdb4a4169	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xefd105d7	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb79c125	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x14a8ae0a	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2555cc16	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x35e8524f	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x44ff11ff	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x53f2a574	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe5cacc8c	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x280decd8	register_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf170c324	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x73b4525c	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0xb80017bd	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2fb7d8cd	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7323c159	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x29ebeacb	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xfbfa6e0e	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 0xd2d07383	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 0x7343c2cc	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x761a63bb	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9468650d	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 0xbb22078b	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfcc00805	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfeb7563b	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 0x31576d09	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6ec384fd	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb31663da	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcd7fe47e	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe73eddbc	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xadf8fde9	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 0x01ba3d2e	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0302d349	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2dd9de91	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3c8dc184	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x41e4caf6	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x49c227be	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4f49e130	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x94ba2214	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa7cc6772	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaedab7ae	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xea4295b9	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xffb61d6d	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0a5ccb75	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x268e9814	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x29e114f3	ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9255eb98	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xdf735cc4	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 0xfb5f6064	ieee80211_request_smps
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1c5056ac	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x28ad9cbc	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2c9a00fc	ip_set_type_register
+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 0x5db4e1e0	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x65de626a	ip_set_get_ip4_port
+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 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 0xd30a65d5	ip_set_del
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xecdbeb4f	ip_set_get_ip6_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xee5bb598	ip_set_add
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf7340bc4	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x11fb3440	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x58f89c01	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe2e42bdd	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xec5d9ebc	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x021f5991	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b403e66	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b5eca7c	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cb22718	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0eee6665	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f53ec2c	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13384466	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19cc447d	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ac9da8a	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d25f547	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30189916	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b44184c	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3daae73b	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e84459a	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 0x49629160	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b0e2f0e	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d1481ed	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d6ca9ae	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b48b685	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61f0a264	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6545b263	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c5a5bfa	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76f9fb7f	nf_conntrack_tuple_taken
+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 0x7e225159	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8131448a	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x823c6dcf	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d538c29	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8da32b89	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dfcd953	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89	nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90faede3	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f	nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95eaaf44	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x968303aa	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa74a64b3	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95	nf_ct_untracked_status_or
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac3bf22c	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac9bc35e	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027	nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0d602d8	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5958055	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7fb6f43	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0a31322	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0d19cfb	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1439978	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc16185b5	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc98ed2da	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca8fbf69	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf879049	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfbb5db6	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd00fa513	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd26a256c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8b695e0	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8c03221	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda260ed2	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde753c60	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2f2208c	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeaf650a3	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeef73463	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf70eed87	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfd30bbfe	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfd6be6cf	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7869d7fd	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xe50e1a7f	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x7e84bfb5	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4255d822	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7103e00f	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9af5516b	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa68cf4e1	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaf47ee41	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd858eee5	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd886251e	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe3473dad	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfa3a740c	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfbb82e59	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfa3fca83	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x022a84c1	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x530c7528	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xbdb9540f	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc7378961	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa2210ce5	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf7bb9fe5	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0d38aed4	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1fb608d0	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x253ffc1a	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3df49ea1	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x507ef6f8	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8d4d2936	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa30926c3	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa33cfd1e	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xae36f629	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb1204bd7	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb6c21a62	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc5a684e0	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf0c7c5ce	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xae1f348d	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x2b2a0365	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xecef7e3c	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x17d70da6	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2bb2d7ed	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3e8da81d	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x50cc6262	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x77350f13	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb50caa0a	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x65b6ef13	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e58dc5f	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x29d608b4	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2cb3bb7b	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x37d2a052	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5be91cd3	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c2a8542	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x77d2a4db	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x83a3b52d	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x96b6d402	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa1aaaba3	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xba98c71c	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcb520b5e	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2d58f8d	xt_hook_unlink
+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 0x08cd6ed3	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x2159e301	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 0x36cbd724	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x47c6b803	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x4a536216	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x5458392b	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x6c93a703	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x7c4c02fd	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x8f1bebd9	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x9c5e405f	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xaa691c8f	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xb29bb24e	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0xc1e82bcf	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc4802111	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107	rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0xcfc8edbd	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xcfdbf82a	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd2f66590	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xd6bd236d	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xdbb00372	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xdfc051e8	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xf741c098	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0xf9a7508a	rds_message_put
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x7737124d	rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x8705a47f	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 0x02a2fc27	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x04ab94f6	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x16438cfa	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1bffa436	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1ff16238	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31182499	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3ce8fe4a	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x44199b5b	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x46e32fd2	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 0xabd04075	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xefbb239e	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf98767d4	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0144dd2b	xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01c4a56d	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03100695	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x062be486	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08346d94	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b76eb4a	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b804b4a	xdr_encode_word
+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 0x0f774995	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x112273e9	rpc_put_task
+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 0x14e60654	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x153279df	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18b56380	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1aeec363	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e985ed1	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20451f95	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21d76937	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x227ec08d	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x238a7865	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24a547ab	csum_partial_copy_to_xdr
+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 0x28c5aad2	svc_max_payload
+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 0x2bb63086	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9	xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f516345	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0	rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3337f017	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x345f5b73	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x359682de	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d9a337	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37b2a515	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x392d001c	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39ad3270	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39dda2c2	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4d419b	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f5c8b5b	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4021772e	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40a49339	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x418628be	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43533964	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x471c33c0	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49fbae53	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a0123a2	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c43d4ef	cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f88fd0e	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x509e8639	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50bcdc82	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50e04abc	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b	rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52efd8a9	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x545b52b6	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56bc997c	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a	rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ba18aa2	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000	rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e453a9e	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ec0f946	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x606a9de5	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x662de321	xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66511701	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67b76607	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x681fc937	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69f74374	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b46fcc9	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c13d87e	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d	svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7068b27f	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x747982cb	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x761747a2	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7760ebba	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79981370	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b732b3a	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8052352b	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80918d4b	xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x816868cf	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86206850	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86b3268f	rpcauth_unregister
+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 0x8d4f9921	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed4aceb	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f7f5053	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f8fc80f	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9493df50	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b04637e	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa079d3af	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa09ea305	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2939127	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa31a02ad	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa37be5b8	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3e48693	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3fc56f3	rpc_create
+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 0xa7df053f	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa88ad37e	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabe375b6	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3d5c44c	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb65849b0	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8a35130	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb900c0d8	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe930c9	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf18336	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc377f5	svc_set_num_threads
+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 0xc12e7b16	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4e39454	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5cc63a4	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc731a6b0	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc795ddd3	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc86dec89	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c692e7	xprt_reserve_xprt
+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 0xcc24bf55	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdbaddc3	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xceb69ad4	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3	xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf209414	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd03b3ebe	_copy_from_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd11a8c67	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd43aefac	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd481acf4	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd48fdb9f	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6a9861f	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda740a85	xdr_terminate_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdabfe424	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbddb278	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc2be7b0	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd7133e7	xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe093ce26	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2038c77	svc_addsock
+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 0xe7480b84	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe75cd3ab	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8d1f5a3	xprt_release_rqst_cong
+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 0xea8f0f2c	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaffc4a0	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec5b4457	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed71a84a	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee2834b6	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf04b7cc3	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0f21310	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2107653	auth_domain_lookup
+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 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb6887df	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd07d41c	rpc_malloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x03abab2f	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a70e3a1	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x13eb8974	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x44824a25	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x46ebdafe	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5ec444ab	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6040aff3	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x696b9641	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7d38ddd4	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x93104696	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xd9470745	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf6b43628	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7a18e66	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0fc9e594	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x12782b13	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x12b05480	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x48c18830	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7172850d	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7f73d86b	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa9281487	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf962ad1	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcfd9edc9	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe3d3d6ee	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4266f3b	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4ef55629	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x51769824	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa90e424c	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbe298482	ipcomp_output
+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 0x0262378f	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02e62e28	snd_hda_codec_configure
+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 0x070d45af	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a1af8db	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a35c3ec	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0aa92b12	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d48b98c	query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d82bdaa	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e4ec9e3	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10d53bd7	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1375c4d9	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16699c3b	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x177037aa	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17fc0ad2	snd_hda_queue_unsol_event
+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 0x1964b004	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a14e173	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a408ad9	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ba24ad9	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c46f84c	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d152b3f	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x216b7621	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x230c3c0b	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e06801b	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30325a2a	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32ca6d78	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x355a646a	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39ee2704	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ae5291b	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bc5774d	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ca2c0a9	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f2193d5	snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x431433c8	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45dcc8c5	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x494c0dbe	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49b1d383	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bdbf99b	snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cdd7c73	snd_hda_mixer_bind_switch_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 0x552a1dc8	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55ccc73a	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5607e08d	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x562cd666	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x572641d8	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5741d0be	snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x574dd90d	snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x589cfd2e	snd_hda_jack_tbl_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b8a3987	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f0d72b3	snd_hda_ctl_add
+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 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 0x6c5b2570	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ec672e3	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74d561b7	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a47ee24	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b03c641	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ca4caea	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80fe82f6	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81bed717	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82873843	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83f3e0ac	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84a6f446	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x882daa8d	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d6e29b2	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826	snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9357cff6	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x965d632f	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x986345d2	snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a9ee051	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9be5a384	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa41751e1	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa62f3199	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7ff0f0a	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa7d378e	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaabb67a7	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0fe8713	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1ed92f0	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6825abc	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0b0615f	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1b20ab0	snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4a5a43e	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69	snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc656b7a4	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e	snd_hda_get_jack_type
+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 0xd050b8d7	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd50608fe	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8e226f0	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda6be37d	snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb20c421	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2688093	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe39288a5	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe595762e	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe81af8eb	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe97200bf	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedc2f34e	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeed94408	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5e7212f	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7ac9d8b	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8ee7168	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9564309	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc6bc6c1	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe5fa584	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffbffa7e	snd_hda_codec_update_cache
+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 0x02dfc1d5	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x035204cd	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03849ba7	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05b3fd5a	dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06387a41	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06614d93	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09725949	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b1d3782	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c0b8322	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0dd5ff27	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f37c926	snd_soc_platform_read
+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 0x12abef8b	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x157d9ab8	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1902529f	snd_soc_info_volsw_2r_sx
+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 0x1c08b1f2	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f18e5e0	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979	snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2679064a	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2735fa12	snd_soc_register_codec
+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 0x2d8871b0	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x376f0c77	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a3fa7bc	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a55c05d	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f42cb14	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f9d514f	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fca6cc4	snd_soc_info_enum_double
+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 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 0x5d5d43ea	snd_soc_info_volsw_ext
+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 0x684a663a	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x695db98b	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a082a19	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e1292ba	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6eac842a	snd_soc_poweroff
+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 0x7b77f7de	snd_soc_register_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+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 0x894e140e	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b826e2d	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e788e37	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ea86e8c	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93630c6a	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96be3c76	snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98e40b80	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e8150d	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9be7f6f4	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cae8013	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d3b87ff	snd_soc_unregister_codec
+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 0xaae9dedd	snd_soc_default_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabebaf6f	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad33dcb6	snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0c09876	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3997eea	dapm_mark_dirty
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5756036	snd_soc_cache_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7e657f6	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbaf2c236	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb89d84f	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbeccda28	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbee14edd	snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc16bb002	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6a0e7fe	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94	snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc97b4ecf	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca049d41	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd65310c	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd39e8db3	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd837b372	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9d7b3ce	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcef830a	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde7a28fa	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0b12685	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe24b1eac	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe58339d7	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5b6320e	snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe71757ae	snd_soc_register_platform
+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 0xebfe3433	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec1656f9	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf11a9301	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf37d9a8b	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4a9e5e6	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5ed190b	snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8ee6492	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL vmlinux 0x000854a9	fuse_get_req
+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 0x0080f83e	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x0088a193	__alloc_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x009b1df3	usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x00aea9e7	shash_ahash_finup
+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 0x0114866d	skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x011cf028	regulator_suspend_finish
+EXPORT_SYMBOL_GPL vmlinux 0x012fe3c6	crypto_ablkcipher_type
+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 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 0x0210f0dc	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x026211e2	memory_failure_queue
+EXPORT_SYMBOL_GPL vmlinux 0x02d3d40a	inet6_hash_connect
+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 0x031e67dd	__get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x032968ac	ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1	__i2c_board_list
+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 0x041aedb6	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88	rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x044dae08	timerqueue_del
+EXPORT_SYMBOL_GPL vmlinux 0x04546423	locks_alloc_lock
+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 0x04e58eb2	fuse_direct_io
+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 0x0561aef3	crypto_rng_type
+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 0x05bf5b45	crypto_alg_lookup
+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 0x0697327d	init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x06f3281b	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x07140b5b	blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x0778e2d2	blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x077992a5	pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x07816f3a	usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85	kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38	rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07e444d2	vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x07f25fa8	pci_load_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0x07f300c3	smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x08185762	blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x082400f3	crypto_create_tfm
+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 0x09a609e6	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x09ada273	usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x09c72451	__inet_inherit_port
+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 0x0a884192	register_net_sysctl_table
+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 0x0ad3b192	debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b0c2341	inet_csk_bind_conflict
+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 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 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c4d7807	platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x0c7a544d	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d	key_type_trusted
+EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f	crypto_it_tab
+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 0x0d11708d	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0d131146	css_id
+EXPORT_SYMBOL_GPL vmlinux 0x0d1eab09	pci_enable_pri
+EXPORT_SYMBOL_GPL vmlinux 0x0d2946e9	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c	of_irq_map_one
+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 0x0da5786d	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x0da9c82a	tcp_slow_start
+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 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 0x0e356cba	bsg_remove_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0e45f06a	wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x0e8541a9	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x0e88e887	ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0x0eca3a3d	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x0f0bb077	__srcu_read_lock
+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 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 0x103d950a	skb_partial_csum_set
+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 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 0x122875be	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x123b4a20	bus_get_device_klist
+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 0x12fb8bae	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x130337b8	pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x1304388d	__module_text_address
+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 0x1380144d	crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x1385562e	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946	register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13c450c0	ata_sff_qc_fill_rtf
+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 0x14873b31	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x14cdb4e6	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x15123700	rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x1538e073	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x153a0c91	usb_anchor_empty
+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 0x15b00ef1	driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e	e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x15f734e8	sdio_writeb_readb
+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 0x16a17eb9	acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c	unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x16fa00ed	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x171b577b	unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x172cc8fe	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x172e72d4	vdso_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x173d3692	get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x17671dad	olpc_ec_wakeup_set
+EXPORT_SYMBOL_GPL vmlinux 0x17a030b9	part_round_stats
+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 0x192cef22	unregister_ftrace_function
+EXPORT_SYMBOL_GPL vmlinux 0x192f7a7f	pm_runtime_autosuspend_expiration
+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 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 0x1ad3e732	inet_csk_route_req
+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 0x1b0f5b88	ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda	speedstep_get_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x1b992987	power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f	jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1bcb2ccd	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x1bdf031d	ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x1be907f7	shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x1bfaf367	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x1c370c4e	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x1c3f42d0	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28	irq_free_descs
+EXPORT_SYMBOL_GPL vmlinux 0x1c5dba15	platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c	xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811	__round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1cb699c7	get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x1cc6d51f	devres_close_group
+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 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 0x1dd1e174	xfrm_audit_state_notfound
+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 0x1e7bbcb3	kernel_restart
+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 0x1f8e2bf8	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3	acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1f909f92	inet_hash
+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 0x20243ce3	skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x20519c5c	ahci_reset_em
+EXPORT_SYMBOL_GPL vmlinux 0x205c5ffb	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470	orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d84c18	proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x213a7680	tpm_open
+EXPORT_SYMBOL_GPL vmlinux 0x218cfe8c	blkiocg_del_blkio_group
+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 0x2233ee58	lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x2259b86e	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x225c7208	bus_sort_breadthfirst
+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 0x23bb67ab	register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x23d636f5	regmap_raw_write
+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 0x2447533c	ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x247ef831	kdb_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x24a7060e	dm_path_uevent
+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 0x24f3c5fe	inet_csk_search_req
+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 0x2542d2f5	cgroup_unload_subsys
+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 0x261b98ba	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x262f20a8	local_clock
+EXPORT_SYMBOL_GPL vmlinux 0x26507c36	wm831x_regmap_config
+EXPORT_SYMBOL_GPL vmlinux 0x265138cd	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x2655629c	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x26714653	simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x26ab0d46	tpm_continue_selftest
+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 0x27458190	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00	vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x279befd6	skb_morph
+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 0x27e657b9	shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL vmlinux 0x28097948	tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL vmlinux 0x28314381	power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0x2836081d	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x2897cfad	crypto_grab_skcipher
+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 0x290ab84c	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x293ac42c	debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x29f483ad	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x29f57e7f	regcache_cache_bypass
+EXPORT_SYMBOL_GPL vmlinux 0x2a2b358d	tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x2a61ddab	ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13	__suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2acc6453	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x2af44eb3	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2b2ed718	trace_define_field
+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 0x2b937430	cgroup_add_file
+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 0x2c2d90b8	unregister_hw_breakpoint
+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 0x2c7829c2	pci_disable_pasid
+EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd	regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2cacface	sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x2cbfa521	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x2cd5e159	proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x2cd912b7	power_supply_changed
+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 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 0x2e2360b1	ftrace_set_global_notrace
+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 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 0x2ed547fb	gpiochip_find
+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 0x2f683d9f	edac_put_sysfs_class
+EXPORT_SYMBOL_GPL vmlinux 0x2f79f791	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0x2f7cd4c7	__rtnl_link_unregister
+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 0x3013d13d	pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x301a5fde	sync_filesystem
+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 0x3099a10e	xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x309dd8d6	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca	bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30b782ae	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x30c8b1b3	rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x30e9737f	of_property_read_u64
+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 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 0x31b8b07f	ahci_fill_cmd_slot
+EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1	dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x31c7970f	pciserial_suspend_ports
+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 0x33b5c4fe	cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d	apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x343e2b62	ipv6_dup_options
+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 0x349f793d	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x34b19988	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x34c767b9	device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x34edf3e4	crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x35075ddf	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0x350b72b5	rt_mutex_destroy
+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 0x35d767ce	mmc_switch
+EXPORT_SYMBOL_GPL vmlinux 0x35e4c58f	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x36035f1a	netlink_has_listeners
+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 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 0x37768325	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x37f00094	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x3803503f	device_move
+EXPORT_SYMBOL_GPL vmlinux 0x380e5e6e	olpc_ec_mask_write
+EXPORT_SYMBOL_GPL vmlinux 0x3810c3b5	inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x382486b3	tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x382bd4f4	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x3841ab01	unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x3847200e	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x388cc0e8	scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x389482ca	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x3896cca4	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7	input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38d3e6b4	shash_ahash_update
+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 0x399d9782	inet_csk_get_port
+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 0x3a73a549	usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x3aae0a7c	register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x3abb683f	pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x3b095c6c	xfrm_audit_state_icvfail
+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 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 0x3cd53a2e	regulator_notifier_call_chain
+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 0x3d2430f7	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x3d2e48c4	rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3dc0b5be	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6	crypto_fl_tab
+EXPORT_SYMBOL_GPL vmlinux 0x3dd452d1	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7	bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07	amd_get_nb_id
+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 0x3e3ed6d7	crypto_unregister_pcomp
+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 0x3ea17046	crypto_shash_digest
+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 0x3f2f2b2d	shash_attr_alg
+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 0x3ffb7488	platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x40301e54	blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x40312497	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+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 0x41d463f8	find_pid_ns
+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 0x4375d901	rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x437b7de8	ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82	ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4406adf0	mnt_want_write
+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 0x4484a5a4	wait_for_device_probe
+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 0x45aae0de	sysdev_show_int
+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 0x4696482f	disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c	gpio_request
+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 0x476b330e	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x47752304	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x47999f70	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x47b52ae1	crypto_shash_update
+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 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 0x4958cdbe	dev_pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x49797580	tcp_set_state
+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 0x4b8c19e6	usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x4b915faa	rio_mport_write_config_32
+EXPORT_SYMBOL_GPL vmlinux 0x4b92a4f0	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x4b9f7faf	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81	audit_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4bd01ac9	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4bd6b58a	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0x4c04e2c3	page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x4c1f075a	class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x4c2db932	do_kern_mount
+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 0x4cddef31	tun_get_socket
+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 0x4d057a0b	__mnt_is_readonly
+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 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 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 0x4f963f71	rtnl_link_unregister
+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 0x500265a4	__put_net
+EXPORT_SYMBOL_GPL vmlinux 0x5013e6de	pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x501d6b9c	device_del
+EXPORT_SYMBOL_GPL vmlinux 0x505a1704	crypto_spawn_tfm
+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 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 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 0x51a408e5	ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x51bb4998	hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x51e21d0e	sdio_writeb
+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 0x530b93d9	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x531e034e	init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x532235e7	clone_private_mount
+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 0x53a3f978	regmap_init
+EXPORT_SYMBOL_GPL vmlinux 0x53d85477	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x53dc84ec	isa_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x53f6ded4	find_module
+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 0x546e278e	blkio_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x549da194	flush_kthread_worker
+EXPORT_SYMBOL_GPL vmlinux 0x550031fe	spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x5507f4d3	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x5513b8b4	regmap_raw_read
+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 0x55576864	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5560b28e	usb_alloc_urb
+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 0x560d3c0b	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x561235db	blk_rq_unprep_clone
+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 0x56e75d47	klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56f97026	ata_link_offline
+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 0x57bd7e1a	ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5805f2e3	init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x58103894	platform_device_register_full
+EXPORT_SYMBOL_GPL vmlinux 0x58193dc5	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x581f4ea9	blk_unprep_request
+EXPORT_SYMBOL_GPL vmlinux 0x582bed1a	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x585d32b6	blk_queue_bio
+EXPORT_SYMBOL_GPL vmlinux 0x588bb5bf	regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x58992dde	unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x5899340b	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0x589abf1c	blkio_alloc_blkg_stats
+EXPORT_SYMBOL_GPL vmlinux 0x58fe9409	rio_inb_pwrite_handler
+EXPORT_SYMBOL_GPL vmlinux 0x590a5c89	unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x59222cc6	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x5927ad82	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x59373f46	ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2	scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x593f34ad	fib_rules_unregister
+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 0x59d099fa	device_add
+EXPORT_SYMBOL_GPL vmlinux 0x59ea6214	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x59eae699	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x5a058324	event_storage_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x5a2f187e	pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x5a574e66	inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5ae7aa06	device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x5aeb093c	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x5b150762	__trace_note_message
+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 0x5bd90c27	inet_csk_reqsk_queue_prune
+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 0x5d20ad9b	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x5d2d333f	led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5d50102a	posix_clock_register
+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 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 0x5e0120a8	ring_buffer_oldest_event_ts
+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 0x5ece4eae	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x5ef0053d	regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x5f00e1dd	sched_setscheduler
+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 0x5f52ebbb	regmap_update_bits
+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 0x5ffdb591	raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x60057d76	skb_pull_rcsum
+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 0x615ac7c1	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x61634f05	lock_flocks
+EXPORT_SYMBOL_GPL vmlinux 0x61698c6b	platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0x61f5566f	rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x61fc4d1e	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x621b585f	vfs_setlease
+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 0x62d23fcd	scsi_get_vpd_page
+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 0x63137093	inet_csk_reqsk_queue_hash_add
+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 0x638ca9da	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x639d54d0	blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x63aac690	crypto_larval_kill
+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 0x64d8a053	scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x65139148	tc3589x_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x653d1ff1	crypto_drop_spawn
+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 0x65d6d0f0	gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65fa533b	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x66406635	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x665a1003	__scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x6678c287	crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa	crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859	nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66cd8319	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x66cef7d0	dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38	symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x670a7053	perf_event_refresh
+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 0x67aeb712	devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x67c7d4de	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0x680e650f	__rtnl_af_register
+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 0x68eebadb	mnt_drop_write
+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 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 0x69a2dc86	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x69a5cb45	generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x69b9db7e	security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x69bd21d5	blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a208aaf	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x6a2da027	bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x6a36d5ab	crypto_aes_set_key
+EXPORT_SYMBOL_GPL vmlinux 0x6a4736e9	inet6_sk_rebuild_header
+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 0x6a9d71b0	raw_seq_start
+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 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 0x6b91ac73	unregister_pernet_subsys
+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 0x6bd9215a	regmap_exit
+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 0x6c8179c8	crypto_alloc_base
+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 0x6dbedc86	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x6df207f3	da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x6e2f6b20	relay_close
+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 0x6eafec08	gpio_export_link
+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 0x6f608203	__tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0x6f998eee	__clocksource_register_scale
+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 0x6ff607b6	crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70004575	scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x700b1cd0	xfrm_audit_state_replay
+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 0x7076ea3f	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb	ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70a2e03b	mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL vmlinux 0x70f15b65	power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x70f66ca8	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x712d58b7	usb_put_intf
+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 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 0x72741f25	trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328	all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x7285f84f	unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x72b212ff	regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x72bdd409	skb_tstamp_tx
+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 0x73e43076	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x73ed5ce9	watchdog_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x740c2549	get_task_pid
+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 0x7460d168	ip6_dst_lookup_flow
+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 0x74c08941	kvm_async_pf_task_wake
+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 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 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 0x7790adc0	aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x77bbab8d	bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x78012553	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x780c78eb	bsg_request_fn
+EXPORT_SYMBOL_GPL vmlinux 0x7810b325	module_mutex
+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 0x792d87d2	filter_current_check_discard
+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 0x798565c4	inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x798b427a	__put_task_struct
+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 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 0x7a025187	kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x7a2ac0f3	relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x7a44958c	__audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438	pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a7c5175	amd_erratum_383
+EXPORT_SYMBOL_GPL vmlinux 0x7a8f254e	unregister_ftrace_event
+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 0x7b03ab0b	add_page_wait_queue
+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 0x7be2445c	wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x7c14f7fb	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x7c48b779	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7c4fe927	devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x7c505804	get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x7c7caf1b	dw_spi_remove_host
+EXPORT_SYMBOL_GPL vmlinux 0x7ca525f9	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7cb6e6ac	vfs_cancel_lock
+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 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 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 0x7e2d8ba5	xfrm_audit_policy_delete
+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 0x7ec22f9a	apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7ecaa075	sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x7ed5e27d	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x7ee38c2f	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x7eed202e	sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x7efc05e8	scsi_nl_add_driver
+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 0x80f3268f	__trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0x812fee35	sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x816d5b29	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x81754c8b	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x81892bcc	uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x81a8a930	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x81eded70	fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f	__gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x825f0828	timerqueue_iterate_next
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd	rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82d5b998	inet6_lookup_listener
+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 0x830501c2	inet_twsk_put
+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 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 0x868784cb	__symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86a6398d	rio_mport_send_doorbell
+EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6	klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x86cfcd55	regulator_unregister
+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 0x87c5c750	set_task_ioprio
+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 0x880e5964	crypto_larval_alloc
+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 0x889e9c2a	i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3	kgdb_active
+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 0x896b6581	preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x897d6e10	wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x897d8616	led_classdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x89b41c73	pstore_register
+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 0x8a0fed93	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x8a2aeef9	exportfs_encode_fh
+EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80	regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8a7a8850	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8ab50b5e	debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x8ae9ee9f	register_pernet_subsys
+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 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 0x8c49fa34	invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5	usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x8c660511	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x8c80778a	dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935	setup_APIC_eilvt
+EXPORT_SYMBOL_GPL vmlinux 0x8d1e4bc8	net_ns_type_operations
+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 0x8e9af5e8	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x8edfc605	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0x8f4b79e8	task_xstate_cachep
+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 0x8feb420d	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a	acpi_bus_get_ejd
+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 0x90879405	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a	crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90b5ae65	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x90ce63f4	pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6	profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x9171e74f	__netpoll_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x918ad429	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x91afc392	ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x91d884f5	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x91e5bcfe	olpc_ec_sci_query
+EXPORT_SYMBOL_GPL vmlinux 0x923703e0	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x924b4283	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x9259dcdd	md_is_badblock
+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 0x93588644	tps6586x_update
+EXPORT_SYMBOL_GPL vmlinux 0x936a890f	ata_eh_thaw_port
+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 0x94268f65	mnt_clone_write
+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 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 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 0x96b0a60d	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31	pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96e925f4	ata_acpi_stm
+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 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 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 0x97fb6470	dev_forward_skb
+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 0x98a56205	regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x98cbabf1	__module_address
+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 0x99112b5b	perf_event_create_kernel_counter
+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 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 0x9b3f1f90	netdev_rx_handler_register
+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 0x9bdedf33	find_symbol
+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 0x9c9abc74	eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b	xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cc25618	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x9d030b99	stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x9d0bd9a4	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0x9d2ed6c6	__pm_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x9d3181ba	__blk_put_request
+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 0x9da7f6d3	usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x9daea64a	sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x9db7dc88	ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x9dba71d7	sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53	perf_trace_buf_prepare
+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 0x9ec3c11e	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x9ec99fc4	usb_enable_xhci_ports
+EXPORT_SYMBOL_GPL vmlinux 0x9edc7ddf	yield_to
+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 0x9fa68cb7	register_mce_write_callback
+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 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 0xa0acda21	class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0xa0c14846	driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xa0c64df1	wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xa0c94a62	d_materialise_unique
+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 0xa1278f2b	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0xa1291622	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xa13a0e0e	xfrm_output
+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 0xa25dfc1d	devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0xa2a7a1dd	inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0xa2aeed64	__tracepoint_rpm_idle
+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 0xa31b42f5	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xa3819492	pci_pri_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xa38602cd	drain_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xa3ae9f1e	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0xa3b13c62	sk_setup_caps
+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 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 0xa5372a9c	crypto_shash_finup
+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 0xa5a248bf	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xa5b6be0b	pci_reset_pri
+EXPORT_SYMBOL_GPL vmlinux 0xa5e1dc61	xv_free
+EXPORT_SYMBOL_GPL vmlinux 0xa5e6b506	rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa63584db	ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0xa6478fda	crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0xa65ddde3	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa67e1b16	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa684bbd6	platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xa694cd8a	evm_inode_init_security
+EXPORT_SYMBOL_GPL vmlinux 0xa6c2cb0b	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0xa706817c	sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xa711302b	hrtimer_init_sleeper
+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 0xa867cf22	crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0xa882f46f	ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0xa886f35a	crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xa89df20d	register_user_hw_breakpoint
+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 0xa9b0753f	securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8	unregister_oom_notifier
+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 0xaa5082e9	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL vmlinux 0xaa7ecfee	tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xaa852c93	regulator_register_notifier
+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 0xab389b18	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0xab5e693c	pci_ats_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xab68c6bd	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6c880d	blkcipher_walk_phys
+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 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 0xae16ba7d	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xae1b7289	bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xae370b07	sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xae7bf8cc	dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xae7c5411	ms_hyperv
+EXPORT_SYMBOL_GPL vmlinux 0xaeea3073	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xaf14d5ec	wakeup_source_register
+EXPORT_SYMBOL_GPL vmlinux 0xaf36a63a	dequeue_signal
+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 0xafe110f2	pm_generic_poweroff
+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 0xb0a31608	inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977	ftrace_set_notrace
+EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xb0dbdb38	sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xb0f1b4a4	raw_seq_stop
+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 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 0xb1acbcce	rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1cebed6	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xb24d6828	tc3589x_reg_write
+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 0xb2cfc405	scsi_nl_sock
+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 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 0xb41f9291	register_efivars
+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 0xb4b17e8c	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xb4e06b1e	skb_cow_data
+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 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 0xb5ffd8f0	unregister_efivars
+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 0xb659a4d6	ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0xb65c53f1	debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xb6848702	xfrm_inner_extract_output
+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 0xb747bc69	inet6_csk_addr2sockaddr
+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 0xb824cefc	blk_rq_check_limits
+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 0xb8e1e6a7	da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xb8e2e962	vfs_listxattr
+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 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 0xb9e16f32	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xb9f3a94e	crypto_alloc_instance
+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 0xbadd6321	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27	scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaea569f	udp4_lib_lookup
+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 0xbb143ee3	crypto_nivaead_type
+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 0xbc8cb335	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xbc8cdb19	task_blkio_cgroup
+EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1	amd_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL vmlinux 0xbcfe7985	__hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0xbd11babb	pm_runtime_set_autosuspend_delay
+EXPORT_SYMBOL_GPL vmlinux 0xbd30f5bb	rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46	unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd9d36d1	crypto_register_shash
+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 0xbde40043	__lock_page_killable
+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 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 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 0xbfa0019f	tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434	pciserial_resume_ports
+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 0xc06b4046	set_cpus_allowed_ptr
+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 0xc0925b25	sk_detach_filter
+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 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc22b81fd	tty_set_termios
+EXPORT_SYMBOL_GPL vmlinux 0xc2697e71	__ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0xc27a9468	ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2bbe535	blkcipher_walk_virt
+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 0xc3a26aad	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xc3a567bc	tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xc407f280	ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d	sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc4820756	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc486e309	__sock_recv_timestamp
+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 0xc6b1baeb	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xc6b3a79d	blkiocg_update_completion_stats
+EXPORT_SYMBOL_GPL vmlinux 0xc6b9a860	tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc6fc0b8d	tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xc714fd14	cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc72e1233	__trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc75b94ed	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc792192f	crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xc7928de0	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL vmlinux 0xc7a268cc	aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc7a5c7db	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc7c1534c	regulator_register
+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 0xc885f4a0	crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xc88b7dc0	put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc8add232	ring_buffer_record_disable
+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 0xca0cbf66	dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xca657d03	__dma_request_channel
+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 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 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 0xcd35df9d	__blk_end_request_err
+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 0xce08f879	pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xce2ba65b	clockevents_register_device
+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 0xcec39f87	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0xced8057f	crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xcef0ade8	tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0xcef49b22	ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0xcf359f77	ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0xcf4b4f99	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0xcf6e6a75	find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xcf73be22	tps65912_set_bits
+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 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 0xd0ecda4d	kick_process
+EXPORT_SYMBOL_GPL vmlinux 0xd0f27f1d	sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xd0f2894f	timerqueue_add
+EXPORT_SYMBOL_GPL vmlinux 0xd0f93f8a	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xd100c0fc	__fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b	olpc_ec_cmd
+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 0xd1be4bed	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0xd1c4d1a8	power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xd1cca0c5	crypto_register_instance
+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 0xd21215cf	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6	trace_set_clr_event
+EXPORT_SYMBOL_GPL vmlinux 0xd2456b76	sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1	__round_jiffies_up_relative
+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 0xd2bdea2d	ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2	apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd316b710	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193	ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd35641e3	platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xd35e1584	nf_unregister_afinfo
+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 0xd414e0aa	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xd41d6f53	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd496f828	rio_release_outb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0xd4bf450b	crypto_init_spawn
+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 0xd57a3c74	crypto_enqueue_request
+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 0xd631bf9d	nf_unregister_queue_handlers
+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 0xd7dd7fda	__sock_recv_ts_and_drops
+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 0xd82e8ba1	crypto_grab_aead
+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 0xd87601cc	ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xd8e763a4	rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xd8e800ac	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xd8f05f56	inet_twsk_purge
+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 0xda758c2c	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xda7d8c5b	anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xda927569	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0xda9416b5	ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0xdad75b18	srcu_notifier_chain_unregister
+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 0xdb274e52	monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb670acb	ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xdb784940	sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xdba2ab06	free_css_id
+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 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 0xdc7ef661	crypto_register_alg
+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 0xdd221c92	get_device
+EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0	ring_buffer_reset
+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 0xdeea0097	perf_event_release_kernel
+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 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 0xe0333862	bdi_writeout_inc
+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 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 0xe151db79	crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xe154e70e	ahci_save_initial_config
+EXPORT_SYMBOL_GPL vmlinux 0xe17e462e	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0xe1aa1a08	tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xe1deb351	sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xe1e229b8	blk_trace_remove
+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 0xe2c11243	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xe2cba529	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5	regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe2df629c	crypto_remove_spawns
+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 0xe3273a2f	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xe33f1dd5	stmpe_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe34f7b37	xfrm_audit_policy_add
+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 0xe39b4690	css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xe3b1a3bd	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4	hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xe4003366	fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xe4145f09	iommu_detach_device
+EXPORT_SYMBOL_GPL vmlinux 0xe42f09f7	ip_build_and_send_pkt
+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 0xe4a586a6	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xe4b5d111	blkiocg_update_dispatch_stats
+EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6	acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0xe4ce9cd1	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xe504fbbb	ahci_kick_engine
+EXPORT_SYMBOL_GPL vmlinux 0xe5139ea5	crypto_unregister_alg
+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 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 0xe6a7fd7a	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xe6c1414f	locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xe6c4ad2b	debugfs_remove
+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 0xe7c6a736	srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe80d4a33	device_create_bin_file
+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 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 0xe8f254c0	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xe934e790	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3	devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe94a12dc	regmap_write
+EXPORT_SYMBOL_GPL vmlinux 0xe950d01b	sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909	usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9ed7c9e	blocking_notifier_chain_unregister
+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 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 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 0xeb43d54b	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xeb79cadd	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xeb9929bc	replace_page_cache_page
+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 0xeca532cf	xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xecd282a2	regmap_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xecda9a49	ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xecf39950	transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0xed2d62c4	tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0xed63b337	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xed97571f	rio_request_inb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0xed9bbb67	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xed9eb6cb	crypto_ahash_type
+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 0xedf86e2b	ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xee116ce9	pm_generic_poweroff_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xee4dce5d	zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xee6ad84c	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xee94dff2	md_rdev_init
+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 0xef28dd0f	skb_segment
+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 0xefb72398	pstore_write
+EXPORT_SYMBOL_GPL vmlinux 0xefc5f43f	xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xefda4a9b	blkcipher_walk_done
+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 0xf0305c01	eventfd_ctx_fileget
+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 0xf0c3bae1	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf125b557	ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c	irq_remove_generic_chip
+EXPORT_SYMBOL_GPL vmlinux 0xf1725bae	console_drivers
+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 0xf1d4667a	led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf1f5eb20	register_nmi_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf210b9f9	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xf238ebcf	pci_pasid_features
+EXPORT_SYMBOL_GPL vmlinux 0xf2c79980	raw_hash_sk
+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 0xf31b3fd1	workqueue_set_max_active
+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 0xf3b65bc6	crypto_init_spawn2
+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 0xf41d5188	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xf43b39b2	pci_enable_ats
+EXPORT_SYMBOL_GPL vmlinux 0xf4762f24	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xf47d643c	elv_unregister
+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 0xf5d30cf6	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf5d98587	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xf5e25418	pci_max_pasids
+EXPORT_SYMBOL_GPL vmlinux 0xf5f84569	sdio_align_size
+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 0xf6afc71e	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xf6cec1b8	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0xf6e04730	event_storage
+EXPORT_SYMBOL_GPL vmlinux 0xf6e1cabd	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xf6e34b91	vfs_setxattr
+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 0xf7322bc8	pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0xf756b9e8	kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xf7917c81	__inet_twsk_hashdance
+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 0xf80716e2	blk_add_request_payload
+EXPORT_SYMBOL_GPL vmlinux 0xf8082f4d	crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3	execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf83bf35e	each_symbol_section
+EXPORT_SYMBOL_GPL vmlinux 0xf8484609	spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xf851e158	scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xf870e4e0	aead_geniv_exit
+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 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 0xf9082d01	vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf9091788	ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xf92ce956	kdb_printf
+EXPORT_SYMBOL_GPL vmlinux 0xf96fe462	posix_timer_event
+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 0xfaa1b9ef	usb_usual_ignore_device
+EXPORT_SYMBOL_GPL vmlinux 0xfac02316	ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0xfac81125	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xfad65a83	inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xfadb18c1	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xfae79aa0	rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfb0d0ffe	olpc_ofw_present
+EXPORT_SYMBOL_GPL vmlinux 0xfb12e9e1	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9	power_group_name
+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 0xfc04623a	regmap_read
+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 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 0xfdf64602	tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL vmlinux 0xfe1453c2	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xfe6259ab	vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xfe7d6370	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052	gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfec95e2c	preempt_notifier_unregister
+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 0xffd529ee	pm_stay_awake
+EXPORT_SYMBOL_GPL vmlinux 0xffecba3c	mddev_suspend
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/i386/generic-pae.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/generic-pae.modules
@@ -0,0 +1,3531 @@
+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
+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
+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
+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
+uas
+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-36.57/i386/virtual.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/virtual.modules
@@ -0,0 +1,3531 @@
+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
+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
+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
+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
+uas
+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-36.57/i386/virtual
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/virtual
@@ -0,0 +1,12645 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x50016f69	kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x88151ea0	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 0x863e1c94	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x220f3a5d	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 0x2b81d731	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 0x0f1e4824	ibnl_add_client
+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 0xb7a8da05	ibnl_put_attr
+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 0xd6228c2b	ibnl_put_msg
+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 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 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 0x30b6c29e	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4c696348	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50b0254b	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x513b1657	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a3fa2d8	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x755f2c96	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87de1b8a	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x886c857d	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a54f0a6	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x942a1625	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99b27271	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9b169f61	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d221941	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xca63ed40	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2c76ca0	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe8b06c76	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe95c3d9c	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf585360c	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9e1528b	rdma_listen
+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 0x09029e4c	capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x252658a1	detach_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 0x2ed9ca81	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4	capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x375a3fbe	capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x39a016fa	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 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 0x8f699913	capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9afd2f9f	capi20_register
+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 0xaf9c2f73	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 0xbc0207a8	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc96d421a	capi_ctr_ready
+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 0xfbbf9b11	capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x043b23a4	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0d66ae86	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x21be3492	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x330079a1	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x45668327	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4da64a9c	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x590c91d6	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5b6158e6	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x65f911c4	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x74f45e52	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x849526e0	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8fd9e6b2	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x98c54df1	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xafcd07a1	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf626077a	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x479b74b9	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x56f79d83	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x77be9941	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7c525bc9	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa0d948bd	b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa126f333	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa360d25a	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbfd919c2	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd3ff10a0	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+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 0x4275cd5c	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x649bcb44	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6b113990	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb7f1a1bb	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x10488095	mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf89da6a7	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 0xfa41652d	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 0x07272ca9	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x16d0abef	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67c9ddf4	isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd4dc239d	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf94dfec3	isac_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x484624ec	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xb85860c1	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xec814de2	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 0x0661a4b7	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06753593	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x10dc7196	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x154f672c	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2148c157	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x261075f6	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b98568a	mISDN_unregister_device
+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 0x594bb5e2	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5d05faf8	get_next_dframe
+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 0x6d5695ae	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6d962d24	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f10eb57	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7f15acff	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x831ef721	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x87eff706	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x92cd67c4	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e1b2d46	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa9d8081b	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xacfa8108	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xafd6dbd6	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6db5390	mISDN_freedchannel
+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 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 0x01fd2649	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x29357372	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0xc5e2f71b	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0xe917ced3	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 0xc0716ade	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 0x14f2980a	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x171ac2c0	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ab4d3d1	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b9dc9a1	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ced287a	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x546bbb53	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5bf27261	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x66457360	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6655d462	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f4bdcd8	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x829428fb	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8338010d	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x88a35c42	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c71dfcd	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xadddc973	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb68a32e0	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe2f0b3dd	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8030cae	flexcop_i2c_request
+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 0x5728448f	dvb_net_init
+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 0xc8f91907	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 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 0x1f7cb842	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2c3d08b3	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x825edec8	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x836f5bc5	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xda26d91f	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe8775d38	dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf3943f25	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 0x92dc502e	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 0x03b9a4e8	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x34bb2752	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4a4a7c29	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5f4ecd2b	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6a1d3299	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa4f3c1b8	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xac509aae	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 0xbfe2548a	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf708cd92	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfa808fdd	dibusb_pid_filter_ctrl
+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 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3da7eec6	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x790b8c8f	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc115c51e	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd250f0b5	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf99f2c59	cx18_release_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 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 0xaca21b29	videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xdff3c103	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 0x1a9d97aa	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b0f45b3	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1cf3bd49	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2785a968	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2eed6d97	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x35fa3452	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x445c540d	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7df5f196	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb3852b8b	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe3886c24	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4055af79	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x66d83149	com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf39d23ec	com20020_found
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x21e363c9	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x228ae912	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3440697d	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x482165b1	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6b25ff4c	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6e342443	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa5735f02	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcd729fa5	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd130950e	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xda30d279	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x1038a925	eip_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x136fe6b8	eip_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x23bcf502	NS8390p_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x35c9c776	eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x686b88c1	eip_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x689542ec	eip_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x7f61535c	__alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7	eip_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xaf6baca7	eip_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbc980268	eip_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xdb7c8bcc	eip_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xc7d59ff0	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x8bed8d2b	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x8ba303b3	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0a9ce885	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0ff8f649	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x29d54023	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x30641eb8	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x43d77b8c	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4b321f9b	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6dcf3d82	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x79e1eecd	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7d944f5f	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa4eea704	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc4d4c702	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc7622624	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd8b838b1	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe2d47963	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe3403051	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xebd8a72f	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x26a8c941	cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd	cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x42e1e341	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04	cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5ce0ebea	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6de7eee0	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x94a45d63	cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1b3c061	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa4a36736	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb5a2c8a1	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc5ca071f	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36	cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd01665b3	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd34173ba	cxgb4_register_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 0xf35a3d49	cxgb4_port_viid
+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 0x540a239c	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x69588c00	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x89822cf2	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9f5de3ec	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd0853fbe	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0f3ba970	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3162a62a	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x44d2249c	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x65d06377	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x66676472	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7ef7e2b7	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82416d06	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x855e9034	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd6d224fe	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdf19a12f	sirdev_raw_write
+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 0x2a0d67e0	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xee123686	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x16c703ea	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xb4f812b4	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xb6132b08	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xa6180afc	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1c03ef7b	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x40846598	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4f01dafe	tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x899724ae	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc176abdc	tmsdev_term
+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 0x17580b75	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x215cd7b1	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6514cf7c	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6acca419	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xad7d3d23	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc91450a6	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xce1be591	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xce3ac585	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf836733c	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfd0f22af	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xff6d4c1e	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988	z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x15d938bb	z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0x223eb1f2	z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0x50bfc44d	z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0x51e742be	z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29	z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x69d1c9bf	z8530_channel_load
+EXPORT_SYMBOL drivers/net/wan/z85230 0x7427b236	z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x7cc4d802	z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0x92012308	z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa8a65fcb	z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa8f84af2	z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0xcd8e33ee	z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xd00f3a92	z8530_null_rx
+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 0xe50a7f40	z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0xed6b6084	z8530_sync_open
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x5a850776	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x7a7ec0e1	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xa32d1ffd	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xc00ce90b	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f88b1f3	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 0x519dd862	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x70c2e4d2	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9782289b	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa21fd442	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa50acbe2	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbaeca972	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbd344957	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd7b853ac	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x07b1bef8	ath9k_cmn_update_txpow
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1743fef3	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3dc69308	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 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_common 0xf73b15dd	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x069fcfa7	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x073752f3	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x077000d4	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09ca9a45	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d4f2b8	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a7f165e	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e81fe5a	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x106548b8	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10fcb558	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1240b2c6	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13984014	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13fa923d	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ca3aade	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23c2875a	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24f40557	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x255f2c36	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x287a3fdc	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28f6f350	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29e3ec87	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e3d9566	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32ed627c	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40e70ba8	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4585e1ae	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45bdf415	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a338b78	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x501045d0	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50238c3b	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x523c063b	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5278e6b2	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x542aebda	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x579a777b	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e3fd91f	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6007b12e	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x604fe623	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60d25cec	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6422620a	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cc4e666	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fffdf2a	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x719ab3d9	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x731337e4	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a7423df	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d662df1	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e76ce23	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e92f08e	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7eaa4899	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d1a220	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82c97189	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x838c1e1b	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83cfec01	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88427b2a	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89446632	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c32470a	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e754cef	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92b69f64	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9794e6fa	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa13c0ba5	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa543f2f9	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa86b670d	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa37eec2	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab498acf	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac2115bd	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac31efff	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae619989	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafed6990	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb014d2e6	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb04d218a	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1a7050b	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb342e7b0	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb715dd5c	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7217c19	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1570b4	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0e9a20d	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2f81950	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3600f3f	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7daca00	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd4ec6b9	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf3a53d1	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf7229ca	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2ca7d4f	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7eda7a2	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe93ea4fe	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea06439a	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef367a6b	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf62116e6	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf81ad8ff	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf86a637e	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9615192	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9e0e41f	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x371e8a1c	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xa86b0757	init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xe56177d7	stop_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 0x414a6789	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x45d959e1	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b2e3b2c	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b58e725	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x82c9f06b	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x97ec9ea1	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa6f00b1c	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb2146535	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbb45609d	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc09d68e1	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc3cd81c8	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd382678e	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdbfa93bb	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf62a1ffe	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11f51ee0	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1aff6409	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1cc73e5f	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x36595375	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a53a100	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3aa14146	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x698a51c8	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x779cc3f6	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90a018aa	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9376901e	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97f21b60	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x986cb43f	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb03098bd	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb085ff9b	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0	hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3d61ead	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2a7d321	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xca9f7033	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc385bb4	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdd57b76d	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe39a248c	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3f06d46	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe83afc84	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb884348	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf77bbf5c	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf9e46f81	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x081de5e4	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ba209d5	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x287f5036	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2cc996a5	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ac59ce5	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x406bf05b	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4231d19f	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4efd022f	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x51d17713	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80a31635	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8c20b0f5	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x94b8608f	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa614ff29	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa98d5129	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbf2eea6f	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2a2ba2b	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd56d4d36	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xde17ba5c	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe641e24d	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xee197aef	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf64accd5	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x078ef4a2	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a51beeb	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0c468a90	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0ed982f5	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x121a2e6c	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x12384954	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x12857db6	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1382f2e9	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x178763b3	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x19954d0c	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1aa3b904	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20b6679f	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x22e83fb3	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27fcab73	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x28c8ee4a	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x291b3c30	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2b219084	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e8a48eb	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3117ce61	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x31870932	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x323529dc	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3644da1d	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x397907bc	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3fc03457	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41cbbe15	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44353ba5	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44929ba4	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48119d7d	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48683cbe	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4985241b	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x514941f6	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52b376fb	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5abd9d64	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6079196a	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x613f58fd	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x61580610	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x61f56323	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6c401a70	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e63a955	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e86faf8	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x718d3e80	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x750f5391	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7916933a	iwl_legacy_clear_ucode_stations
+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 0x834a6847	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x86f960d3	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8af9109f	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8b10d606	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d1d9da0	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d4f67a3	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d5e4677	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9053db6d	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x921d0c53	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98ebc446	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9a6f0904	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa0492053	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa0bd9fc9	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3a1e622	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa592961c	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa5ddd039	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa8c09936	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaaa8bec9	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaad3bb81	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768	iwl_legacy_get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabefef08	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207	iwlegacy_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb0036231	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb0cc6525	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb32eba10	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb5036e99	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb91ebe2b	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbb86ad2f	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbdceaaae	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc0fb6344	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc12ba851	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc4342f23	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc721f707	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcd2ce4c1	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd250a17f	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd4c6b816	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd720126b	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdb6cc69f	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdea2aec9	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8b27ad4	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe9c3c3d3	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeaf343d3	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeeca5d8d	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf3bcabe1	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfe57d1e4	iwl_legacy_mac_conf_tx
+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 0x0087e4a7	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1be279ba	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e5bdcaf	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2000588b	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2a145ea6	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2fb429eb	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5feeecbf	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x620ccf50	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a7cfaac	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6cb9bac2	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x797c93f6	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa48479d1	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa5039371	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb366c195	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb978556e	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd819b955	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x07265477	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0941358b	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0c92e878	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x124f20db	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x13f5a209	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1760fe23	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17780bf1	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20017ccc	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f604b58	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32a9681c	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3470995a	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4f41609a	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51e94287	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x598d7042	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63eddfb7	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x697404dd	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x799033d2	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7f927f2a	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x80d8e0ae	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x83370afa	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8b93f62f	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c803813	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ebeb19d	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x911f794f	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99d728cb	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ba45705	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d36a0e9	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa1ca4b3a	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa6e0178	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac491148	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb030dd65	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 0xbdc70dc0	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe4bd6e5	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbec4aa42	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc2e9ddd	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd45d8797	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd4ad3655	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeb9b073a	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf33897d3	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6e9c42f	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6f7de2a	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xffe3f115	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x122da239	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1dd6d17c	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1f1b467c	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3686a339	rtl_pci_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a0ee221	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3bba787c	rtl_efuse_shadow_map_update
+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 0x602b2ea5	rtl_pci_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x61fdf5a1	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6917065d	efuse_read_1byte
+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 0x869d113c	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x86f49915	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8ea2928f	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb16d8dc1	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb1f071ef	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb80a39e3	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd4f6a7d5	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeff2603e	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf3bf630f	rtl_cam_get_free_entry
+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 0x08315266	pcmcia_get_mac_from_cis
+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_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 0x4f2f3c82	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x9a9592c4	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0xcb630aa9	pps_unregister_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 0x4fd2d874	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x595708bd	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6e712a9d	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9a2a139c	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc3ed59b6	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc94cc815	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcabc9958	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xda1d4ac0	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe83ed8d4	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00271e22	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x009bdc49	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0120dfea	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03890bd0	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04e6a2ba	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b2b4a65	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c178905	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13f3f808	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a9fbedb	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ca9cd73	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f22630a	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2543e2a1	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26da240c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b41bb09	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c52ade4	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55ab11df	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c241652	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d1739ae	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75898de7	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76cc39c6	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83ab65ee	libfc_vport_create
+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 0xa04cd19a	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa08cedbf	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa16d3ea8	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7c1f678	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9066721	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac3e3d02	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaef62475	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1ec219b	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb84f69e3	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdc781c9	fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf8c59ed	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc000908b	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52ae298	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd417696	fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd0882c66	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdcb68aaf	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde03081a	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe065a7b7	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe802a251	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea186a8c	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee0c7f47	fc_elsct_send
+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/libfc/libfc 0xff312c9e	fc_vport_id_lookup
+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 0x0637a8b4	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11927282	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11ea221f	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12f56d30	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x172f9324	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x197a2cef	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1bd3fb59	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f286144	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x225f8e23	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x231193d2	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27bde0ef	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29e5c426	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29e85f24	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c3c162a	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e92fc35	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50b5cf43	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x529f4044	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6125c3fd	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6525b266	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6957e2f8	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d8106d8	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x710cefd0	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76497f40	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e10cf30	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x834f9a54	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85b8c2ef	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d1be912	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d736635	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9037f150	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91f4e862	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92a6f770	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95e40251	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e1eb9f7	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa254a028	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa452b9bc	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa544c6e0	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8a99a41	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8eaf73b	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa7e57bb	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2d24ed3	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb81fdd28	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbab165c8	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2e8f063	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4c4d35d	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7326882	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc967d749	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca916c96	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc5b048e	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1629391	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8b256bc	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7a8bfac	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0273638	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfb743e1c	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff8fa731	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x03b27f49	vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0bc6729c	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 0x226c3df0	vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x260e6b4c	vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2b336b61	vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x34270182	vme_slot_get
+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 0x45e99d27	vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x533178ee	vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x5b828e90	vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f	vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6ec42e5c	vme_lm_request
+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 0x9aeb07e8	vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xad39e861	vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0xb3b26dfa	vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc1a90e31	vme_bus_type
+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 0xcd836167	vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcfeed376	vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5	vme_master_write
+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 0xeca0904a	vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc	vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfd16e3ab	vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfec88e39	vme_unregister_bridge
+EXPORT_SYMBOL drivers/target/target_core_mod 0x01f5eb2c	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x03171f91	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x03b64ee1	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x080c80c7	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1393232a	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0x19a62871	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x26f7c57f	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x271e5a9b	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2cb86e14	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5f3810	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x31776f0d	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3ac7ee37	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x467a2625	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4dac0e8e	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4f2efec0	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x57662e7c	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5eb27f8e	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x605b730f	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x64f74998	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x685aac76	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x691aa9a3	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7123bcfe	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x71bc1ee3	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x75fe3466	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7686f712	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x76a1b571	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x786e3ad0	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x78967f48	sas_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 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ab2e3bf	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8abc08c1	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x90d7c145	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x93398b38	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9e1ed74b	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9ec8e627	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9fa220cc	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa3f745c5	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad0d7f4a	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb0d19e57	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb13ea622	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb25362d3	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb3c4c0d1	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb86dc70a	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb9086dc7	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc7317cf0	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0xca965416	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcc7fa131	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcc8e5fb6	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd14b5d7a	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd2d01a16	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd674d781	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdc9cc46e	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe680df75	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xed03a558	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0xed824dce	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf11f1426	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf1d29f8a	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf326120e	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf6af5ee8	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf6ff6ccf	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf79d3fab	sas_get_fabric_proto_ident
+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 0x12129923	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x161317b1	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e05d2fc	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x52f7bf57	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x55b53ba6	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x66a1f013	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67d6ef0a	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x68a37928	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72ca400b	usb_wwan_ioctl
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90732fae	usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3c3ec2f	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab0983e5	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xadf70d51	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4b6cc2f	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf61a4064	usb_wwan_dtr_rts
+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 0x38f990c9	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 0xad86b463	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 0x18e54449	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x2c9b63b8	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0x80cc04f5	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x84f32f26	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x8bb407ea	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0x92ba0b65	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xb35af62e	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0xbc8cb794	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0xc802cf79	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0xc94e1538	extract_attr_from_ios
+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 0x6575c890	make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xbf7c120f	destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x06628923	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x0a659f53	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x0b54878d	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x1041ac60	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x173b56e0	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1d2ee56b	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x1eff6e77	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x1f9a85c1	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x20140b87	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x2a840ddb	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x316c8ac2	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3abfcd63	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x3d0b4de7	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x481c244c	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0x51c66dcc	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x561e2fac	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x5bbf65f0	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x6f09c3d9	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x70c630d6	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x7406a689	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x8301594e	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x8439d106	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x848cc6cd	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x8a7b43f9	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0x9105f269	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x987bb186	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x990c3c4a	p9_client_open
+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 0xa64041b7	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0xa97da2ff	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xb65841d3	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xbc1efb17	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0xdd299cb7	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0xdec112bc	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xe40c3f1e	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf7230809	p9_client_link
+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 0x11152b3d	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x57440309	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5e891da2	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xcd7626ca	aarp_send_ddp
+EXPORT_SYMBOL net/atm/atm 0x0cda42d8	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x50c8c584	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x532069b9	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0x6694471e	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0x6a740e16	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x735eef38	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x846be3b3	register_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 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb524b154	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xba958c66	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xd4f1a810	atm_charge
+EXPORT_SYMBOL net/atm/atm 0xf3cd9394	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf618ee8a	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0xf9f33d93	vcc_release_async
+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 0x5a90edcc	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x82a37dda	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x9ca40ca8	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xad599bd1	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xbac72eb2	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xc9a501d4	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xd71fd7a2	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xe995c5aa	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xec450e46	ax25_listen_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x00140370	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x04bfd90f	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b5216e6	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x27b97b21	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2beaad9e	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x315e998d	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x31c39c88	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x361c6deb	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cf264f0	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4678dbf4	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4dc2ba3b	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e676790	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f8eec00	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ea715d9	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x635dbc05	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x64cea1e9	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d5c60dd	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f80e67c	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x719b16e4	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x73982606	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7748bdf3	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ea841f4	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8dae1a55	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x99841141	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb51b2baa	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbc8ae9a	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbed96dd6	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc59bf1ca	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8321ecd	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8a3f440	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd0c38ddc	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2d1f7e9	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5bfa506	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8330169	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2bf89b0	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8d64dc6	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xec9f3105	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xed6157fb	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf08ec0db	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf33a4e94	bt_sock_poll
+EXPORT_SYMBOL net/bridge/bridge 0x5f469d45	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x10209b34	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x71b31262	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc75600a6	ebt_unregister_table
+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 0x4c4c342d	caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x504da5e8	cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x54691e89	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0x5807d88d	caif_free_client
+EXPORT_SYMBOL net/caif/caif 0x63e9812a	cfcnfg_set_phy_state
+EXPORT_SYMBOL net/caif/caif 0x9177b131	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xa9fbabdd	caif_disconnect_client
+EXPORT_SYMBOL net/can/can 0x114e9ee7	can_proto_register
+EXPORT_SYMBOL net/can/can 0x11a0862b	can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x9bc92549	can_send
+EXPORT_SYMBOL net/can/can 0x9ee62132	can_rx_register
+EXPORT_SYMBOL net/can/can 0xbd178b9e	can_ioctl
+EXPORT_SYMBOL net/can/can 0xc4d9173e	can_rx_unregister
+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 0x197effcb	ceph_osdc_release_request
+EXPORT_SYMBOL net/ceph/libceph 0x2122d841	ceph_compare_options
+EXPORT_SYMBOL net/ceph/libceph 0x230ea9bd	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x259dd5a5	ceph_con_keepalive
+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 0x37cc042f	ceph_con_close
+EXPORT_SYMBOL net/ceph/libceph 0x3abec91f	ceph_pr_addr
+EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a	ceph_destroy_options
+EXPORT_SYMBOL net/ceph/libceph 0x3ef976b1	ceph_msg_new
+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 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 0x836c70fc	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x8d884dd5	__ceph_open_session
+EXPORT_SYMBOL net/ceph/libceph 0x9b97a2cd	ceph_monc_create_snapid
+EXPORT_SYMBOL net/ceph/libceph 0x9d531b34	ceph_messenger_create
+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 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 0xc76b35de	ceph_messenger_destroy
+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 0xe137b0a8	ceph_osdc_cancel_event
+EXPORT_SYMBOL net/ceph/libceph 0xe2462f12	ceph_osdc_create_event
+EXPORT_SYMBOL net/ceph/libceph 0xe3514bfd	ceph_zero_page_vector_range
+EXPORT_SYMBOL net/ceph/libceph 0xf1d4753f	ceph_con_open
+EXPORT_SYMBOL net/ceph/libceph 0xf2ace98f	ceph_alloc_page_vector
+EXPORT_SYMBOL net/ceph/libceph 0xf4858c94	ceph_con_init
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x30d3b4ff	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3178b5fa	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f873f7c	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x57f6f3ab	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7a96f6b0	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7eafb77c	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8d3db524	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8f188f39	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x96e6a6c6	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9d73600e	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xad02956f	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbe3daf54	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc39ba0d3	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0d41ef4d	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5004c9a8	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9552f46e	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x098d4b2a	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x119cc3a5	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1e3f95b2	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3d6deef7	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x53069842	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7d6fd15f	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb00b4953	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xba774159	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe87ea423	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xffd92c00	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x8bc8842d	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xca6dff8c	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x795f0869	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7aa4a24f	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9b09750b	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb0658176	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x382a4552	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xf46da673	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x069213b6	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa9e881cf	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0bb504c8	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x321e7533	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x351f21e2	ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4a3f7ecc	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5b5dfda4	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9b9b1c8e	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe59bebd9	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfad0f1bd	ircomm_connect_request
+EXPORT_SYMBOL net/irda/irda 0x01a9535d	iriap_open
+EXPORT_SYMBOL net/irda/irda 0x01dbeb0e	irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x060edf72	irda_notify_init
+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 0x18b71a59	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x19f5339d	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23a2eee7	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x25fc171f	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x28a1e5b1	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x2c71b6f9	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x3540b45f	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x359de411	irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x38b227f1	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6	irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x3b9bdefe	irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x3f0ab861	irlmp_connect_response
+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 0x5a92b26d	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x5d1a1c04	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x5e5e7e08	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x62acf28c	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x648c7478	hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x686a86f4	irlmp_open_lsap
+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 0x763e54a4	irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728	irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7b3a115b	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x7d54adaf	irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x7da2a629	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x7ff509a2	hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0x817d3d57	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x8cd99be0	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x936320e1	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x95265aca	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x989efebf	irttp_connect_request
+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 0xa51f2707	irttp_udata_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 0xc0bee29c	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae	irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xdfb97b0e	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xeddcfdcf	irlap_open
+EXPORT_SYMBOL net/irda/irda 0xf1603819	iriap_close
+EXPORT_SYMBOL net/irda/irda 0xf4e2f722	irttp_data_request
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xab76fadf	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x1b62284f	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x2304cec2	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x5b165fea	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xb2e03db5	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xbc591c92	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xe228d18a	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xf2a90966	lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xf68edfe1	lapb_setparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x0052e319	ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x03b9c223	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x06c54590	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x0bdfaa5f	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0x107ab520	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x107f5510	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x10a28382	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1472d62c	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x178f4954	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x22812e83	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x26bb9edf	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x28b4b001	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x2c24835a	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ce8fbe7	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x2f56d63c	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x3e55ad4a	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x43700267	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x49093373	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x4c596985	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x5b03dc5f	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x5bb0983e	wiphy_to_ieee80211_hw
+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 0x5ec91459	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x6233939f	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x628d2872	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554	ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x647772e8	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71	ieee80211_sta_eosp_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x667e4c4c	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x76254d59	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x7a7a27ec	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x8b6b57ce	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x8bccd9dc	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0x8e41e427	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x980586f4	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0d63af2	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa61512e7	ieee80211_queue_delayed_work
+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 0xaefa4dcc	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xbdc9f54a	ieee80211_nullfunc_get
+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 0xc948775b	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0xd354e0a9	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xd3584e52	ieee80211_restart_hw
+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 0xe0b7d213	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02	ieee80211_report_low_ack
+EXPORT_SYMBOL net/mac80211/mac80211 0xe84f952c	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xf27750c7	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xf4c62910	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5ef8d3d	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2267870d	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2457e879	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x28042cc0	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4713e5d1	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x540a18c1	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x790be123	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fc42137	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcea5255d	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd6f59cf5	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xea2357f4	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xeda73fc5	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf0f1a67e	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfa416af7	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfdc646d8	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x31b3c0a8	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x78f94297	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xad5caed9	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xeac15db3	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x1c50362a	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x318949d3	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x320dc8d2	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x61176acf	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6389f661	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x641caede	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x843b7281	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x8a7a8f1c	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xceecef09	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xe7928d55	xt_unregister_match
+EXPORT_SYMBOL net/nfc/nci/nci 0xb3bdd999	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xb46ea839	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xe98f5866	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xe9bbd002	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0xf719ee13	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x3b603f76	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x3faaa37e	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0x41c56c1e	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xd4ab79ec	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0xd8d298c1	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0xdb3d8185	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0xf80a8307	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xfa7c8c2f	nfc_alloc_skb
+EXPORT_SYMBOL net/phonet/phonet 0x2564f48b	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x4bac964e	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x80c2d9df	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x8cdfd813	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xab146787	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xb46d2769	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xd8e1429b	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xf4158d14	phonet_proto_unregister
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0154b22f	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0809088f	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0bfbb9f0	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ce181e0	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x560b5e42	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x607d32ee	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b771347	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa77003bb	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xac423637	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc51c581d	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc5fc8632	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcea6f32d	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd43736e9	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddb4a0d1	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe99e2618	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x8dedb0ee	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xe2013ef9	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x254bf195	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x5c21f19a	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x05404b4a	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x0599a518	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x0791db75	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0bc4c0d2	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19cdcfa0	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x33425459	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x33dfe4fa	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x34b28aca	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x3861f483	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x408a37ae	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x455ac236	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x457f6093	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x477407fe	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x50f02286	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x56f4e475	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x5fcd5d71	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x6223dedf	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x67dda7ee	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ae1fe43	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x6fa80c21	cfg80211_testmode_reply
+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 0x84348ffe	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x89649932	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x92929743	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x993800dd	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x9c69d84e	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x9fc0c1c4	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa1e3656a	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xa2cfba70	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0xa89a7ced	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xab111dbe	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xacb0d5c8	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xae3394ec	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xaf950a6a	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd0efd3e	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xbe45a133	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf942823	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xc5277e5c	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc6f43c3e	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xc997f0a5	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xca301e61	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xcbf3692c	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xd468d97d	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xd541d7b5	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xd61a1898	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7933795	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8225a05	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xe2129ac9	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xe35b2445	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xe4a50b86	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xe96d0a96	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xee7dcc5d	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xf3484300	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf3e5af13	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xfa338ec5	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xfc1cb005	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x0e903c01	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x63995d71	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8a1a23f1	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x9b1c1b6c	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xdf16e187	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xf68ecd2b	lib80211_crypt_info_free
+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 0x00528f66	rtnetlink_put_metrics
+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 0x00e8097b	csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00f42699	files_lglock_global_unlock
+EXPORT_SYMBOL vmlinux 0x0109ad1d	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL vmlinux 0x0124684a	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x012f55c9	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x014bdbb0	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x016b3184	__devm_release_region
+EXPORT_SYMBOL vmlinux 0x01863208	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019ec584	tcp_md5_hash_header
+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 0x0251daa8	fget_raw
+EXPORT_SYMBOL vmlinux 0x02649054	security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0287d84e	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x028dee69	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x029444f0	native_read_tsc
+EXPORT_SYMBOL vmlinux 0x0297d172	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02af9934	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x02b3d0d5	x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0x02b78135	scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x02d81845	audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02eb77a1	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02f12c71	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x02f36aad	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x03267cfa	skb_split
+EXPORT_SYMBOL vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033c2b4e	proto_register
+EXPORT_SYMBOL vmlinux 0x03452405	mnt_set_expiry
+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 0x0388a3a4	skb_put
+EXPORT_SYMBOL vmlinux 0x03930bb0	security_inode_permission
+EXPORT_SYMBOL vmlinux 0x039855b6	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x03b19d36	lease_modify
+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 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0424b89c	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x042cc470	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x0431c227	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x04557b16	intel_gmch_probe
+EXPORT_SYMBOL vmlinux 0x04568a2d	neigh_parms_alloc
+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 0x0495e3a1	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x0513d699	__rta_fill
+EXPORT_SYMBOL vmlinux 0x052175ca	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x05277791	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x055e2b2d	del_gendisk
+EXPORT_SYMBOL vmlinux 0x057545c8	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x05936d9e	napi_complete
+EXPORT_SYMBOL vmlinux 0x05946e8d	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x059509f2	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x0596f5e3	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x05d053e0	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x05ff0326	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x0617df20	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x063580ed	bdevname
+EXPORT_SYMBOL vmlinux 0x06468ccc	pci_enable_device
+EXPORT_SYMBOL vmlinux 0x0679586c	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06865f0f	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0x068c7263	ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06b5e2bd	processors
+EXPORT_SYMBOL vmlinux 0x06b7bb20	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x06cd430a	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x06d2f086	dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x06d883a8	pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x06f4bf00	seq_escape
+EXPORT_SYMBOL vmlinux 0x06f6feb0	phy_detach
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x071ddcb4	pid_task
+EXPORT_SYMBOL vmlinux 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12	generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x075691a0	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x07608604	acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x076ebea8	pv_lock_ops
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+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 0x07ecf70e	journal_restart
+EXPORT_SYMBOL vmlinux 0x07f65b37	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x081d0655	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x08283966	flush_old_exec
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+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 0x0897287b	acpi_disable_all_gpes
+EXPORT_SYMBOL vmlinux 0x08bf826c	_raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x08c08093	sock_init_data
+EXPORT_SYMBOL vmlinux 0x08c215d6	mmc_calc_max_discard
+EXPORT_SYMBOL vmlinux 0x0922def5	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x0924ca62	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x0933aae1	efi_enabled
+EXPORT_SYMBOL vmlinux 0x09389545	netdev_err
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x0953cfd8	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x095e7891	drop_super
+EXPORT_SYMBOL vmlinux 0x0968c38d	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09ae41c4	i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x09b49fcb	__ht_create_irq
+EXPORT_SYMBOL vmlinux 0x09b6c1e5	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0x09be8691	skb_unlink
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09d4e2be	tcp_check_req
+EXPORT_SYMBOL vmlinux 0x09dbfe57	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x09eb1bb1	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x09fc13b0	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x0a08b7ba	fasync_helper
+EXPORT_SYMBOL vmlinux 0x0a094649	skb_pull
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2ac101	genphy_resume
+EXPORT_SYMBOL vmlinux 0x0a2e1adb	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a37f021	pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a51802e	elevator_change
+EXPORT_SYMBOL vmlinux 0x0a53b3be	generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0a617a45	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x0a686ad1	__getblk
+EXPORT_SYMBOL vmlinux 0x0a8a6126	netdev_update_features
+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 0x0ae551f8	inet_sk_rebuild_header
+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 0x0b273864	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x0b3420cd	security_old_inode_init_security
+EXPORT_SYMBOL vmlinux 0x0b47cc19	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL vmlinux 0x0b6f3248	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x0b7086d9	param_get_short
+EXPORT_SYMBOL vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7e4acc	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x0bc23954	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL vmlinux 0x0bcad541	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x0bd39349	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x0c119645	pci_disable_obff
+EXPORT_SYMBOL vmlinux 0x0c1bdece	bmap
+EXPORT_SYMBOL vmlinux 0x0c2a11e4	free_task
+EXPORT_SYMBOL vmlinux 0x0c2cf201	d_instantiate
+EXPORT_SYMBOL vmlinux 0x0c433a7c	__inet6_lookup_established
+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 0x0ca7b7a8	acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cb20d35	dma_find_channel
+EXPORT_SYMBOL vmlinux 0x0cb954a3	__find_get_block
+EXPORT_SYMBOL vmlinux 0x0ce6a75b	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x0d1aedb2	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x0d2808e8	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x0d3413b2	skb_copy
+EXPORT_SYMBOL vmlinux 0x0d3dda14	acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d480b2a	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x0d4d8598	agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d586db6	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x0d5b786c	journal_destroy
+EXPORT_SYMBOL vmlinux 0x0d74dfcb	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x0d94f100	eth_header
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dc68111	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x0dd11949	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e598f5a	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x0e59fc4e	inet_put_port
+EXPORT_SYMBOL vmlinux 0x0e5df9b8	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0e63c942	lock_may_read
+EXPORT_SYMBOL vmlinux 0x0e79074b	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x0ece85f6	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x0ede2633	mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x0f04526c	con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x0f0ab36d	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x0f17fd49	icmp_send
+EXPORT_SYMBOL vmlinux 0x0f2212a3	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f5ad9ea	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x0f5b41e3	agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x0f747fa0	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x0f7df110	vmtruncate
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fce215b	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x0fd00a68	acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fdc4844	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x0fec8cb1	thaw_bdev
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x1028f1bb	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x102c56de	irq_regs
+EXPORT_SYMBOL vmlinux 0x10378e32	i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x10518554	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x1085b463	load_nls
+EXPORT_SYMBOL vmlinux 0x10901c3a	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x10910c35	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x10958436	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x10ab7e68	down_killable
+EXPORT_SYMBOL vmlinux 0x10b075c2	pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10de19c6	filp_open
+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 0x113f9683	xfrm_state_alloc
+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 0x11877945	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x11935e1b	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x11abc1dc	__bforget
+EXPORT_SYMBOL vmlinux 0x11b7aefe	journal_abort
+EXPORT_SYMBOL vmlinux 0x11c96975	thaw_super
+EXPORT_SYMBOL vmlinux 0x11dba971	unregister_nls
+EXPORT_SYMBOL vmlinux 0x11e2ec12	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x11ef0aad	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1231cfb1	bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x123fc0ed	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x125226a9	no_llseek
+EXPORT_SYMBOL vmlinux 0x127f1cf8	vfs_lstat
+EXPORT_SYMBOL vmlinux 0x12837fa2	tty_throttle
+EXPORT_SYMBOL vmlinux 0x128a5cf9	complete_all
+EXPORT_SYMBOL vmlinux 0x12950940	blk_init_queue
+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 0x12da5bb2	__kmalloc
+EXPORT_SYMBOL vmlinux 0x12df681e	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x12ecf681	vfs_link
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x1309236d	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x130a5552	tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x1336571d	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x133dc81b	seq_lseek
+EXPORT_SYMBOL vmlinux 0x134f4242	isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x1362737b	kern_unmount
+EXPORT_SYMBOL vmlinux 0x137c62b7	pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x13a4ea29	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x13acc6cd	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0x13b65a01	x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13d9c527	scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x13dff834	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x141a054c	agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x141d4335	key_validate
+EXPORT_SYMBOL vmlinux 0x1420b379	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x1430e6e0	unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1449e9a4	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x145a9a89	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x146ddd15	tcp_connect
+EXPORT_SYMBOL vmlinux 0x147ab62f	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x1487b20d	generic_show_options
+EXPORT_SYMBOL vmlinux 0x14d0d91e	get_super
+EXPORT_SYMBOL vmlinux 0x14e7ca7c	alloc_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x14f49e0e	kernel_recvmsg
+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 0x15a5221c	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x15b1a3ef	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x15ba638c	set_groups
+EXPORT_SYMBOL vmlinux 0x15f17373	bdget_disk
+EXPORT_SYMBOL vmlinux 0x15fc7e04	netdev_alert
+EXPORT_SYMBOL vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL vmlinux 0x161a5803	load_nls_default
+EXPORT_SYMBOL vmlinux 0x162706b2	d_find_alias
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16612e0d	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL vmlinux 0x168f1082	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x169fd82e	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16f8a0cd	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x170c25ee	acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170fa97e	phy_find_first
+EXPORT_SYMBOL vmlinux 0x171efc67	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x1725800a	pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x172e3e3c	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x1746aab8	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x1790d76b	_raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x17913f81	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x17b3c78d	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x17c09ec5	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x18022a6a	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x180f1fad	padata_alloc
+EXPORT_SYMBOL vmlinux 0x182fafe5	kern_path_create
+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 0x186e9922	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18ac5f27	netdev_warn
+EXPORT_SYMBOL vmlinux 0x18c89b3b	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x1914164f	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x19206ec1	pci_request_region
+EXPORT_SYMBOL vmlinux 0x194435c7	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x195a3a03	arp_find
+EXPORT_SYMBOL vmlinux 0x1968de37	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x197c45a1	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x19912407	cpu_rmap_update
+EXPORT_SYMBOL vmlinux 0x199e08b8	touch_atime
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a771c9	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x19a9e62b	complete
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19fc804f	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x19ff6712	netif_napi_del
+EXPORT_SYMBOL vmlinux 0x1a1d0b06	eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x1a22cb56	dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x1a313888	uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x1a406002	ps2_end_command
+EXPORT_SYMBOL vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a4f1b6b	dcb_setapp
+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 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 0x1addced1	journal_force_commit
+EXPORT_SYMBOL vmlinux 0x1ae14ef5	_raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x1af7df6f	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b02f845	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x1b08ae69	kernel_getpeername
+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 0x1ba3a250	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x1bc8585b	idr_remove_all
+EXPORT_SYMBOL vmlinux 0x1bcfdcb5	gnet_stats_copy_basic
+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 0x1c1af916	set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c1f1bfe	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x1c1fd9ed	kmem_cache_free
+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 0x1cb8d1a0	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x1cbc1193	blk_insert_request
+EXPORT_SYMBOL vmlinux 0x1cc5dfea	register_key_type
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1ce94967	f_setown
+EXPORT_SYMBOL vmlinux 0x1cec279a	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x1cfbe12a	tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x1cfdaa97	neigh_destroy
+EXPORT_SYMBOL vmlinux 0x1cfe46c2	nf_log_register
+EXPORT_SYMBOL vmlinux 0x1d20c5b0	scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x1d21d158	gen_pool_add_virt
+EXPORT_SYMBOL vmlinux 0x1d28c23c	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x1d2d2549	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d408c41	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x1d53f080	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x1d7349a7	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x1d7d04c5	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x1d949c91	writeback_in_progress
+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 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e7718d1	inode_set_bytes
+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 0x1eab3fe1	dev_close
+EXPORT_SYMBOL vmlinux 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1f2b4d62	vfs_getattr
+EXPORT_SYMBOL vmlinux 0x1f3e5799	sock_queue_rcv_skb
+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 0x1fa1f4fb	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x1fa5c44a	nf_afinfo
+EXPORT_SYMBOL vmlinux 0x1fa66adf	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x1fb604c8	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x1fbdada7	inet_proto_csum_replace4
+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 0x1ffb13be	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x201eeaa0	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x20243ff2	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x202911ba	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0x20309ecd	mem_cgroup_update_page_stat
+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 0x20bfe34f	dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x20d2392e	generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x20d7bd0b	stop_tty
+EXPORT_SYMBOL vmlinux 0x20eb8884	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x210721a9	sk_filter
+EXPORT_SYMBOL vmlinux 0x21163375	pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x21223140	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x215ebd78	bitrev16
+EXPORT_SYMBOL vmlinux 0x217dda13	flex_array_get
+EXPORT_SYMBOL vmlinux 0x21922b23	mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x2193631b	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x21960ff9	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x2199337a	down_timeout
+EXPORT_SYMBOL vmlinux 0x21a15ae7	pipe_lock
+EXPORT_SYMBOL vmlinux 0x21e0ea22	acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f0e880	dst_discard
+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 0x2235fd2e	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x225e909e	schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2288378f	system_state
+EXPORT_SYMBOL vmlinux 0x228bdf2a	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22baf9f7	pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x22eb591f	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x22f498e2	follow_up
+EXPORT_SYMBOL vmlinux 0x2309bde0	nf_unregister_hooks
+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 0x23451304	do_sync_read
+EXPORT_SYMBOL vmlinux 0x23532c4d	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x237894c4	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x2384dde5	dquot_release
+EXPORT_SYMBOL vmlinux 0x238f3b69	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x239380dd	set_anon_super
+EXPORT_SYMBOL vmlinux 0x239fc0f0	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23e7e065	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x23f04553	release_pages
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x240b8afb	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x24154822	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d864e	locks_remove_posix
+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 0x24928c46	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x2494c8d9	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x24b14687	fsnotify_add_mark
+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 0x252a4b4f	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x2562e77a	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x256c70c0	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x25800346	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25a6ba92	poll_freewait
+EXPORT_SYMBOL vmlinux 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25d7cc65	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x260f4494	dump_write
+EXPORT_SYMBOL vmlinux 0x2625227d	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x263bef0b	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x264d3c3d	idr_get_next
+EXPORT_SYMBOL vmlinux 0x2685c3d7	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x268cc6a2	sys_close
+EXPORT_SYMBOL vmlinux 0x26b7ee3c	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26db270b	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f81442	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x27209663	dev_addr_add
+EXPORT_SYMBOL vmlinux 0x272953e2	scsi_execute
+EXPORT_SYMBOL vmlinux 0x272d394e	mtrr_del
+EXPORT_SYMBOL vmlinux 0x273a76c4	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x274d08dc	__kfifo_dma_out_prepare
+EXPORT_SYMBOL vmlinux 0x27636931	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x2773a1bb	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x27755139	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x27957d22	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x27a61ba7	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x27ac17a2	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x27ae7d0c	ec_transaction
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e228b6	km_state_notify
+EXPORT_SYMBOL vmlinux 0x27ec0e99	alloc_xenballooned_pages
+EXPORT_SYMBOL vmlinux 0x27edd923	skb_append
+EXPORT_SYMBOL vmlinux 0x27f14e28	free_netdev
+EXPORT_SYMBOL vmlinux 0x27f6777d	vfs_create
+EXPORT_SYMBOL vmlinux 0x27fbdfce	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x27fd480c	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x280b63ed	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x280b8db4	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x283711b7	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x28408801	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x286370e4	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b715a6	isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x28d258c0	mca_device_transform_irq
+EXPORT_SYMBOL vmlinux 0x28fe8d2c	lookup_hash
+EXPORT_SYMBOL vmlinux 0x290ee04d	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x291dc0af	sk_alloc
+EXPORT_SYMBOL vmlinux 0x292093f4	native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29292706	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x294b779b	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x295db419	x86_hyper
+EXPORT_SYMBOL vmlinux 0x29873a03	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0x298a2cdd	acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x29b043b6	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x29b8d3a9	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29e9c274	register_netdev
+EXPORT_SYMBOL vmlinux 0x29fdda53	kstrtos8_from_user
+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 0x2a3f818a	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x2a4b7c99	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x2a705a7b	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x2a75035a	__pci_register_driver
+EXPORT_SYMBOL vmlinux 0x2a7c0c6a	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x2a80a523	vfs_readlink
+EXPORT_SYMBOL vmlinux 0x2a915160	input_register_handler
+EXPORT_SYMBOL vmlinux 0x2a9abbab	__insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2ae36d98	iget5_locked
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b62636a	agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x2b646069	set_security_override
+EXPORT_SYMBOL vmlinux 0x2b7b5bd1	tcp_alloc_md5sig_pool
+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 0x2bc95bd4	memset
+EXPORT_SYMBOL vmlinux 0x2bd9c489	revalidate_disk
+EXPORT_SYMBOL vmlinux 0x2bdc2dc6	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x2beace44	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2bf8d577	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x2bfb5674	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x2bfd5ec0	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x2bfeb410	acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c071182	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x2c0cc4d1	blk_make_request
+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 0x2c49edb8	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x2c4e60d8	pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x2c6a6930	pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x2c6be70c	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x2c8fa1f9	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x2cb8dd33	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x2ce08e65	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x2d0f5f79	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1766aa	scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x2d37342e	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x2d49c662	do_splice_direct
+EXPORT_SYMBOL vmlinux 0x2d84daab	vfs_writev
+EXPORT_SYMBOL vmlinux 0x2d89342a	scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d9cc6cc	set_user_nice
+EXPORT_SYMBOL vmlinux 0x2da470a1	sock_i_uid
+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 0x2dfaec85	journal_stop
+EXPORT_SYMBOL vmlinux 0x2e03d27a	ns_capable
+EXPORT_SYMBOL vmlinux 0x2e0b1d1b	bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x2e16e534	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0	sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e467f5f	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x2e59fc7a	ab8500_gpadc_get
+EXPORT_SYMBOL vmlinux 0x2e5dc57e	kfree_skb
+EXPORT_SYMBOL vmlinux 0x2e60bace	memcpy
+EXPORT_SYMBOL vmlinux 0x2e879ed5	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x2e9f97ec	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x2ea7d424	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x2eb167bb	kern_path
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2ecbaea0	fib_default_rule_pref
+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 0x2f3df464	nobh_write_end
+EXPORT_SYMBOL vmlinux 0x2f72763d	send_sig
+EXPORT_SYMBOL vmlinux 0x2f74ed4b	elv_add_request
+EXPORT_SYMBOL vmlinux 0x2f7a3560	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x2f93c2b7	noop_fsync
+EXPORT_SYMBOL vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL vmlinux 0x2fcbfbe0	uart_match_port
+EXPORT_SYMBOL vmlinux 0x2fcde7cd	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x2ff95dda	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x30090a05	may_umount
+EXPORT_SYMBOL vmlinux 0x3009b968	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x301ee84b	igrab
+EXPORT_SYMBOL vmlinux 0x30226ddf	agp_device_command
+EXPORT_SYMBOL vmlinux 0x302b865b	x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x30314e5b	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x303c831e	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x307c2fd0	generic_check_addressable
+EXPORT_SYMBOL vmlinux 0x30842534	mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x30a06192	pci_request_regions
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL vmlinux 0x30b70b0a	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0x30b9df65	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x30cada8f	radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30faaa8b	log_start_commit
+EXPORT_SYMBOL vmlinux 0x31022556	skb_checksum
+EXPORT_SYMBOL vmlinux 0x310917fe	sort
+EXPORT_SYMBOL vmlinux 0x31121afd	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x3115ffca	set_bh_page
+EXPORT_SYMBOL vmlinux 0x311ecfb3	abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x312db847	ilookup5
+EXPORT_SYMBOL vmlinux 0x3137a4bd	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x314a240b	kunmap
+EXPORT_SYMBOL vmlinux 0x314a6374	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x314b176b	__inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x316b4b77	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x317c3b50	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31a11572	mdiobus_register
+EXPORT_SYMBOL vmlinux 0x31a322e2	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x31c30ed2	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x31dd157f	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x31e76b57	recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x3246d36b	security_path_unlink
+EXPORT_SYMBOL vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL vmlinux 0x329e9c4f	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x32a5af13	iput
+EXPORT_SYMBOL vmlinux 0x32aedf86	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x32b3190c	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x32b8f946	__alloc_skb
+EXPORT_SYMBOL vmlinux 0x32b93329	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x32cea339	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x32e80b58	udplite_prot
+EXPORT_SYMBOL vmlinux 0x32eeaded	_raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x32f51064	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x33046358	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x3305347e	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x332534d2	__f_setown
+EXPORT_SYMBOL vmlinux 0x332f3238	acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x333185cf	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x3337ecaf	netdev_crit
+EXPORT_SYMBOL vmlinux 0x336eac4a	log_wait_commit
+EXPORT_SYMBOL vmlinux 0x33771543	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x33842f27	put_page
+EXPORT_SYMBOL vmlinux 0x33c3f0b3	set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x33e0610e	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL vmlinux 0x33f1750c	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x34150311	security_path_chown
+EXPORT_SYMBOL vmlinux 0x341e333e	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x342e32e3	ida_simple_get
+EXPORT_SYMBOL vmlinux 0x342f60fe	apm_info
+EXPORT_SYMBOL vmlinux 0x3442ba13	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x3443f968	d_rehash
+EXPORT_SYMBOL vmlinux 0x345a1fbd	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x3465f248	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x348ffb3f	secpath_dup
+EXPORT_SYMBOL vmlinux 0x34908c14	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34c1fb1a	journal_update_format
+EXPORT_SYMBOL vmlinux 0x34c265bf	atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34dd847f	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x353345a8	key_unlink
+EXPORT_SYMBOL vmlinux 0x353efb08	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x356313c8	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x35669178	swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x35771b82	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x35802462	elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x35af86fa	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35d79cf7	tcp_parse_options
+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 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL vmlinux 0x3692030c	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x36a96a5e	input_set_abs_params
+EXPORT_SYMBOL vmlinux 0x36aad357	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x36aae8dd	get_phy_device
+EXPORT_SYMBOL vmlinux 0x36bb24f1	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36ef40b8	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x370b92f4	neigh_create
+EXPORT_SYMBOL vmlinux 0x370bc881	sget
+EXPORT_SYMBOL vmlinux 0x37338004	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x376b0657	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x376c35f7	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x3781e345	iget_failed
+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 0x37cf7efb	journal_forget
+EXPORT_SYMBOL vmlinux 0x37d3e171	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x37d5f973	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x37da9dcf	i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x37db8f19	dmi_get_date
+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 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL vmlinux 0x381ccc13	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0x383ec709	keyring_clear
+EXPORT_SYMBOL vmlinux 0x383ed32a	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x3844a77e	dqget
+EXPORT_SYMBOL vmlinux 0x38477d3f	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x384cc7f2	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x385469aa	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x385c4f87	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x386bb693	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x3873cdde	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x387c2206	xfrm_find_acq_byseq
+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 0x389e611d	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0x38a8f3f9	sock_create
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38cca01e	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x38d9d835	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x38dd7f9f	pci_disable_device
+EXPORT_SYMBOL vmlinux 0x38f3507a	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x390f0dcf	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x3934e89d	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x3941c79d	dev_open
+EXPORT_SYMBOL vmlinux 0x39478f2a	agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x396a9cff	inode_init_owner
+EXPORT_SYMBOL vmlinux 0x397f30e0	d_validate
+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 0x39db6920	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x39e8f239	get_fs_type
+EXPORT_SYMBOL vmlinux 0x3a013b7d	remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x3a04d2ef	acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a31e6af	mii_check_link
+EXPORT_SYMBOL vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL vmlinux 0x3a51784c	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x3a82c5cd	elevator_exit
+EXPORT_SYMBOL vmlinux 0x3a86e88a	__pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x3a8c937d	set_pages_x
+EXPORT_SYMBOL vmlinux 0x3a916d48	md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9fa44c	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3abb82fc	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0x3ac46f5c	acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x3b0433a8	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x3b056a37	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b3fe633	dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x3b4d6957	arp_xmit
+EXPORT_SYMBOL vmlinux 0x3bab7fc9	dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x3bb00c9a	blk_put_request
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bd92d7b	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x3bfa6d8d	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x3c2caead	seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x3c5f9136	tcp_close
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c98a3aa	kernel_accept
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb3931b	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x3cb74fb8	pnp_device_detach
+EXPORT_SYMBOL vmlinux 0x3ccd920f	kick_iocb
+EXPORT_SYMBOL vmlinux 0x3cdfc138	pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cfb7d23	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x3cfe42cb	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x3d0f6bfe	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x3d13f7ac	sk_stream_wait_close
+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 0x3dc4960b	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+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 0x3e1ffcbb	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8	acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e52bf1a	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x3e5f060c	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x3e882943	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e957c55	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x3e98a88a	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x3ea1ca72	agp_free_memory
+EXPORT_SYMBOL vmlinux 0x3eabfd94	__scm_send
+EXPORT_SYMBOL vmlinux 0x3ebce843	current_fs_time
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3eda8f77	pci_match_id
+EXPORT_SYMBOL vmlinux 0x3ee549b1	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x3ef78d80	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3f0539a4	noop_llseek
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f40f6e1	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f8ee426	inet_dgram_connect
+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 0x3fb453f6	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x3fb5625c	mount_pseudo
+EXPORT_SYMBOL vmlinux 0x3fbedd92	default_llseek
+EXPORT_SYMBOL vmlinux 0x3fcac3d7	block_write_begin
+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 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 0x40c8dba2	phy_device_register
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40d8c864	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410d052d	block_commit_write
+EXPORT_SYMBOL vmlinux 0x413a9dbd	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x4145b561	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x41499d66	bdput
+EXPORT_SYMBOL vmlinux 0x415376e2	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x4158396c	mutex_lock
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x419a8915	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x419ee6e8	idr_pre_get
+EXPORT_SYMBOL vmlinux 0x41b3a6ee	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x42064a75	d_alloc_root
+EXPORT_SYMBOL vmlinux 0x42119286	mutex_unlock
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298	sscanf
+EXPORT_SYMBOL vmlinux 0x4239de63	ida_init
+EXPORT_SYMBOL vmlinux 0x42495788	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x424b4679	mpage_writepages
+EXPORT_SYMBOL vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x426c85ad	swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x4292364c	schedule
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42ab462b	mntput
+EXPORT_SYMBOL vmlinux 0x42c2a76a	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x42c8de35	ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42d3c8c4	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x42dbdf86	set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x42e9eda6	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x42f32452	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x43197992	agp_generic_enable
+EXPORT_SYMBOL vmlinux 0x431c6e41	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x431cf5ae	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x43226609	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x432600ee	dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x43385ad9	acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x43575392	mii_check_media
+EXPORT_SYMBOL vmlinux 0x43696489	pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x43874096	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x438d5798	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43b9905b	sock_no_sendpage
+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 0x441fba91	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x4421a2cb	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x443c1742	cad_pid
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x44438b96	hex2bin
+EXPORT_SYMBOL vmlinux 0x4445c082	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x44497120	set_blocksize
+EXPORT_SYMBOL vmlinux 0x4479b170	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x44993ace	find_vma
+EXPORT_SYMBOL vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL vmlinux 0x44b2818b	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44c2cd8a	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x44f1606d	down_trylock
+EXPORT_SYMBOL vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL vmlinux 0x4528063b	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x453620ab	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x4539439c	init_task
+EXPORT_SYMBOL vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4550ba8a	register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x455c93c3	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x4578661a	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x45bd9efd	dm_table_put
+EXPORT_SYMBOL vmlinux 0x45d216b9	tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d5f32c	journal_start
+EXPORT_SYMBOL vmlinux 0x4617c890	mca_device_transform_ioport
+EXPORT_SYMBOL vmlinux 0x461b66e7	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x461d8f20	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x46214106	files_lglock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x465a17a6	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x466cddcf	__mutex_init
+EXPORT_SYMBOL vmlinux 0x46762caa	km_query
+EXPORT_SYMBOL vmlinux 0x4685132e	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x46953cda	spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x469a6420	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x46c0ed20	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x4705e458	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+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 0x47a41255	init_buffer
+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 0x47e406dc	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x484960b1	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x486d2f29	dqstats
+EXPORT_SYMBOL vmlinux 0x48a686d6	blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x48a771c5	cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48e47fca	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x48e60ad1	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x48eb0c0d	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x48fcc1dd	dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x491ed467	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x493ad85a	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0x494fb1cf	pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x495d9c1e	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496b010a	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x4992c87c	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b7ab65	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x49b8ff72	agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0x49c169c8	scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x49c1c8ee	noop_qdisc
+EXPORT_SYMBOL vmlinux 0x49ce2439	security_file_mmap
+EXPORT_SYMBOL vmlinux 0x49d28e6b	__nla_put
+EXPORT_SYMBOL vmlinux 0x49d790fd	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x4a0a13bc	tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x4a0d25a7	gen_pool_virt_to_phys
+EXPORT_SYMBOL vmlinux 0x4a28a95d	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x4a34da58	__dev_printk
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a54cfda	nf_register_hook
+EXPORT_SYMBOL vmlinux 0x4a568ec8	follow_down_one
+EXPORT_SYMBOL vmlinux 0x4a6c3bbb	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x4a6e0869	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x4a8ca8b0	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4a9b7ee4	dev_mc_init
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+EXPORT_SYMBOL vmlinux 0x4ab1cfe5	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x4ab3a56d	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x4acd93d3	release_resource
+EXPORT_SYMBOL vmlinux 0x4ad3137f	max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b09bfad	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x4b0dad8d	led_blink_set
+EXPORT_SYMBOL vmlinux 0x4b142f51	devm_iounmap
+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 0x4b6b67bc	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x4b6d2cd5	softnet_data
+EXPORT_SYMBOL vmlinux 0x4bafb1f3	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x4bbad17b	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x4bbee9d5	md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x4bc4d5a5	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4be55eb0	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x4bf6f33d	tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x4bf7b27d	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x4bf7bce9	read_cache_page_async
+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 0x4c5001fe	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x4c997920	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbf16c9	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x4cc131f8	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x4cc7206a	sock_rfree
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d19ef71	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x4d20ddbc	atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d29844c	proc_symlink
+EXPORT_SYMBOL vmlinux 0x4d3a09c3	I_BDEV
+EXPORT_SYMBOL vmlinux 0x4d3b3865	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d426db5	submit_bh
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d572da9	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x4d7b9329	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd955f9	module_refcount
+EXPORT_SYMBOL vmlinux 0x4ddd21b2	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x4df08b1f	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfad3f0	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x4e051b3a	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+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 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e81c0c7	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4eb11f1f	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x4efe1756	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x4f004a7f	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x4f0820e0	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x4f18467b	pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x4f1be858	journal_extend
+EXPORT_SYMBOL vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f21ede4	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f476e96	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f60b717	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x4f6254c1	md_integrity_register
+EXPORT_SYMBOL vmlinux 0x4f783f30	acpi_read
+EXPORT_SYMBOL vmlinux 0x4fbbc13c	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+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 0x50415a89	pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x50529870	acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x5069da1c	tty_port_close
+EXPORT_SYMBOL vmlinux 0x507d1419	mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50ada8ab	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x50b56c8e	d_alloc
+EXPORT_SYMBOL vmlinux 0x50c94bec	scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x50cb0c62	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x50cd4c20	pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x50ce26f8	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x50eedeb8	printk
+EXPORT_SYMBOL vmlinux 0x5114b9ab	inet6_bind
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511ee0be	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x5152e605	memcmp
+EXPORT_SYMBOL vmlinux 0x5156461f	alloc_fddidev
+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 0x51e5e67d	filp_close
+EXPORT_SYMBOL vmlinux 0x51ef33b8	kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf	security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19	acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52423a0c	ida_pre_get
+EXPORT_SYMBOL vmlinux 0x5267d295	ethtool_op_set_tx_csum
+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 0x52d812f2	vfs_readv
+EXPORT_SYMBOL vmlinux 0x52e8eaa7	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x52ebf701	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x530b1e4c	rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x5318fca1	skb_pad
+EXPORT_SYMBOL vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53217d5c	km_report
+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 0x53822f1a	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x5383f34b	_raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x5386ecb5	do_sync_write
+EXPORT_SYMBOL vmlinux 0x5388f4a4	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+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 0x53f6052e	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x5413d22b	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x54152e04	percpu_counter_compare
+EXPORT_SYMBOL vmlinux 0x5429f762	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5451f291	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x5455409d	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x546c4b8f	mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0x548866f9	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x54935666	acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0x54a285c5	atomic64_dec_return_cx8
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54ac7a78	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x54ae0451	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x54c51d3d	sk_common_release
+EXPORT_SYMBOL vmlinux 0x54c6b0e4	mount_subtree
+EXPORT_SYMBOL vmlinux 0x54df0927	start_tty
+EXPORT_SYMBOL vmlinux 0x54e6d2b9	spi_dv_device
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54fa7cd5	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x5521a3d2	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x55401d79	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+EXPORT_SYMBOL vmlinux 0x554687d4	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a768f5	__get_user_pages
+EXPORT_SYMBOL vmlinux 0x55a8ba03	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x55b818fe	pm860x_page_bulk_read
+EXPORT_SYMBOL vmlinux 0x55d085ac	mfd_add_devices
+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 0x563c4e88	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x564349ca	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x567facc7	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x568db09b	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x568ea869	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x569f3844	tcp_seq_open
+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 0x56dde4b4	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x56e72f0c	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x56f6d54f	ethtool_op_set_flags
+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 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 0x5769ce6a	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x5781f31c	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x5787c730	tcp_poll
+EXPORT_SYMBOL vmlinux 0x578c0f3d	console_stop
+EXPORT_SYMBOL vmlinux 0x5792a501	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0x579717fd	aio_put_req
+EXPORT_SYMBOL vmlinux 0x579fbcd2	cpu_possible_mask
+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 0x57e402a1	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x581d0849	blk_get_request
+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 0x58f18279	journal_start_commit
+EXPORT_SYMBOL vmlinux 0x58fef6f8	ist_info
+EXPORT_SYMBOL vmlinux 0x592b59af	acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x5949a475	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x59563253	vga_get
+EXPORT_SYMBOL vmlinux 0x597b750e	tcf_exts_dump
+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 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x5a110d7a	simple_unlink
+EXPORT_SYMBOL vmlinux 0x5a2aa62e	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x5a2ddc04	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x5a3be481	max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x5a419ee4	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5ea541	__ps2_command
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a932a81	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x5ac376a5	acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b27f6e1	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x5b2c5e08	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x5b31eb1f	pci_get_class
+EXPORT_SYMBOL vmlinux 0x5b51c6a7	acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b603677	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x5b88e8c9	atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5bb86c29	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x5bd11b48	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x5be55bb5	take_over_console
+EXPORT_SYMBOL vmlinux 0x5c3edd59	_raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x5c5931b5	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c679ba8	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x5c68705b	mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c997bd7	nla_append
+EXPORT_SYMBOL vmlinux 0x5c9fa676	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x5cc11e12	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x5cf85de7	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x5d1830f4	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x5d402ba7	arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x5d417daa	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x5d4f070e	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x5d59e6f1	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+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 0x5de25d82	send_sig_info
+EXPORT_SYMBOL vmlinux 0x5e1e3c8d	fb_show_logo
+EXPORT_SYMBOL vmlinux 0x5e2e6918	journal_ack_err
+EXPORT_SYMBOL vmlinux 0x5e34d7f2	write_inode_now
+EXPORT_SYMBOL vmlinux 0x5e446672	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x5e49669e	sock_update_classid
+EXPORT_SYMBOL vmlinux 0x5e4de069	nf_reinject
+EXPORT_SYMBOL vmlinux 0x5e54f9c1	tty_port_init
+EXPORT_SYMBOL vmlinux 0x5e5a4307	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5e98ec96	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5eb44578	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5ebc08a5	task_nice
+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 0x5f27544a	mempool_destroy
+EXPORT_SYMBOL vmlinux 0x5f284e12	backlight_force_update
+EXPORT_SYMBOL vmlinux 0x5f2e8773	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x5f4aaf44	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x5f4e1a8f	acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f723bae	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x5f752990	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x5f829ef7	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fb9f9a6	key_link
+EXPORT_SYMBOL vmlinux 0x5fc4b035	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x5fd11872	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x5fd54d59	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0x5fe41fb6	percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x5fe649fd	locks_init_lock
+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 0x60335b8d	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x604145cb	__cleancache_flush_inode
+EXPORT_SYMBOL vmlinux 0x60415087	bio_free
+EXPORT_SYMBOL vmlinux 0x604a2ccc	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x604dfe96	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x60632f2c	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x60872a44	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL vmlinux 0x60b2e38a	rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x60d0b9f3	wake_up_process
+EXPORT_SYMBOL vmlinux 0x60e5fe17	thaw_process
+EXPORT_SYMBOL vmlinux 0x60fd237e	nf_log_packet
+EXPORT_SYMBOL vmlinux 0x61154b93	generic_write_sync
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x613d8824	do_splice_to
+EXPORT_SYMBOL vmlinux 0x61412940	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x61536865	idr_destroy
+EXPORT_SYMBOL vmlinux 0x6186189b	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x619b187b	add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x61a71c71	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x61b5ade0	down_write
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61cec5a8	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x61d89a81	dev_uc_add
+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 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL vmlinux 0x622fa02a	prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x6237f6b5	acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623f1b0a	alloc_disk
+EXPORT_SYMBOL vmlinux 0x6241a2ab	__copy_from_user_ll_nocache
+EXPORT_SYMBOL vmlinux 0x62593fac	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL vmlinux 0x6273dc27	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x6273fa49	nla_reserve
+EXPORT_SYMBOL vmlinux 0x6274dc7d	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x6278c523	generic_permission
+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 0x62a7def4	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x62acef14	ppp_input_error
+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 0x630cf859	d_genocide
+EXPORT_SYMBOL vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL vmlinux 0x632e669d	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x6332cc1a	audit_log_start
+EXPORT_SYMBOL vmlinux 0x6337dfce	ab8500_gpadc_convert
+EXPORT_SYMBOL vmlinux 0x634642ff	sock_create_kern
+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 0x63a15efa	__tcf_em_tree_match
+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 0x63f28403	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x63fedfd8	bio_pair_release
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64063398	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x640ffa6a	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x64108df1	swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x642e4ba8	register_quota_format
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x643ec532	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x6478134c	ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x6491e3f8	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a8efbd	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x64e88837	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x64eae7ad	set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64edd025	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x651453ac	install_exec_creds
+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 0x655f1ab0	set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6565d33f	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x65678b8d	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x656a1353	dev_activate
+EXPORT_SYMBOL vmlinux 0x657879ce	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x65799580	__bread
+EXPORT_SYMBOL vmlinux 0x657eb04f	write_one_page
+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 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 0x65e90070	journal_load
+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 0x668da8d5	zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x669dd28a	posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x66a67dab	flex_array_shrink
+EXPORT_SYMBOL vmlinux 0x66b8417c	remove_arg_zero
+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 0x66ef386f	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x67030317	dev_deactivate
+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 0x674edb0d	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x67704699	journal_revoke
+EXPORT_SYMBOL vmlinux 0x677f8772	set_trace_device
+EXPORT_SYMBOL vmlinux 0x67804a19	__any_online_cpu
+EXPORT_SYMBOL vmlinux 0x6792a4b7	path_is_under
+EXPORT_SYMBOL vmlinux 0x679f1348	tcp_valid_rtt_meas
+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 0x67dda029	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x67edabf6	input_event
+EXPORT_SYMBOL vmlinux 0x67f138c1	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x67f7403e	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x67fdc02a	pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x682682a7	mddev_congested
+EXPORT_SYMBOL vmlinux 0x682dc240	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x68531e9c	pci_get_slot
+EXPORT_SYMBOL vmlinux 0x6858bfe2	pm860x_page_set_bits
+EXPORT_SYMBOL vmlinux 0x685d5438	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x689e9ee0	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x68d372d2	module_layout
+EXPORT_SYMBOL vmlinux 0x6917156b	pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x692a568a	dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x6965473f	phy_driver_register
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x69807f5a	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL vmlinux 0x6998634f	phy_connect
+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 0x69ae0c22	__dev_get_by_name
+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 0x6a129fa8	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6a27bfce	csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x6a3255c9	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x6a48e16b	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a8b6fd5	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad85887	acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6ae4fbd1	blkdev_put
+EXPORT_SYMBOL vmlinux 0x6af634b1	read_cache_page
+EXPORT_SYMBOL vmlinux 0x6aff315a	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x6b05f334	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x6b10dd64	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b1e1cab	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b488b97	dquot_commit
+EXPORT_SYMBOL vmlinux 0x6b4d25e3	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x6b55c14c	pci_map_biosrom
+EXPORT_SYMBOL vmlinux 0x6b613a0b	netlink_ack
+EXPORT_SYMBOL vmlinux 0x6b82e883	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x6b937ffb	mca_mark_as_used
+EXPORT_SYMBOL vmlinux 0x6ba6477c	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x6baae653	cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x6babd437	generic_write_end
+EXPORT_SYMBOL vmlinux 0x6bb55b1a	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x6bb7924b	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bda87c8	do_splice_from
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6be0cde6	pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x6bf478a1	__break_lease
+EXPORT_SYMBOL vmlinux 0x6bf70fc4	pci_find_capability
+EXPORT_SYMBOL vmlinux 0x6c072ed0	get_phy_id
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320	strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3a83da	open_exec
+EXPORT_SYMBOL vmlinux 0x6c57c55a	ip_defrag
+EXPORT_SYMBOL vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7	sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c77533a	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x6c875264	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x6c8b020f	mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf310ec	lock_rename
+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 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 0x6d57ee8f	netif_rx
+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 0x6d898201	phy_attach
+EXPORT_SYMBOL vmlinux 0x6da6372d	tc_classify
+EXPORT_SYMBOL vmlinux 0x6da997bb	page_put_link
+EXPORT_SYMBOL vmlinux 0x6dc57f87	bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x6de23581	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x6dee2129	user_revoke
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e1d1a61	read_dev_sector
+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 0x6e6f803d	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e80e1e1	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x6e937345	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebe1407	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x6ed87465	register_gifconf
+EXPORT_SYMBOL vmlinux 0x6f0fe013	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x6f556bdb	acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f7244c4	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x6f86e08d	journal_create
+EXPORT_SYMBOL vmlinux 0x6f8ca82e	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x6f906d8b	i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x6fc2d0a4	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe726fc	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x6feb2039	acpi_write
+EXPORT_SYMBOL vmlinux 0x6ff7a75d	blk_end_request
+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 0x707a7235	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x708b8ccc	intel_gtt_map_memory
+EXPORT_SYMBOL vmlinux 0x708d656e	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x70911653	tcp_v4_send_check
+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 0x7114a71f	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x71202709	pci_disable_ido
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x7133b22e	generic_setxattr
+EXPORT_SYMBOL vmlinux 0x713f9d2c	generic_read_dir
+EXPORT_SYMBOL vmlinux 0x71563c85	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x7165bb02	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x719eb747	unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71bf4ae1	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x71db25bf	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x71dcd460	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x71f8580f	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x71fac4c2	get_gendisk
+EXPORT_SYMBOL vmlinux 0x720e5bd0	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x724e1615	netdev_notice
+EXPORT_SYMBOL vmlinux 0x725917c0	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x72689ab6	pci_iounmap
+EXPORT_SYMBOL vmlinux 0x72802336	sync_inodes_sb
+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 0x72ea7b2d	scsi_device_type
+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 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL vmlinux 0x7362dd1e	vfs_fstat
+EXPORT_SYMBOL vmlinux 0x736815f5	sock_no_bind
+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 0x73e20c1c	strlcpy
+EXPORT_SYMBOL vmlinux 0x73f11212	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x740372d1	uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x74117b38	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL vmlinux 0x741a6e22	gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x74360698	tr_type_trans
+EXPORT_SYMBOL vmlinux 0x74394eda	ip_fragment
+EXPORT_SYMBOL vmlinux 0x7469fcfe	radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x7485e15e	unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a7b7b1	scsi_verify_blk_ioctl
+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 0x74e099a1	mnt_pin
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x7513af1a	kblockd_schedule_work
+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 0x7593d385	div64_s64
+EXPORT_SYMBOL vmlinux 0x759eac7f	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x75a45506	__dev_get_by_index
+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 0x75cd19fe	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7628f3c7	this_cpu_off
+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 0x7680c0c9	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x769e06d7	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c11ec6	sock_no_connect
+EXPORT_SYMBOL vmlinux 0x76c630da	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76dc6b98	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x76e15adf	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x76fb8c7a	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0x76fd5fb5	mapping_tagged
+EXPORT_SYMBOL vmlinux 0x76fe045c	mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x7704b08b	sk_dst_check
+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 0x7755ecb8	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x77629160	swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x776febec	dentry_unhash
+EXPORT_SYMBOL vmlinux 0x777539b7	cpu_info
+EXPORT_SYMBOL vmlinux 0x7777a335	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7780aa81	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77a2dd5d	mca_bus_type
+EXPORT_SYMBOL vmlinux 0x77b93254	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77c533bd	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x77d59419	cdrom_ioctl
+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 0x781141de	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x7818316d	blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x7838896c	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL vmlinux 0x78a49796	dev_warn
+EXPORT_SYMBOL vmlinux 0x78bb2011	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0x78dd64b8	__breadahead
+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 0x793ed0fa	bio_copy_user
+EXPORT_SYMBOL vmlinux 0x7941fe81	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x794a2c29	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x794b55a0	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x794d2764	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x7953113e	netdev_state_change
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7973fcff	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x79946430	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x79991b22	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79b8cdc7	i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x79c4fd9b	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x79cf6c9c	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x79d839b8	bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x79f056d5	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a352a18	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x7a366948	phy_device_free
+EXPORT_SYMBOL vmlinux 0x7a3d7c5e	blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a672a9a	ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x7a9bf88d	udplite_table
+EXPORT_SYMBOL vmlinux 0x7aa81449	tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x7abacda2	swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x7ac079f2	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x7aec9089	clear_user
+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 0x7b52a859	wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05	acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b59a3cc	find_or_create_page
+EXPORT_SYMBOL vmlinux 0x7b87ab4f	register_con_driver
+EXPORT_SYMBOL vmlinux 0x7b8f1d90	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x7b94dde9	input_release_device
+EXPORT_SYMBOL vmlinux 0x7b9a6116	intel_agp_enabled
+EXPORT_SYMBOL vmlinux 0x7bdb5968	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x7c009268	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x7c0eddaa	sock_no_poll
+EXPORT_SYMBOL vmlinux 0x7c2ccd3a	input_reset_device
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c499e97	arp_create
+EXPORT_SYMBOL vmlinux 0x7c591b9e	pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c61340c	__release_region
+EXPORT_SYMBOL vmlinux 0x7c7235da	d_splice_alias
+EXPORT_SYMBOL vmlinux 0x7c904ded	unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7ca7e6db	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x7cad9df4	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL vmlinux 0x7cb92721	scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x7cd8c02e	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7d11c268	jiffies
+EXPORT_SYMBOL vmlinux 0x7d1b0562	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x7d21cb33	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x7d50aeed	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x7d676053	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x7d8201ad	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x7dbc2e57	mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x7dc3d140	agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0x7dc3e088	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x7dc5b358	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x7dd041c8	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x7de866c7	proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e0ca59f	dquot_set_dqblk
+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 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ea3d4e1	scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x7ecb001b	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7ef2f508	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x7eff7106	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x7f072be5	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x7f18b194	kacpi_hotplug_wq
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f6052d3	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x7f658e80	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0x7faae13d	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x7fac9a93	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x7fb74e3e	input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x7fe305ab	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x800df1d7	groups_free
+EXPORT_SYMBOL vmlinux 0x802a3608	mmc_erase
+EXPORT_SYMBOL vmlinux 0x808af8d4	pnp_find_card
+EXPORT_SYMBOL vmlinux 0x8096b59e	register_xen_selfballooning
+EXPORT_SYMBOL vmlinux 0x80a773c2	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x80a96560	inet6_getname
+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 0x80ceb36c	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0x80d78e54	cdev_add
+EXPORT_SYMBOL vmlinux 0x80e74786	kernel_sock_ioctl
+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 0x810d614c	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x812c7064	prepare_binprm
+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 0x818dbffa	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x819348c0	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x819e1c25	acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x81a386e1	kobject_init
+EXPORT_SYMBOL vmlinux 0x81a5e22a	kobject_del
+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 0x82034bdc	posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL vmlinux 0x820af0f6	tcp_gro_complete
+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 0x825ec170	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x825ed553	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x825f4a16	qdisc_tree_decrease_qlen
+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 0x82819580	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x828d1801	dump_seek
+EXPORT_SYMBOL vmlinux 0x828fa942	dentry_open
+EXPORT_SYMBOL vmlinux 0x829b533d	create_proc_entry
+EXPORT_SYMBOL vmlinux 0x829ff995	pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x82a96738	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x82acfb70	blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82de5d3b	pci_release_regions
+EXPORT_SYMBOL vmlinux 0x82f81ff2	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x830e547b	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x8336b631	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x8336c26c	block_write_end
+EXPORT_SYMBOL vmlinux 0x833c03aa	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL vmlinux 0x8343cd74	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x835efd82	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x83670fe4	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x836873a2	proc_dointvec
+EXPORT_SYMBOL vmlinux 0x83800bfa	kref_init
+EXPORT_SYMBOL vmlinux 0x8384a2c5	tty_unlock
+EXPORT_SYMBOL vmlinux 0x83a476ce	bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83d11b32	scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x83f65711	pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x83ffa9fe	sync_inode
+EXPORT_SYMBOL vmlinux 0x84025dcb	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x840485df	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x8404e0f9	truncate_setsize
+EXPORT_SYMBOL vmlinux 0x84060081	xen_poll_irq_timeout
+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 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x847f182b	page_address
+EXPORT_SYMBOL vmlinux 0x849be2bf	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x849f39eb	read_cache_pages
+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 0x84d4d8ac	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0x84d7ab11	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x84dc6c1c	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x84e19b66	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x84ec6fca	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x852a8d92	security_path_link
+EXPORT_SYMBOL vmlinux 0x85304814	inet_frags_init
+EXPORT_SYMBOL vmlinux 0x85556faa	generic_make_request
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856c3a78	have_submounts
+EXPORT_SYMBOL vmlinux 0x85757dad	napi_get_frags
+EXPORT_SYMBOL vmlinux 0x859b55f5	elevator_init
+EXPORT_SYMBOL vmlinux 0x85a09866	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85c04c78	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x85d16790	tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x860ce7e7	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x860f2c61	blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x861b50b2	kunmap_high
+EXPORT_SYMBOL vmlinux 0x862c1be9	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x863543e0	invalidate_partition
+EXPORT_SYMBOL vmlinux 0x86394517	tcp_prot
+EXPORT_SYMBOL vmlinux 0x86417595	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x864a2bbe	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x866bc0c7	llc_sap_close
+EXPORT_SYMBOL vmlinux 0x868a3023	inet_release
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x8695d7ab	abx500_get_chip_id
+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 0x86e94427	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x870bf928	radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x871c0a7e	fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872ffc82	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x874e6004	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x8765d2f6	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x876a0308	vfs_write
+EXPORT_SYMBOL vmlinux 0x876dafc3	ec_write
+EXPORT_SYMBOL vmlinux 0x877ec8cc	netdev_boot_setup_check
+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 0x87b8c88a	__napi_complete
+EXPORT_SYMBOL vmlinux 0x87d4731f	ps2_command
+EXPORT_SYMBOL vmlinux 0x87d9219d	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x87e14579	dquot_enable
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x88366d1e	blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x883ab698	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x884d3b3d	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x8850ab02	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x8873eaa7	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x8874bce5	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x88851a7b	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x8899dbe2	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x88c69a17	acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x88cec982	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x88ed0505	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x890c9b19	blk_free_tags
+EXPORT_SYMBOL vmlinux 0x8919d62e	phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x892b26a0	set_memory_nx
+EXPORT_SYMBOL vmlinux 0x893e274b	bio_alloc
+EXPORT_SYMBOL vmlinux 0x8949858b	schedule_work
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x8981bd26	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x89a2d973	filemap_write_and_wait_range
+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 0x89d5538d	fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811	build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89de8489	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x89f8d05d	sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x8a12cfdd	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x8a15e39f	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x8a1615d6	mempool_create_node
+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 0x8aaff80b	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x8ac01b90	skb_store_bits
+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 0x8b186184	mdiobus_alloc
+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 0x8b5f4a2e	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b872a6e	d_path
+EXPORT_SYMBOL vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bb760a9	aio_complete
+EXPORT_SYMBOL vmlinux 0x8bb9e1f1	dev_set_group
+EXPORT_SYMBOL vmlinux 0x8bccf4a2	bdi_register
+EXPORT_SYMBOL vmlinux 0x8bd36a12	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x8be5722f	arp_send
+EXPORT_SYMBOL vmlinux 0x8beb3fcb	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x8c0ede93	md_write_end
+EXPORT_SYMBOL vmlinux 0x8c10e748	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c42b55d	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x8c438f52	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x8c4dbcc2	pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x8cc4f7fd	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccfcf55	dqput
+EXPORT_SYMBOL vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL vmlinux 0x8cf4353b	first_ec
+EXPORT_SYMBOL vmlinux 0x8d092f5f	generic_listxattr
+EXPORT_SYMBOL vmlinux 0x8d09c2c6	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x8d50384d	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x8d507fc8	kmap_atomic_to_page
+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 0x8d95992d	bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x8d9e5bb2	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x8da1a3cb	acpi_remove_interface
+EXPORT_SYMBOL vmlinux 0x8db6a0cf	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x8dc1f206	dev_change_flags
+EXPORT_SYMBOL vmlinux 0x8dc5358e	arp_tbl
+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 0x8dfa63cd	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x8e002cda	acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e04a843	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3cce65	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x8e524ab4	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e58b224	pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x8e75a30b	kset_unregister
+EXPORT_SYMBOL vmlinux 0x8e888ec3	cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x8e8af588	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x8e8b1996	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x8ea4e97e	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8ec712f1	journal_flush
+EXPORT_SYMBOL vmlinux 0x8ed25956	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ee99eb7	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x8f040051	pnp_is_active
+EXPORT_SYMBOL vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f27339c	mca_device_read_stored_pos
+EXPORT_SYMBOL vmlinux 0x8f3481ab	cont_write_begin
+EXPORT_SYMBOL vmlinux 0x8f36d577	mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f505cf5	dquot_acquire
+EXPORT_SYMBOL vmlinux 0x8f758c82	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x8f960d80	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa01a71	inode_init_once
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fd854bc	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x8fe64ba3	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x8ff4079b	pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ff8a97e	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x900ebc9b	pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x902e31ef	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x9040cbe8	d_invalidate
+EXPORT_SYMBOL vmlinux 0x904409c6	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9047515f	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x90a1601f	dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a8243f	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x90bcf096	generic_setlease
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90cdbda5	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x90f13632	proc_dostring
+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 0x9126ec7a	xfrm_policy_walk
+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 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x9190fa51	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x919e3cd5	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x91c7ce31	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x91e0df91	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x91e604f0	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x91e874f0	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x921c39c8	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x921f8e5f	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x9247fcc1	vfs_open
+EXPORT_SYMBOL vmlinux 0x926a6e75	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL vmlinux 0x929fd454	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x92a05f3d	idr_get_new
+EXPORT_SYMBOL vmlinux 0x92b0211e	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x92b3e450	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x92e7e86f	swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x92f6a27e	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x92fc3d1d	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x930559e2	pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9314688b	skb_push
+EXPORT_SYMBOL vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x933a9874	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x9374c1cb	release_firmware
+EXPORT_SYMBOL vmlinux 0x93806086	redraw_screen
+EXPORT_SYMBOL vmlinux 0x939d7b5f	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93ac5f85	poll_schedule_timeout
+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 0x93f714d0	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x93fbf589	tty_set_operations
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x940341a0	inet_sendpage
+EXPORT_SYMBOL vmlinux 0x941ed3f8	prepare_creds
+EXPORT_SYMBOL vmlinux 0x942dcd87	pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x9443b99d	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0x9451e963	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x945d78f5	sk_free
+EXPORT_SYMBOL vmlinux 0x94739f5d	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x947d74a1	swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x947fe229	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94a0a281	inet_bind
+EXPORT_SYMBOL vmlinux 0x94ade7ae	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x94b541b5	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94bce0cc	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x94c0d9b7	ps2_drain
+EXPORT_SYMBOL vmlinux 0x94c6464b	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x94c8c66d	pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x94ccfb5a	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x94e62b71	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x94eecd9f	inet_shutdown
+EXPORT_SYMBOL vmlinux 0x94fe4b13	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x951adfaa	xfrm_stateonly_find
+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 0x9547d75d	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x9549af2a	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x955efc70	user_path_at
+EXPORT_SYMBOL vmlinux 0x9578bcf4	blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x9580f7bc	vm_event_states
+EXPORT_SYMBOL vmlinux 0x95819c05	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x95b4b77e	blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x95d6331e	path_put
+EXPORT_SYMBOL vmlinux 0x95e84737	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x95f89a33	_raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x9600168c	kobject_add
+EXPORT_SYMBOL vmlinux 0x96058edd	request_firmware
+EXPORT_SYMBOL vmlinux 0x9606b305	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x961656c8	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x96352040	follow_down
+EXPORT_SYMBOL vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0x9660cf62	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x966c6ffc	blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x967d7541	md_check_recovery
+EXPORT_SYMBOL vmlinux 0x968428ac	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96958bce	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x9696ac72	rename_lock
+EXPORT_SYMBOL vmlinux 0x9697e146	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x96a31e0b	kill_pid
+EXPORT_SYMBOL vmlinux 0x96a592f6	seq_puts
+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 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x976e9163	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x9789b3b5	dm_register_target
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97ad1c35	names_cachep
+EXPORT_SYMBOL vmlinux 0x97b606ac	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x97b92f0c	kblockd_schedule_delayed_work
+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 0x97f3dc3e	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x981e3aaa	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x9820b644	warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0x9823c2b1	netif_napi_add
+EXPORT_SYMBOL vmlinux 0x98333de3	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x98602ed7	dev_kfree_skb_any
+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 0x98de61fa	simple_link
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x99052a84	acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x9926a732	update_region
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x9997de5f	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99bfbe39	get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99cdc86b	sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x9a11fdff	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a1ec4c8	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x9a371784	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x9a43f33c	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x9a530e3c	skb_clone
+EXPORT_SYMBOL vmlinux 0x9a68a5c5	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x9a6a83f9	cmos_lock
+EXPORT_SYMBOL vmlinux 0x9aaf7e15	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9ac4b7cf	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x9b0674e6	file_open_root
+EXPORT_SYMBOL vmlinux 0x9b314093	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b612d86	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0x9b69e07d	skb_recycle
+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 0x9bc72767	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x9bdaa010	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x9be62ffe	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x9be7cd4a	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x9bf12802	page_readlink
+EXPORT_SYMBOL vmlinux 0x9bf68e21	pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+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 0x9c4137d6	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x9c491f60	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c574142	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c7df650	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x9c88a2d0	sock_i_ino
+EXPORT_SYMBOL vmlinux 0x9c8ecd26	abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x9ca6a092	mpage_readpage
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc42dc3	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x9cc66fb5	genl_register_ops
+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 0x9d2194f9	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x9d295ed7	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x9d296f50	genl_register_family
+EXPORT_SYMBOL vmlinux 0x9d33ef5e	acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4b3cae	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x9d60f328	llc_sap_open
+EXPORT_SYMBOL vmlinux 0x9d6d0df0	swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x9d982765	blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x9da2cdf1	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x9dcb6748	atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9de1f48c	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x9de5198f	dev_addr_init
+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 0x9e42aec2	genphy_read_status
+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 0x9e682f34	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e955cd8	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x9e9ca625	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49	__sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebd4c04	adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9f2a6044	dst_destroy
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f48115e	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x9f491e5d	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x9f80e804	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x9f838b41	pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x9f8af360	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x9f982b4c	jbd2_journal_destroy
+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 0x9fbee6ae	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x9fcaaee8	mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa0198e29	nf_setsockopt
+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 0xa06fc24b	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa09a4dfb	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xa09fc008	input_flush_device
+EXPORT_SYMBOL vmlinux 0xa0a890de	request_key_async_with_auxdata
+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 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0ec3219	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa1176147	pci_clear_master
+EXPORT_SYMBOL vmlinux 0xa119f480	phy_stop
+EXPORT_SYMBOL vmlinux 0xa11b6565	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1399110	register_md_personality
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa168a8f5	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xa1715001	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa1805d2a	otg_put_transceiver
+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 0xa1bf76f9	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xa1c5a3b3	cleancache_enabled
+EXPORT_SYMBOL vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL vmlinux 0xa1dce1f6	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xa1f61226	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xa1f9fc05	ethtool_op_set_ufo
+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 0xa23f2a82	dev_addr_del
+EXPORT_SYMBOL vmlinux 0xa26f6f4a	pci_choose_state
+EXPORT_SYMBOL vmlinux 0xa281d414	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa285da49	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xa29e1693	netif_skb_features
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2af8117	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0xa2b82ce2	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa2ef34d7	rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f17c63	bioset_create
+EXPORT_SYMBOL vmlinux 0xa3036b70	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xa323a255	do_truncate
+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 0xa34336e1	vfs_rename
+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 0xa363dab4	udp_table
+EXPORT_SYMBOL vmlinux 0xa3671bfe	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xa3794560	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xa380fb0b	get_io_context
+EXPORT_SYMBOL vmlinux 0xa3b4b367	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xa3cea1a6	__put_cred
+EXPORT_SYMBOL vmlinux 0xa3de105c	pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xa3e4ca6c	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa3e53745	bio_put
+EXPORT_SYMBOL vmlinux 0xa3f51337	sock_no_accept
+EXPORT_SYMBOL vmlinux 0xa3f520c3	get_user_pages
+EXPORT_SYMBOL vmlinux 0xa3f52e9a	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0xa41736ca	pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xa41d55b8	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xa422df6e	skb_queue_head
+EXPORT_SYMBOL vmlinux 0xa4236b90	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xa430047c	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa43d1e72	vc_resize
+EXPORT_SYMBOL vmlinux 0xa448b19d	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa47643b8	unlock_rename
+EXPORT_SYMBOL vmlinux 0xa47ceb9c	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xa4ae6e2f	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xa4b1907a	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xa4b5e5c9	netpoll_setup
+EXPORT_SYMBOL vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4bf9c1d	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0xa4c0b6e4	tty_register_driver
+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 0xa500fc70	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xa5143991	skb_insert
+EXPORT_SYMBOL vmlinux 0xa51a27a6	consume_skb
+EXPORT_SYMBOL vmlinux 0xa51cdfe8	__FIXADDR_TOP
+EXPORT_SYMBOL vmlinux 0xa5365f38	pnp_unregister_card_driver
+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 0xa5da0abd	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0xa5e739f4	dget_parent
+EXPORT_SYMBOL vmlinux 0xa5e99861	input_mt_init_slots
+EXPORT_SYMBOL vmlinux 0xa6064db5	dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xa60f20e1	request_key
+EXPORT_SYMBOL vmlinux 0xa62e6e4f	acpi_get_table_with_size
+EXPORT_SYMBOL vmlinux 0xa63d85ab	slhc_remember
+EXPORT_SYMBOL vmlinux 0xa643b53a	journal_errno
+EXPORT_SYMBOL vmlinux 0xa648438c	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xa65dd37d	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xa668eb3e	submit_bio
+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 0xa695d683	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL vmlinux 0xa6ac0ad7	kill_fasync
+EXPORT_SYMBOL vmlinux 0xa6b13658	__percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xa6c02bc8	inet_listen
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6fe233b	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xa70bc986	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa716f072	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xa71b2c72	pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xa71e7463	__first_cpu
+EXPORT_SYMBOL vmlinux 0xa747ac49	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xa75f5398	bdget
+EXPORT_SYMBOL vmlinux 0xa7742968	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xa77f26bb	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0xa7971772	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xa7a3999e	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xa7edf601	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa8756491	dev_driver_string
+EXPORT_SYMBOL vmlinux 0xa894f159	wireless_send_event
+EXPORT_SYMBOL vmlinux 0xa8a6f639	__check_region
+EXPORT_SYMBOL vmlinux 0xa8abc838	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xa8c38e10	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xa8d68abd	acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8fb6345	pnp_find_dev
+EXPORT_SYMBOL vmlinux 0xa8fef7bb	security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa90e8405	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xa912ff0d	__inet6_hash
+EXPORT_SYMBOL vmlinux 0xa91b5561	acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa91d9c9e	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xa9372955	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xa9537a47	dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xa9596b43	padata_free
+EXPORT_SYMBOL vmlinux 0xa95e70bf	padata_add_cpu
+EXPORT_SYMBOL vmlinux 0xa968d23d	uart_write_wakeup
+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 0xa9c1b627	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL vmlinux 0xa9c7c907	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xa9f98a24	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xaa04059c	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xaa273a83	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xaa2a39a6	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xaa60d117	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xaa6388a5	pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xaa667732	tty_name
+EXPORT_SYMBOL vmlinux 0xaa6901ac	__kfifo_out_r
+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 0xaa97053f	get_write_access
+EXPORT_SYMBOL vmlinux 0xaaa3ec95	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xaaab8067	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaab9f7e7	node_states
+EXPORT_SYMBOL vmlinux 0xaacb7b66	unregister_8022_client
+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 0xab259add	dev_notice
+EXPORT_SYMBOL vmlinux 0xab28271c	i8253_lock
+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 0xab6e6483	ppp_input
+EXPORT_SYMBOL vmlinux 0xab74491f	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xab770678	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab84d9aa	dev_add_pack
+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 0xabd0c91c	rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabea96c6	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xabeb4cb5	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac1a7005	dput
+EXPORT_SYMBOL vmlinux 0xac2e97b0	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xac35daa6	devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xac36bc58	register_8022_client
+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 0xac78cf33	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xac78f3e3	pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xac7ce326	mmc_can_sanitize
+EXPORT_SYMBOL vmlinux 0xac7db58f	give_up_console
+EXPORT_SYMBOL vmlinux 0xac83cb16	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xac856456	xfrm_input
+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 0xacacb76a	pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xacc930d4	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xace506b8	mb_cache_entry_get
+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 0xad242fbd	mfd_cell_disable
+EXPORT_SYMBOL vmlinux 0xad24c82c	tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad5c7466	check_disk_change
+EXPORT_SYMBOL vmlinux 0xad7480b5	mca_device_claimed
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad887003	register_framebuffer
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadbb9ff3	tty_hangup
+EXPORT_SYMBOL vmlinux 0xadcac4a3	vfsmount_lock_local_unlock_cpu
+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 0xae3c7839	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xae44d904	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xae70d57f	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xae739097	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xae91c8b2	input_alloc_absinfo
+EXPORT_SYMBOL vmlinux 0xaea976a8	acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaeac3a7a	kill_pgrp
+EXPORT_SYMBOL vmlinux 0xaebaf265	bio_split
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaedd86ae	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xaf124cbd	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xaf2491a6	inet_frags_exit_net
+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 0xaf848b71	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xaf85574d	pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xaf8dbe08	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xaf8ea913	pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xafa21bc8	udp_prot
+EXPORT_SYMBOL vmlinux 0xafa3a1c8	neigh_update
+EXPORT_SYMBOL vmlinux 0xafae0a1c	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xafb3d5fd	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xafb551a5	pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb0207ecf	___ratelimit
+EXPORT_SYMBOL vmlinux 0xb0268ebd	agp_enable
+EXPORT_SYMBOL vmlinux 0xb045da85	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xb05a75f1	tty_mutex
+EXPORT_SYMBOL vmlinux 0xb077ef32	acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb0882be0	d_lookup
+EXPORT_SYMBOL vmlinux 0xb0a8fd0a	intel_gtt_unmap_memory
+EXPORT_SYMBOL vmlinux 0xb0b35322	generic_file_open
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0e452dd	xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xb0f0fffa	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xb12098c1	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1350fac	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xb13f1a2f	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xb1645a2e	sg_free_table
+EXPORT_SYMBOL vmlinux 0xb18f3981	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xb19760c3	bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1acef83	sk_stream_wait_memory
+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 0xb1cfad22	rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1d9523e	wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb1eabeee	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0xb1f10aaf	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xb1fe451c	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2744b36	down_write_trylock
+EXPORT_SYMBOL vmlinux 0xb27d00dd	pci_disable_msi
+EXPORT_SYMBOL vmlinux 0xb2838c16	__dst_free
+EXPORT_SYMBOL vmlinux 0xb2875557	filemap_fault
+EXPORT_SYMBOL vmlinux 0xb2a006d5	kernel_read
+EXPORT_SYMBOL vmlinux 0xb2c06587	register_cdrom
+EXPORT_SYMBOL vmlinux 0xb2efb6be	mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2f8aac8	km_state_expired
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL vmlinux 0xb30ccb4b	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0xb3284531	acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb332ad0c	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xb334810a	bdi_init
+EXPORT_SYMBOL vmlinux 0xb33718d8	dev_disable_lro
+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 0xb3e0590d	acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb4286a2f	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xb4372f24	pci_save_state
+EXPORT_SYMBOL vmlinux 0xb4390f9a	mcount
+EXPORT_SYMBOL vmlinux 0xb43c8124	pci_enable_obff
+EXPORT_SYMBOL vmlinux 0xb44caa13	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xb45578b8	memscan
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb472bbb4	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb49f30ad	bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xb4ba3de3	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xb4be5e33	cdrom_release
+EXPORT_SYMBOL vmlinux 0xb4e77f99	mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb50f1772	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xb51d6f85	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL vmlinux 0xb5364e80	dev_get_by_flags_rcu
+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 0xb5845d35	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0xb58d4c44	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xb592d2e2	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xb59e1f83	pskb_copy
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5adae29	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xb5ca1c46	slhc_free
+EXPORT_SYMBOL vmlinux 0xb5e4e267	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xb5e778ca	__kfree_skb
+EXPORT_SYMBOL vmlinux 0xb5ee6415	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xb5fb870b	commit_creds
+EXPORT_SYMBOL vmlinux 0xb60c2857	simple_setattr
+EXPORT_SYMBOL vmlinux 0xb6244511	sg_init_one
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb62f4280	generic_readlink
+EXPORT_SYMBOL vmlinux 0xb6588e7a	idr_remove
+EXPORT_SYMBOL vmlinux 0xb661399f	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xb66df172	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb690e262	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xb69464fb	find_inode_number
+EXPORT_SYMBOL vmlinux 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b21c34	do_munmap
+EXPORT_SYMBOL vmlinux 0xb6c235e6	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cc4de2	tty_check_change
+EXPORT_SYMBOL vmlinux 0xb6ed1e53	strncpy
+EXPORT_SYMBOL vmlinux 0xb73248ac	init_net
+EXPORT_SYMBOL vmlinux 0xb74d8cad	pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xb756297b	jbd2_journal_set_features
+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 0xb77992f6	lock_may_write
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7f8a7bd	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb825e56a	scsi_host_put
+EXPORT_SYMBOL vmlinux 0xb82b148a	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xb82c90f8	set_page_dirty
+EXPORT_SYMBOL vmlinux 0xb82f4c1b	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb84788bc	find_get_page
+EXPORT_SYMBOL vmlinux 0xb84c6162	sock_common_getsockopt
+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 0xb8e25037	tty_flip_buffer_push
+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 0xb9330ad7	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xb9533aa5	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xb960dace	dump_trace
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9909eb6	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xb99cf582	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0xb9a7f1af	mii_link_ok
+EXPORT_SYMBOL vmlinux 0xb9ab6e9f	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xb9ae656a	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xb9b0b923	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xb9c69a99	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb9f7fc9a	__brelse
+EXPORT_SYMBOL vmlinux 0xb9f8d764	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xb9fabf73	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xb9fd2205	add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xb9ff2ec8	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xba2a3694	fb_pan_display
+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 0xba8ea6ad	rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbab02fd6	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0xbabb5c95	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xbaf88488	tcf_em_register
+EXPORT_SYMBOL vmlinux 0xbafbcfb6	con_is_bound
+EXPORT_SYMBOL vmlinux 0xbb0351a4	tty_devnum
+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 0xbb6b76a6	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xbb78a248	inet_register_protosw
+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 0xbba5956f	journal_set_features
+EXPORT_SYMBOL vmlinux 0xbbd37b92	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0xbbd9e245	security_file_permission
+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 0xbc7140c1	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xbca183e6	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xbcb01c58	lookup_one_len
+EXPORT_SYMBOL vmlinux 0xbcc1c0aa	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcdff7a3	unload_nls
+EXPORT_SYMBOL vmlinux 0xbd016a37	fb_class
+EXPORT_SYMBOL vmlinux 0xbd1eb182	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xbd33dff7	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xbd66e459	simple_write_begin
+EXPORT_SYMBOL vmlinux 0xbd6dc7f5	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xbd819efb	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xbd8bf071	pci_dev_get
+EXPORT_SYMBOL vmlinux 0xbd9912cb	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0xbdc20c68	intel_gtt_get
+EXPORT_SYMBOL vmlinux 0xbdd66f9e	simple_readpage
+EXPORT_SYMBOL vmlinux 0xbdf5c25c	rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe3be62d	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xbe3f22ca	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xbe4a8833	d_move
+EXPORT_SYMBOL vmlinux 0xbe5b3468	scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xbe5ef38b	kthread_bind
+EXPORT_SYMBOL vmlinux 0xbe7e3e07	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xbe9a8968	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xbec49960	pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0xbeca9da8	scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0xbed83b67	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xbef1af04	i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf30f233	llc_add_pack
+EXPORT_SYMBOL vmlinux 0xbf6163df	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xbf70e9a5	__cleancache_put_page
+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 0xbfb47308	bdi_unregister
+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 0xc0049454	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xc011b95a	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0xc01cf848	_raw_read_lock
+EXPORT_SYMBOL vmlinux 0xc01eed33	__copy_from_user_ll_nozero
+EXPORT_SYMBOL vmlinux 0xc01f365a	netdev_info
+EXPORT_SYMBOL vmlinux 0xc03fc99f	__pagevec_release
+EXPORT_SYMBOL vmlinux 0xc0530fa2	kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc068440e	__kfifo_alloc
+EXPORT_SYMBOL vmlinux 0xc06e97cd	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xc0741c80	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xc085592e	mdiobus_free
+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 0xc0d33c98	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xc0d39b77	dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0xc0d499e2	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xc11198ab	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc11f97b6	dcb_ieee_setapp
+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 0xc1805396	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xc18b0d86	pci_set_master
+EXPORT_SYMBOL vmlinux 0xc19cc29a	nla_put
+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 0xc1c30900	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0xc1d1e61d	generic_writepages
+EXPORT_SYMBOL vmlinux 0xc1d66626	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xc225b77e	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xc232dfa6	key_task_permission
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc24ee251	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc269e279	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xc26b0020	registered_fb
+EXPORT_SYMBOL vmlinux 0xc280a525	__copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc28b4f2f	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xc2a0a02c	kernel_listen
+EXPORT_SYMBOL vmlinux 0xc2bea369	vfs_readdir
+EXPORT_SYMBOL vmlinux 0xc2d711e1	krealloc
+EXPORT_SYMBOL vmlinux 0xc2deb81b	filemap_flush
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc2f5d139	poll_initwait
+EXPORT_SYMBOL vmlinux 0xc2f916b3	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xc30a5e3f	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+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 0xc33f6005	write_dirty_buffer
+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 0xc3cee036	skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d313b4	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc3ddde56	sock_alloc_send_skb
+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 0xc4347225	agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0xc4554217	up
+EXPORT_SYMBOL vmlinux 0xc474b1db	alloc_file
+EXPORT_SYMBOL vmlinux 0xc48fcfbe	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc49c0669	register_snap_client
+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 0xc50e5b65	sock_release
+EXPORT_SYMBOL vmlinux 0xc5290322	mount_single
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc56148da	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xc56cb21a	jbd2_journal_stop
+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 0xc5a809ff	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc5a84436	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xc5b58d1e	find_get_pages_tag
+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 0xc6064f6a	pcim_iomap_table
+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 0xc66c4849	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xc6890ef3	acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc6aec70b	pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0xc6b06bcb	i2c_master_send
+EXPORT_SYMBOL vmlinux 0xc6b636c0	netdev_features_change
+EXPORT_SYMBOL vmlinux 0xc6b8e58a	scsi_put_command
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc70efe24	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc72350c6	security_d_instantiate
+EXPORT_SYMBOL vmlinux 0xc72e5575	save_mount_options
+EXPORT_SYMBOL vmlinux 0xc738239e	pci_disable_link_state_locked
+EXPORT_SYMBOL vmlinux 0xc73ac435	i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xc7600ff3	unregister_console
+EXPORT_SYMBOL vmlinux 0xc768de19	cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xc76eaabe	inet_getname
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc789c53f	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xc7998cee	jbd2_journal_revoke
+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 0xc7b43e17	search_binary_handler
+EXPORT_SYMBOL vmlinux 0xc7d2b7bc	locks_free_lock
+EXPORT_SYMBOL vmlinux 0xc7e70a14	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xc7e9a028	put_io_context
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc802aa02	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xc80b8b17	inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc897c382	sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a145dc	ata_print_version
+EXPORT_SYMBOL vmlinux 0xc8a9707c	__blk_end_request_all
+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 0xc8b84c2e	unregister_snap_client
+EXPORT_SYMBOL vmlinux 0xc8ce1cbf	sock_create_lite
+EXPORT_SYMBOL vmlinux 0xc8e9d244	fb_blank
+EXPORT_SYMBOL vmlinux 0xc8ec065e	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xc8edc0af	bdev_read_only
+EXPORT_SYMBOL vmlinux 0xc91c28b0	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xc929a99d	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xc94fa003	irq_stat
+EXPORT_SYMBOL vmlinux 0xc95fc38d	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xc9672a90	freeze_bdev
+EXPORT_SYMBOL vmlinux 0xc983c850	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xc98666d4	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc9ab2eef	acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9b5fd26	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xc9c15f96	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xc9d4d4a0	otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xc9dcd8a4	free_buffer_head
+EXPORT_SYMBOL vmlinux 0xc9de9fa1	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xc9f97f5e	dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xc9fd15e1	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xc9fd397e	kernel_bind
+EXPORT_SYMBOL vmlinux 0xca012154	dev_uc_init
+EXPORT_SYMBOL vmlinux 0xca13ca45	console_start
+EXPORT_SYMBOL vmlinux 0xca19102b	ht_create_irq
+EXPORT_SYMBOL vmlinux 0xca1e4e4c	inet_accept
+EXPORT_SYMBOL vmlinux 0xca4a4a39	blk_register_region
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca5ee64d	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0xca8acc78	acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcac144a3	fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xcacb0550	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xcacd3b6a	netdev_printk
+EXPORT_SYMBOL vmlinux 0xcad02e35	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0xcb33ac68	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xcb44ec37	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xcb451e56	idr_init
+EXPORT_SYMBOL vmlinux 0xcb48a677	pci_find_bus
+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 0xcb808f1d	set_binfmt
+EXPORT_SYMBOL vmlinux 0xcb8fcbf9	journal_invalidatepage
+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 0xcba7085a	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbd1cea4	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xcbeb52d4	soft_cursor
+EXPORT_SYMBOL vmlinux 0xcbeccf7e	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xcbfd706f	dcb_ieee_getapp_mask
+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 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 0xcc988780	vfs_llseek
+EXPORT_SYMBOL vmlinux 0xcc9ae80c	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xccba0ffb	md_error
+EXPORT_SYMBOL vmlinux 0xccc7c7c3	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xcccd9a1d	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xccd9108a	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0xcd255c8e	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd34d312	acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0xcd37de37	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xcd507b8f	input_get_keycode
+EXPORT_SYMBOL vmlinux 0xcd75afb6	scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xcda7cdec	bioset_free
+EXPORT_SYMBOL vmlinux 0xcdacdcf4	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xcdcae876	register_filesystem
+EXPORT_SYMBOL vmlinux 0xcddd486f	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcde963eb	bdi_destroy
+EXPORT_SYMBOL vmlinux 0xcdef8a36	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce223f86	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xce24de2c	acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL vmlinux 0xce2d8a96	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xce385cad	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xce4904a4	acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce79c419	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xceb78f83	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xcecd40dc	cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xcef51982	kstrtou16
+EXPORT_SYMBOL vmlinux 0xcefcd99a	serial8250_unregister_port
+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 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfcd681f	d_delete
+EXPORT_SYMBOL vmlinux 0xcfd0ff75	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xcfe05d4d	register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcff79c40	single_open
+EXPORT_SYMBOL vmlinux 0xcff9b2f8	dm_put_device
+EXPORT_SYMBOL vmlinux 0xd00808cb	udp_poll
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd02bdcfa	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xd02cad48	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xd0368a74	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xd0487d70	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xd070b09b	dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0xd08197fa	acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd09b7848	__sk_dst_check
+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 0xd107e115	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd110a2f4	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xd110b31d	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xd11c0dc1	__kernel_param_unlock
+EXPORT_SYMBOL vmlinux 0xd11f3674	bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd12038ac	jbd2_journal_invalidatepage
+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 0xd156b835	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd18b6eb2	acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd18b75ff	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xd196c9be	kstrtos16_from_user
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd2147e84	__bio_clone
+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 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 0xd2e6a582	acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd303f3c8	rt6_lookup
+EXPORT_SYMBOL vmlinux 0xd30f1a80	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xd3103c60	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd35e249a	_raw_read_lock_irq
+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 0xd3dcab0b	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0xd414c508	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xd4158361	__register_binfmt
+EXPORT_SYMBOL vmlinux 0xd4256feb	phy_start
+EXPORT_SYMBOL vmlinux 0xd42c4078	dst_alloc
+EXPORT_SYMBOL vmlinux 0xd4391057	pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xd4425585	netdev_emerg
+EXPORT_SYMBOL vmlinux 0xd46f48e8	cdev_init
+EXPORT_SYMBOL vmlinux 0xd48aee52	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xd48eb777	user_path_create
+EXPORT_SYMBOL vmlinux 0xd4a961ce	simple_release_fs
+EXPORT_SYMBOL vmlinux 0xd4baefe3	follow_pfn
+EXPORT_SYMBOL vmlinux 0xd4e5c9c6	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0xd4e8e9e8	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xd500245c	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xd50bf9fa	sockfd_lookup
+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 0xd56f0729	inet_twsk_deschedule
+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 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 0xd6825afa	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6d83a23	blk_start_queue
+EXPORT_SYMBOL vmlinux 0xd6e59640	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd7001850	pci_restore_state
+EXPORT_SYMBOL vmlinux 0xd7286a50	dcb_getapp
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd77a3707	pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77ce55f	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xd77d2dd6	dquot_alloc
+EXPORT_SYMBOL vmlinux 0xd780977b	__quota_error
+EXPORT_SYMBOL vmlinux 0xd7908c57	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xd791f2d4	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a13e71	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xd7ad0abd	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xd7bd3af2	add_wait_queue
+EXPORT_SYMBOL vmlinux 0xd7cada5f	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7df5a65	__free_pages
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f3a5ff	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xd803779c	fb_find_mode
+EXPORT_SYMBOL vmlinux 0xd816694f	skb_trim
+EXPORT_SYMBOL vmlinux 0xd818a08a	__dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xd822e250	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xd82648ac	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0xd8287e23	iw_handler_get_thrspy
+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 0xd85f7e2b	alloc_trdev
+EXPORT_SYMBOL vmlinux 0xd86123f6	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xd86a77f5	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0xd86c3283	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xd88ace08	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xd89a064c	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95	in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8ad2089	journal_wipe
+EXPORT_SYMBOL vmlinux 0xd8ca28c9	pci_bus_type
+EXPORT_SYMBOL vmlinux 0xd8e11308	splice_from_pipe_end
+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 0xd954b794	d_drop
+EXPORT_SYMBOL vmlinux 0xd95659d1	__devm_request_region
+EXPORT_SYMBOL vmlinux 0xd95ce88a	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0xd969b2c7	amd_e400_c1e_detected
+EXPORT_SYMBOL vmlinux 0xd97889f1	agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0xd98567e4	get_disk
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a4ec1a	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xd9a5b5bb	flush_signals
+EXPORT_SYMBOL vmlinux 0xd9ac29af	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xd9b764c4	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xd9c272aa	mca_mark_as_unused
+EXPORT_SYMBOL vmlinux 0xd9da38fc	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xd9f2c3f3	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xd9f74c0f	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xda08c0d7	pcibios_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xda0a6b0e	acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda23a743	__napi_schedule
+EXPORT_SYMBOL vmlinux 0xda3e496c	complete_request_key
+EXPORT_SYMBOL vmlinux 0xda435af0	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xda676fa0	jbd2_journal_errno
+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 0xdaa06122	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xdaa57ec3	totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaaa431c	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xdab5883b	mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0xdae86fd2	kmap_high
+EXPORT_SYMBOL vmlinux 0xdaf3427d	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0xdaf9e445	datagram_poll
+EXPORT_SYMBOL vmlinux 0xdafe10fd	ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb79b576	__lock_page
+EXPORT_SYMBOL vmlinux 0xdb852282	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0xdb864d65	iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdb9e2c22	posix_acl_create
+EXPORT_SYMBOL vmlinux 0xdbb052c8	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xdbb10583	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xdbb14bec	serial8250_set_isa_configurator
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbf9df9b	__page_symlink
+EXPORT_SYMBOL vmlinux 0xdc029509	release_sock
+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 0xdc57f532	acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0xdcc46b52	simple_write_end
+EXPORT_SYMBOL vmlinux 0xdccca046	override_creds
+EXPORT_SYMBOL vmlinux 0xdcfa392e	netpoll_send_udp
+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 0xdd312a37	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xdd73a191	dma_supported
+EXPORT_SYMBOL vmlinux 0xdd785666	simple_fill_super
+EXPORT_SYMBOL vmlinux 0xdd79c05e	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0xdda7bdf3	textsearch_register
+EXPORT_SYMBOL vmlinux 0xddb4aa92	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xddd6d757	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xddd6fa29	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xddd740df	pci_get_device
+EXPORT_SYMBOL vmlinux 0xdddf0d4d	write_cache_pages
+EXPORT_SYMBOL vmlinux 0xde14978a	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xde93f73a	inode_permission
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdeadb5a8	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0xdeae7acc	proto_unregister
+EXPORT_SYMBOL vmlinux 0xdec4c7d1	acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0xdec778f6	ida_get_new
+EXPORT_SYMBOL vmlinux 0xded0fff5	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xdee3b0b2	brioctl_set
+EXPORT_SYMBOL vmlinux 0xdeed5e80	mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0xdef23a46	__sock_create
+EXPORT_SYMBOL vmlinux 0xdf0da3cc	acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf0f8fb1	end_writeback
+EXPORT_SYMBOL vmlinux 0xdf1a10f0	genphy_suspend
+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 0xdf507b66	fb_set_var
+EXPORT_SYMBOL vmlinux 0xdf52f94e	skb_make_writable
+EXPORT_SYMBOL vmlinux 0xdf60cc27	__print_symbol
+EXPORT_SYMBOL vmlinux 0xdf7f9c09	may_umount_tree
+EXPORT_SYMBOL vmlinux 0xdf82bb6d	udp_ioctl
+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 0xdf9ef85d	ping_prot
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xdfc8c051	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xdfe24fb4	inet6_release
+EXPORT_SYMBOL vmlinux 0xe002a889	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xe009a269	ps2_init
+EXPORT_SYMBOL vmlinux 0xe0246e51	dm_get_device
+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 0xe0bded35	sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xe0f22f57	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0xe0f3b6e4	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe10a2799	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0xe11b4579	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe147be90	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0xe15dc9c3	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xe16df5a1	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe17828cc	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xe1a74ae4	vc_cons
+EXPORT_SYMBOL vmlinux 0xe1ac9876	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xe1af8f1d	dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xe1c61100	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xe1e7e043	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xe1ea6649	mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe204bcda	lookup_bdev
+EXPORT_SYMBOL vmlinux 0xe21f49ca	iterate_supers_type
+EXPORT_SYMBOL vmlinux 0xe22e929e	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xe23ae481	blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe2496296	padata_stop
+EXPORT_SYMBOL vmlinux 0xe24d3a97	jiffies_64
+EXPORT_SYMBOL vmlinux 0xe26367b8	put_tty_driver
+EXPORT_SYMBOL vmlinux 0xe2b28266	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xe2b8954e	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL vmlinux 0xe2d83f33	mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xe2e3a625	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL vmlinux 0xe2ee6c32	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe2fc4044	kmap
+EXPORT_SYMBOL vmlinux 0xe319eb24	acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0xe3585ee2	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xe39e9712	path_get
+EXPORT_SYMBOL vmlinux 0xe3bf3cbe	set_create_files_as
+EXPORT_SYMBOL vmlinux 0xe3c6079e	atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3fbe148	acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe3ff81b5	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xe40a752a	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xe41433bd	unlock_super
+EXPORT_SYMBOL vmlinux 0xe414427e	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xe4173d5a	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xe43617f7	acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe43f784e	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xe448ac97	arp_invalidate
+EXPORT_SYMBOL vmlinux 0xe44ec1d0	buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xe45f60d8	__wake_up
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe485a88f	setup_arg_pages
+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 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe530d757	acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe53c1ccf	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0xe53fb84f	input_close_device
+EXPORT_SYMBOL vmlinux 0xe567f86d	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe57abfd3	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5965348	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xe5adafa2	fd_install
+EXPORT_SYMBOL vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe601c05a	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xe604b131	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xe60d3a1a	__lru_cache_add
+EXPORT_SYMBOL vmlinux 0xe613668d	intel_gmch_remove
+EXPORT_SYMBOL vmlinux 0xe61a7f18	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe6210a18	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0xe6494d9e	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+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 0xe6ceeeaa	d_add_ci
+EXPORT_SYMBOL vmlinux 0xe6d76f29	bio_add_page
+EXPORT_SYMBOL vmlinux 0xe6ebc016	key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6f153f5	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed	acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71fb9b2	blkdev_get
+EXPORT_SYMBOL vmlinux 0xe7246920	udp_proc_register
+EXPORT_SYMBOL vmlinux 0xe72a7835	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xe73c985a	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xe73dceab	sync_blockdev
+EXPORT_SYMBOL vmlinux 0xe744886d	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xe7556aae	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xe75972db	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0xe75f5fb6	journal_try_to_free_buffers
+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 0xe785b88a	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xe78c9c2c	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xe78f9c4b	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xe7955a8a	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7d8980c	pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8304a3d	mem_map
+EXPORT_SYMBOL vmlinux 0xe8485de3	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xe8543fce	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0xe858b6fc	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe8823b16	ether_setup
+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 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe90ca8e2	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe9179d91	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xe94d98bc	posix_lock_file
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe9612ea0	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xe96b5ab5	force_sig
+EXPORT_SYMBOL vmlinux 0xe988ec11	dev_err
+EXPORT_SYMBOL vmlinux 0xe98a7fef	md_flush_request
+EXPORT_SYMBOL vmlinux 0xe9935211	would_dump
+EXPORT_SYMBOL vmlinux 0xe997667b	wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9ad7e69	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xe9c3e00e	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xe9c5a3eb	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xe9d72e67	sock_no_setsockopt
+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 0xea2b3406	sk_stream_error
+EXPORT_SYMBOL vmlinux 0xea36e29d	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xea5bac94	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xea7351bf	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL vmlinux 0xea7b8a44	acpi_install_interface
+EXPORT_SYMBOL vmlinux 0xea88d6ab	fifo_create_dflt
+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 0xea9742f0	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0xea9855ae	blk_limits_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xea9bc562	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xeab95e7f	elv_register_queue
+EXPORT_SYMBOL vmlinux 0xeabd18e2	kobject_set_name
+EXPORT_SYMBOL vmlinux 0xeac8457c	ihold
+EXPORT_SYMBOL vmlinux 0xead01d4f	pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb43d981	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0xeb49a1e7	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xeb4f9ff7	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xeb568a33	pci_pme_active
+EXPORT_SYMBOL vmlinux 0xeb6d8217	swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xeb83214d	pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xeb8e75f4	scsi_register
+EXPORT_SYMBOL vmlinux 0xeb9d3d9d	generic_file_llseek
+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 0xebd532b5	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xebdbe48c	radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0xebe90da0	acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0xebf5c914	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xebf98aeb	module_put
+EXPORT_SYMBOL vmlinux 0xec15f00a	tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4e50df	free_user_ns
+EXPORT_SYMBOL vmlinux 0xec51d6a4	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xec8d90bc	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xecad27fc	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xecb3a5e1	clocksource_register
+EXPORT_SYMBOL vmlinux 0xecb721f1	try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xecde5a4d	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xece5a7c3	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xecf45892	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xed00b278	mount_ns
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed3285e6	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xed5cd2f9	sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xed5d93ac	kernel_connect
+EXPORT_SYMBOL vmlinux 0xed69ac5e	simple_empty
+EXPORT_SYMBOL vmlinux 0xed6c07b2	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xed702324	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xed7a3a4b	ll_rw_block
+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 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 0xee3a137b	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xee50a6ee	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xee71c5d1	blk_start_request
+EXPORT_SYMBOL vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee7edb22	skb_gso_segment
+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 0xeeab909d	dev_load
+EXPORT_SYMBOL vmlinux 0xeeac4479	pci_assign_resource
+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 0xef4bb908	register_console
+EXPORT_SYMBOL vmlinux 0xef4cba51	tty_vhangup
+EXPORT_SYMBOL vmlinux 0xef716f12	page_symlink
+EXPORT_SYMBOL vmlinux 0xef98d62f	in_dev_finish_destroy
+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 0xeffbe994	acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0xeffbedee	register_qdisc
+EXPORT_SYMBOL vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL vmlinux 0xf0040079	rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xf0192728	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xf04fd245	blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xf0637a83	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf07d3ce4	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xf09c2922	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xf0ab4fbe	___pskb_trim
+EXPORT_SYMBOL vmlinux 0xf0e20f08	iterate_mounts
+EXPORT_SYMBOL vmlinux 0xf0ef15b4	list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c	kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f4ea02	vfs_mknod
+EXPORT_SYMBOL vmlinux 0xf0fdc62e	migrate_page
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb	__stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a	remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1043b67	journal_init_inode
+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 0xf16d96a9	inet_frag_find
+EXPORT_SYMBOL vmlinux 0xf18bbdba	tcf_hash_search
+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 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 0xf2357254	acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf24e35d4	dquot_transfer
+EXPORT_SYMBOL vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2b01dc0	blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xf2bbfb6a	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xf2e74040	mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf2eb3169	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf32055e7	dev_base_lock
+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 0xf34131ee	__register_chrdev
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35ed1c9	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xf37260ab	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xf37563b4	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xf37c3022	generic_file_splice_read
+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 0xf397d148	skb_find_text
+EXPORT_SYMBOL vmlinux 0xf39bf4d9	put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3b82723	vm_insert_page
+EXPORT_SYMBOL vmlinux 0xf3bf0bce	__bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3cf6de1	acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0xf3d0de82	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xf3fc600b	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xf41606f9	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4568aa9	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0xf45c7f6e	add_disk
+EXPORT_SYMBOL vmlinux 0xf46f8709	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xf47bf2d6	xfrm_spd_getinfo
+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 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4d305f3	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f19e51	downgrade_write
+EXPORT_SYMBOL vmlinux 0xf4fcaf0d	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xf4ffab89	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xf500077c	vfs_read
+EXPORT_SYMBOL vmlinux 0xf502d273	acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf519e9a4	mntget
+EXPORT_SYMBOL vmlinux 0xf51ae235	touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf531e9d0	pci_ltr_supported
+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 0xf553ecc6	scsi_device_put
+EXPORT_SYMBOL vmlinux 0xf55445b2	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xf58eb3e5	led_brightness_set
+EXPORT_SYMBOL vmlinux 0xf5a608d1	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xf5b96c9e	pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xf5bc01ae	blk_rq_init
+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 0xf5ff0204	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xf6053ed1	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf612aa12	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xf6339317	acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf63b1cd9	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xf657dd54	dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xf65f2fa9	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf6888196	dquot_file_open
+EXPORT_SYMBOL vmlinux 0xf697e807	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+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 0xf70b0806	__d_drop
+EXPORT_SYMBOL vmlinux 0xf70e6e8c	sock_wfree
+EXPORT_SYMBOL vmlinux 0xf74012f4	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7a4df7e	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0xf7b9dd3d	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xf7de5ef8	spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xf7e34b3f	journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xf7e361a9	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xf7e37635	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf813e08e	blk_stop_queue
+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 0xf85294c9	uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf85524a6	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xf8589fa5	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xf86c50e7	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xf886ec5e	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xf88e0ee2	acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f	pm_idle
+EXPORT_SYMBOL vmlinux 0xf897db59	generic_fillattr
+EXPORT_SYMBOL vmlinux 0xf8bf9d24	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xf8c5513b	serial8250_do_set_termios
+EXPORT_SYMBOL vmlinux 0xf8f6f628	mca_register_driver
+EXPORT_SYMBOL vmlinux 0xf8fe3ef5	make_EII_client
+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 0xf99a2809	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9cd1b77	fsync_bdev
+EXPORT_SYMBOL vmlinux 0xf9d48eab	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xf9d6223f	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xf9db43b6	kset_register
+EXPORT_SYMBOL vmlinux 0xf9ddbfce	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xfa096ed8	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xfa1005df	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xfa1b300a	bio_init
+EXPORT_SYMBOL vmlinux 0xfa23fb25	phy_print_status
+EXPORT_SYMBOL vmlinux 0xfa30957c	mempool_free
+EXPORT_SYMBOL vmlinux 0xfa63733c	file_update_time
+EXPORT_SYMBOL vmlinux 0xfaf49712	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb	acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb1be686	ida_remove
+EXPORT_SYMBOL vmlinux 0xfb45ef73	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0xfb60cd7e	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb6d30f9	sock_register
+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 0xfb91967e	jbd2_journal_forget
+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 0xfbe73584	register_netdevice
+EXPORT_SYMBOL vmlinux 0xfbea587f	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xfbfb6416	revert_creds
+EXPORT_SYMBOL vmlinux 0xfc02b7ad	sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc0aa038	cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xfc0e3439	find_lock_page
+EXPORT_SYMBOL vmlinux 0xfc1d4dba	da903x_query_status
+EXPORT_SYMBOL vmlinux 0xfc263537	pci_enable_device_io
+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 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 0xfcb2c404	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xfcc2a43c	utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd35070	blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcfd6fae	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xfd1d5aca	is_container_init
+EXPORT_SYMBOL vmlinux 0xfd487bca	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0xfd51f397	__netdev_printk
+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 0xfd6fe81f	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xfd747875	mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0xfd76c769	dst_release
+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 0xfdfca856	netdev_rx_csum_fault
+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 0xfe8cbcde	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xfe9e4d05	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xfec03ee6	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xfec3c2f2	bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed1db46	inode_add_bytes
+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 0xff53d395	input_register_device
+EXPORT_SYMBOL vmlinux 0xff5fc144	unlock_page
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4	ioport_resource
+EXPORT_SYMBOL vmlinux 0xff92a6ab	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffd5a395	default_wake_function
+EXPORT_SYMBOL vmlinux 0xffe587d7	d_set_d_op
+EXPORT_SYMBOL vmlinux 0xfff19488	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xfff33c73	kill_anon_super
+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 0x0028f757	kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0849a741	kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09f8e91c	kvm_mmu_unload
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ac35ea7	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b75f4c7	fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x11174641	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1250f44e	hva_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14dd0214	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18dfb5ed	gfn_to_pfn_async
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a89786d	kvm_gfn_to_hva_cache_init
+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 0x1ebc13be	gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x240d4bc1	kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2467a29c	kvm_set_xcr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27604d79	kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27716b75	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a6aff2a	gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2ba786b1	kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31	kvm_spurious_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x315dbc75	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39ba6f79	gfn_to_memslot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x40f368c2	kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ec14fdf	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51e3b6e6	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53861bc6	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x565f12ae	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57b046ac	kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x586d6091	kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bceaebd	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e852336	gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f5cb717	kvm_release_page_clean
+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 0x65095f5f	kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a0a57d2	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b21f548	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b291aa9	is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07	is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7059ad9b	kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x710b12bf	kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71b487bc	kvm_vcpu_init
+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 0x7b3c9db6	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b8d32c3	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5	is_noslot_pfn
+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 0x8b50ad7f	kvm_set_cr4
+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 0x8db3de8b	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8eb94fd3	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92f7a07b	kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x935a748d	kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x98a7d8e7	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x999b2ebd	kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9b4a824a	handle_mmio_page_fault_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cf32a66	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc1a01a	kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e6bb92b	kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fbf3576	kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa23009df	kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2e908bc	kvm_write_tsc
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa35a945b	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7371546	load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa77fed09	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be	is_invalid_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad77dd6f	kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf2b3a37	kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0e3bad0	kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1c2ce70	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605	__tracepoint_kvm_nested_vmrun
+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 0xbfafe0c3	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc00dfdaf	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3664605	kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc45aff49	kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5957e0f	kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc684cd71	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf7cb5a4	kvm_get_cr8
+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 0xd1ef692b	kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9	kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd502d282	kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd699f423	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd70bea4e	kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd76f4ff2	kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd8dc2105	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb38a40c	kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc1ccc52	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe008badf	kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe12fb28f	kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2d36258	kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe361732f	kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe93c15a0	kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec75dfff	x86_emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed3b8a75	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed62c458	kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef2c5524	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefb7a3ce	kvm_clear_guest_page
+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 0xf92bca86	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc483a95	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcbcfd22	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd830e36	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL crypto/af_alg 0x2cff77df	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7d2d475d	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0x82315c27	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x8a75c0e9	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0xc9838bcb	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde	af_alg_cmsg_send
+EXPORT_SYMBOL_GPL crypto/af_alg 0xeab406b7	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0xee180142	af_alg_accept
+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 0x1b626e36	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x2f3bbda5	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x70bc9861	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x79cf7581	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x853b8ff3	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9cfbe911	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xae66b0be	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xafd2e709	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbfa8c18b	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf740afe5	cryptd_free_aead
+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 0x2ab021d7	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3216c840	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x32f0cb36	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5f85f4e4	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x94b2d3b9	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbeca2824	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda156ce7	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe2c88cbe	btmrvl_check_evtpkt
+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 0x05fc8035	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0d8dbcea	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x138d140b	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e8e08d0	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x31429a30	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4797be21	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x49abb6d9	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4b1ba0da	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73cc1afc	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x79991f53	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7ed7f639	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84b936dc	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8837f071	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc034b9e1	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc91d3a61	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdf2039e1	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf1c9828a	gigaset_handle_modem_response
+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 0x33e5bfef	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 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 0x4ff760d3	dm_region_hash_create
+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 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 0x39f523b2	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x0c4dd69a	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x0c177fce	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0657fdb0	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1980a331	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1c2e6d52	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3146ac86	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3d2ce854	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3d4b6d7d	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x56052000	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x72ceee4c	mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7b651dbe	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7fa04134	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x950f3151	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9a19d4e6	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9fd4c886	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa01a5500	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb5894536	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd2e30c06	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf157999b	mantis_i2c_exit
+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 0x464b19d5	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x49d0c275	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5a60b0d8	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61bc74dd	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x959bad0f	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa89a7a5f	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xebe6a8a8	ttpci_budget_init_hooks
+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 0x5e7cb021	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfdc926f6	st_unregister
+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 0x32a9c879	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x36500e5a	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x70ca54b7	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9f4482cc	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0e4ee03f	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x300ac31d	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x389f08a7	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5662b5da	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x887171bb	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa297623c	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa475a071	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb0cca10a	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbbc7a615	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcb4c5cbe	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfe2fa2d7	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfeafe8f4	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x359555d8	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3fae57ab	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4025bbc4	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe1c044c8	alloc_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 0x10c39cf2	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1681c232	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4fc83159	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5ae6dd74	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9083a7e9	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0xaff34d89	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x21c74d5e	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4d66f4c7	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x53cb62f3	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5ad5c3a4	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5e71a6aa	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x74329c25	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9166348f	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x99b24ab6	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb2b2d2e8	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd5061211	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x043399ef	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x07ba71a0	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22f4ef48	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2511bb2e	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cf0450f	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3a10c495	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fd9e2fa	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x485de8d5	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6025232b	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x605f19d4	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x60d06cf7	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6b48ae69	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f0a8c24	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x73c82f66	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fe60be5	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb4b77a8	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb41eabb	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc11876f	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3a5b9d8	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6e61c23	usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde6782de	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf378e8ac	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc320eae	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfdc14d48	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x06268b3b	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x119d4aa6	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1baa295c	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x23fb7713	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x38a25cc9	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x45b000fc	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4fb6cbe6	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5bc88e1f	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5db6fc4c	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x62dcd4ce	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x68135428	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8487f5fb	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x962a7306	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb28095f2	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc756beb8	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe9867783	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19	libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xca474f5a	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x6385e5de	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x85d9651e	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xa17a2921	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd57f55de	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x000cddef	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x005ff767	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2494b868	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5acf1f3a	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7aea784d	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7edf1716	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x892ba3e3	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8d5c225c	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x959d6187	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa62131be	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa7d1c5e2	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd7c486de	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3a6e818	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf3afcbce	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64902a6	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x056f0f1d	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2d8c9f44	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x498044bd	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x68e69afb	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa1977c51	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa91c233c	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbb654b26	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 0xd47bf0e1	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x56ad2903	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x8dcbabb5	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2c9d5b42	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x43e79ae0	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x58e1a672	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8fd5529f	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbe414f2e	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc4072a78	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd17f3002	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd5dc3d23	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf1bb1ba4	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf683b9bf	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfeedbea1	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x023d562f	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0f29c67c	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2247ab5a	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x297c16b6	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3f88935e	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x63ed94cc	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6ffdf21b	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa6c7d23d	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe67bfc59	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09081646	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d27b34e	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x28fd798d	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x29975884	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2e0d32b1	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x347d709f	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3aa6e386	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3bda6a55	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x432bf316	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x466688ae	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47c24d4b	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d1bfe51	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58742fea	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f98a7fc	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90814ce9	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9578669e	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b3e004e	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9ecbc0b2	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf6339ee	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb1241caf	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3214e28	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc268485b	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3bb6224	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3ffbc10	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5a7b80d	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc74ed742	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb1de011	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd09e53f	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xded4f42c	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe31da109	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4ce6085	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec10eae8	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed8cc5ad	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xefa8bd6e	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf646286f	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf8d6cdbc	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9120bec	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x066e90dd	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08f83271	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1286590d	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a180e3d	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c853512	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26f54a3d	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d625bb6	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ec38663	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x300e3465	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32707f9b	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x376cb9b8	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37aed20e	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37b5a7ba	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3954b5ba	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d811881	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40eea8eb	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46bf4fae	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4cbe2e84	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dffbfbf	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d92c995	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e0a3143	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60186a56	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6496f1d2	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a8d4cf6	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d348cc1	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x76b00527	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7aa2a046	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c8aa5e0	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83af72d6	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x962494ab	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa03b0de0	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa68a4b43	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa963df20	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4e8f453	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6e472a9	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbeb0fd46	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc381b179	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0971db1	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5ad5a78	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd73753b2	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7508d72	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6fa8d94	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeeb6e4aa	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1b274cb	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf5f6d831	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8adf32b	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2af3c418	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x37d35983	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3c4d80d4	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x83d61bea	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x86047826	rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabd74468	rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4098473	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4329c2c	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4bb79f4	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x00ff599b	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0394b6f0	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10b52b4f	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x292905d0	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33d7afd1	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b00511	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e10d178	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x766b30e0	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b61d4e8	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90b59adb	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb940be48	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc79d1850	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd66d3d4e	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8b7536a	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9e328b8	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf571c069	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2500106d	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xb62a36b9	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xbe55ca8e	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0200ca07	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3fbd9d3b	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x736b53ca	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9177c705	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xdb4b6e8d	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf014db41	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf330b060	wl1271_register_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 0x08303e86	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0988f1f6	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a55aa03	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0ab7fb3a	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18c1761c	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a6c67fb	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b98802a	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22a233d3	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x241d956a	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2bbc923b	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x336f0522	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34e44405	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34ed1fb1	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5a4fd2	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3b1ac3a1	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x43a53b10	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x480b2b2e	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48c02dd4	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5708d353	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x82c7b190	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x82d05dbe	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85d6713c	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9144518a	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9910bd1a	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d112de0	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9f978ef4	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa12a4ad3	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa184cb3e	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2e05ee5	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5bc4646	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5f72bd2	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab2619f0	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd521ca3	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdb1e666	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc1155eef	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd72c68f7	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd735a1b7	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdaf80bba	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde907101	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe119445f	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe330b3ab	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xedbfd426	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf21baa40	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2599898	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfcbaa42b	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x431530a0	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f836123	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x866e7375	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8db3eabc	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc0cef10f	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc85f06a5	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcdc1be63	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xddeb2e2d	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe0c4e535	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 0x010e880d	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03291f74	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a3d8a8f	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10737e27	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x123e8e45	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x193a5709	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1aa938cb	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1fa1a694	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27be46a3	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29d50fd4	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a77caf2	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x324279cb	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x326be3ae	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35775b47	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bce6000	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x412c19ad	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cf5c0cd	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52cfc92f	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57392cba	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x595ee019	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63df9b6f	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65b218b0	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6695e130	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x677dc124	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75807abc	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x78856705	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x821912ea	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89eb14b8	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8aff2ffb	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96af0d97	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xabdee6d4	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4347937	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbffa2845	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc211255d	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc22a4e5c	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcde599b7	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8aaaa77	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe97d151e	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeabcc423	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4a4fe46	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf58095b4	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8d58f27	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfae2137f	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x119c5806	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1328622d	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21d22e46	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x285e808f	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c3397a7	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c5d1163	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x34b9d75b	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x356859c4	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6c60a620	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x70f3763f	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x90772737	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa944eda2	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xce012ad2	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xce4294f9	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee2ade52	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf859de7a	iscsi_tcp_conn_teardown
+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 0x01efbf09	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d0f9ee1	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1cd936f4	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d3f7dab	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a7945ea	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cdd7f62	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36bcc67a	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3da34023	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ee8875f	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x418b1806	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41cfe598	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x447592c4	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x563966c4	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57be29fc	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x694e8b7f	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x73f88c3d	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8081b750	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81f74e47	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x986e9cc0	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1db77cb	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6d2da9b	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8027d50	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd1634d3	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed52ca05	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed592bd8	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0e264fe	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8333876	iscsi_destroy_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 0x02b5b0ac	comedi_get_device_file_info
+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 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 0x04d8dec5	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x153fef3d	sockfd_to_socket
+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 0x327a2679	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x560ce985	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x66b7892a	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78ff6852	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x861ff70a	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x93a9990c	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa668e12e	usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xae511989	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc8063c16	usbip_stop_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/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 0xda78aa54	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe624c7df	usbatm_usb_disconnect
+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 0x0f73c7cb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1523352e	usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2631df77	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x29444955	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2f6af080	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fb5958b	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35630f8b	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43aeb2d8	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x592e7de4	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x62074611	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8912794e	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9dccdf30	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5ac6ea2	ezusb_writememory
+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 0xba1cc72f	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf91f283	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf82c073	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeb36f932	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7f3b05e	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc065f43	usb_serial_handle_dcd_change
+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 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4665fcca	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4f081a8f	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62056b59	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 0x7f7ec194	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9310ccb8	nlmclnt_proc
+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 0x0010e691	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27044165	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27a02833	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a19c51c	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b33025e	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ea2f67b	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6324c39f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c31dd51	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2dd59cb	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3aa5f0c	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc14327f5	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc77fe87c	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4e8bb04	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf01d4fd2	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe19fb3f	nfs_initiate_write
+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 0x244a9767	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553	o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x45462da1	o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5687e392	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x691daa5a	o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8b68b9f5	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 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 0xbdca1832	o2nm_get_node_by_num
+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 0xe3a79ad2	o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x04c117c8	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x345cb19f	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ce4097e	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x44c45ddb	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x559a6daa	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8e075ad5	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/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 0x3b11da5e	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x3d8e852b	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x5276972b	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x67feddf3	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xb2d57e81	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xce32170a	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x0f7c66bc	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0xda4f0837	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xbfc5a116	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xd3cf784f	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 0x4a57e144	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 0x4aea1154	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x071dc872	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a68b71e	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cf3c3fc	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x16f5c175	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e546a4a	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f038612	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x20adedc6	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x28c79b3d	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cd32012	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2dcaedf9	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2df777ce	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x448bd42e	dccp_shutdown
+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 0x523acf43	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d762611	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f9a4f94	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72a2ba4d	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x73b24c49	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x765a086c	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x836d2b9f	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7e32ec	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x94cfe8c0	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0fc892f	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4698022	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xacb5a238	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb47b535a	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xba725ff2	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7265a17	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd661ab47	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe03309ed	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xee5c3014	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf03074d7	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf04c5a38	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2a25482	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3ae8370	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2f36cf7e	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x442556ba	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5703ec32	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcfc68404	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd076a565	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd925e158	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0ec443be	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x86769101	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x380c8e02	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x9da4a079	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x08814896	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1b805eeb	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xf9b002ab	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xa0838d6d	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x146b5f4f	nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921	need_ipv4_conntrack
+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 0x34556f4d	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3742c1a5	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6be2d658	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7ca703cb	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 0x995039ea	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf6d8365b	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 0x176adaa8	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x438906dc	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6f5ccdde	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9d1ea29c	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfaac47bf	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x33f9d35f	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 0x01130953	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0ea80684	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3850acb1	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d35cca3	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7cd249fb	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7d51d185	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x81ef5b03	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8eba051a	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc57e0352	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe88d80d1	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8a82822	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf507e39d	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x45eee37f	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x769d7c8d	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x98de3a64	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xacf8d1db	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/mac80211/mac80211 0xfd3e0d16	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0f454eec	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 0x4106bc90	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4a71b772	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x58af6998	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6df6cd2e	ip_set_del
+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 0x9181fa63	ip_set_get_ip_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 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 0xa5888854	ip_set_type_register
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa778524c	ip_set_get_ip6_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 0xc6a44575	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0198fe41	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5d19d8f1	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6354f59e	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xfeaf94b4	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00cff2e6	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1113d2f0	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14f0fc5e	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20a955be	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x237b2205	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24ebe9b8	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x275c43c4	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a40b6df	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d02cba3	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e7faa67	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31ddd7d8	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3579539a	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bc05d3a	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3eedfc05	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x418261e4	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x441dd90c	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x494c6520	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c586296	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c855c32	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51896b96	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x558ee800	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x574570b7	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c947eac	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d7c5184	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60070baf	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ae8ea8a	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7339942f	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x762bbb8e	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77c1c807	nf_ct_expect_register_notifier
+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 0x7ac718e7	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81117db2	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x849795dc	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88bf0bf2	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89512196	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f16bc8a	nf_ct_invert_tuple
+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 0x91386b0c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x933d9911	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c4445f3	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa276abc9	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3d06a89	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4e2ab48	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa9c519b	nf_ct_port_tuple_to_nlattr
+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 0xaff7ebce	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2a288a4	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb674314	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8a67a8	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbed961d9	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1e9cd77	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce9652a2	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd32e34d0	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6ed7f8d	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea16592b	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec46364e	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef765abc	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf29228e8	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf43fcfaa	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4d15e71	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffdb40ac	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xf96d2506	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xeb748956	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x0d369505	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0bd5ead2	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x190c1e60	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x37a6c269	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5a7e1dce	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6565bebb	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x73b6b7c7	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x84c0aa56	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8521717f	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c11c2c4	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe9667dc4	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2ff39f4e	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x352ab224	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x662c3458	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf6e75768	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfc772cd9	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x14edae00	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x880ba963	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x25f9486e	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d238df3	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f73e1d4	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x55e544a4	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5a2fdecf	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x694cfe9f	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x85171cd7	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa38e8acb	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa5a20598	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb2cf9e3f	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbc465791	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd5738eca	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd9177e9c	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x5d0fb852	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x08b3ce62	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd9a19a18	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x11d0b1e3	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2ca708a5	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x31fd4690	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3206369c	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd2d62f1	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xffc764e6	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x2b6ddae7	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00e670c9	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00ed9de5	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x079fc68a	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x27217415	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3c210540	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4153d00f	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x520303a8	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5edb12c8	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x75f99b90	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaaa91a4c	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf77545e	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc36e92b5	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf63d8c9	xt_hook_link
+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 0x0280ff86	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x04abe0ea	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x074d4897	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x12fee079	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x28de8a1c	rds_message_addref
+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 0x3b4fc0fc	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x4b807291	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x57ecece5	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x6054c423	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8030e4d9	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x82649006	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x82832d46	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x85a7c72c	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x89b15c66	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x8aa10237	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x928810f2	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x94970408	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x98d3050d	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc4b3eca6	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107	rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0xdcce618c	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xe1b913ac	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xf144ecb5	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xf5cb6e98	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4458ccd4	rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xae770759	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 0x14c8ce09	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1ca0c4c1	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2dce509a	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3de57cca	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3f5295da	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4389348b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6c906150	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8021d611	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x864a206a	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8b108dd0	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 0x950134bc	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xec88d382	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00fe18df	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01c7cc71	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x050b1ffd	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06367364	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07b04216	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a6fa41d	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a858677	svc_auth_register
+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 0x1268a9e8	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x126d52ce	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x135121a2	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1467d8d3	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x147f4528	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15b46e68	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e63b20	xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1966ebd2	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b7d41c2	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c516a51	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cec85ab	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ef556b0	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f45bd0f	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f89ba4b	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24523f03	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2636b32d	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26d918f1	svc_process
+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 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a5e630f	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a91452b	xprt_alloc_slot
+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 0x31175b2c	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x329d52f8	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32a99ee9	xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b11811	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38c71ea9	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e179178	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e4764d4	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9f2d8f	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4143d0fb	xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c596d0	svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4767317b	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49c86bf4	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49f9043b	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a7a7fb4	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506714d5	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d3896e	xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b	rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51482c7e	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51b9e99a	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b38d0d	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x533950e7	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53e7e382	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x589815f4	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x596cc7f3	rpcauth_create
+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 0x5ee76977	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc3c1f6	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60b4ef6f	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61726344	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618be34b	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6361cfa3	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x637c3b3d	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65b0cb45	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c1cc82	xdr_terminate_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65eedeeb	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67136889	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67451f1a	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x688f4baa	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69eed9ae	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d	svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7037474e	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72179e3c	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ca6351	xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74814281	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b654faa	cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d2cb375	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de70cf5	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x852c9b3f	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8952cef3	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a89266e	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8abdcb70	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bf34ca7	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d9a0544	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e93d325	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f88e3b1	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x935f153d	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9712d22c	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x971be2a3	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9864dc5a	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a044ee4	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b5be120	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b8acb21	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cba1638	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cba732d	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eac387c	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2b27462	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7e2b4eb	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa85a5592	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8fb9e47	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaca7ab8c	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xade9f609	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb16a4d4e	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3ef3443	rpc_bind_new_program
+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 0xc27d291d	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3172156	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc491d5c9	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc539a5e2	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5fc402c	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6c611fa	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc71f8b82	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c603ed	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9bc3b15	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca42ebb3	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc373342	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc6d7bf2	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd86c9ba	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce7fbe92	rpc_put_task_async
+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 0xd0a961d7	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2cb5750	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7b6823a	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd99a0133	xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda0f77a1	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda36632b	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda830040	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc61d85c	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddf0b70a	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeaf0aa1	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4d4303b	xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe567ee15	rpc_peeraddr2str
+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 0xe60d7041	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+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 0xf41ded63	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45556f2	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4cdbe35	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf822440c	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf84d16c9	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf91948ed	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf94b6e82	rpc_call_sync
+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 0xfc0a4ef0	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd4b5dc5	rpc_call_async
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x44601ade	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x585b8ffa	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5958c774	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x68266cf7	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x68889166	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x86af3ba2	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xae27a401	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbab6860e	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc900eba	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2d75868	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe665b4ab	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf09e939a	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf0d8a26a	wimax_state_get
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1e461614	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23284efe	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a3ea195	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2c0d7331	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x35e9ebfc	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3e7df697	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4b01ba28	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e38bd68	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5f116d11	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb6d34a01	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf61de0d1	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x30795ec5	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb7cc6f0c	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc5e6a12d	ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd7b47150	ipcomp_input
+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 0x0974373e	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a8db072	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b3c8a7f	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d582808	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0dda4f84	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e9faffd	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ec917eb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11fee5f5	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16e95870	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a4a15f7	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b999fe1	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1be5c3a0	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c4422a9	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d72ee9e	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x204ee196	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21e437a3	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x235dc9ae	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x260f2e63	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28f120a5	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x295b96e1	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be92f8c	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x342b1f42	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3727e0cf	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3802cfec	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39dc4290	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a4cf31f	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ba8367a	snd_hda_power_down
+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 0x4442be20	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b7a3b8b	query_amp_caps
+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 0x4f97fb39	snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x517ed125	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x577b9425	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a0a873f	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bfe1841	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x604c095a	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aecd25e	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b3bebfc	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ecb214d	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7167bff9	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7317fb22	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76e1f793	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x781f919e	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78be600c	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d425938	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f65e887	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84b3fb9a	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ce69ab	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84d35e4e	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8517895e	snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85871216	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8616f323	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x892b183c	snd_hda_jack_tbl_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x899c3b30	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8aae2572	snd_hda_mixer_amp_switch_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 0x92ecff36	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92ff44a5	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9abae095	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bd8da35	snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ecdd120	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f13c9a4	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae0235b7	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaee1d1c6	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf071a37	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaff2f1ad	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb23ef04a	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb388e01c	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3c7c683	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4a8378b	snd_hda_codec_amp_read
+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 0xba73e459	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb8ef310	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbbef666	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc995ed6	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf979e13	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69	snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc79ae0ed	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8b3d789	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc964ee2b	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca78620e	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcaf3ebc1	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e	snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcca99a22	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdd80ba7	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde0ac44	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75b2c33	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda101dc1	snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdac935ad	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1aa7cb2	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe40ab54a	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e4cae0	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6e44d33	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7873e87	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb399a3d	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecc9a83a	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef02b62d	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1f9bcf1	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf67dec8e	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf77c8eb1	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7b0bcdb	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa3490ef	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb0ac623	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffcaf862	snd_hda_codec_set_pincfg
+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 0x0440588f	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b41bc49	snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c82864f	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0caf1268	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1032086f	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1198a648	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x119d5587	snd_soc_set_runtime_hwparams
+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 0x16a09605	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x178c0977	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7f467e	dapm_mark_dirty
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bf25f43	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c8052c9	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dcf3ba3	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e522e6b	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20590352	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21f18c6f	snd_soc_put_volsw_2r_sx
+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 0x29cc472a	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fd19c0c	snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37f7365a	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x400f5e02	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43819dcf	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439df157	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x466b75ab	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d6fcf3d	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d80e37c	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x527a633b	snd_soc_cache_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5358455d	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x552d2b6a	snd_soc_info_volsw_ext
+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 0x6292d0d2	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62d3a7ff	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6348a592	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x670ee251	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67a514c5	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c713766	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c9bc6e6	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e3e4b32	snd_soc_dai_set_tdm_slot
+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 0x74f85f62	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b3f50b1	snd_soc_poweroff
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ba817e5	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d165ec0	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f325da3	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81bacce5	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81cef8a6	snd_soc_dapm_get_pin_status
+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 0x93681863	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9695fd94	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97aa2024	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b06185e	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b7055f7	snd_soc_put_enum_double
+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 0x9cb3576d	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d2fb429	snd_soc_platform_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa61f9bd6	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaab3d1f7	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3b72dd7	snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb539de10	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb66546d3	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6b818f4	snd_soc_codec_set_pll
+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 0xbe6cd941	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1ca3a08	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3c118d5	snd_soc_dai_set_clkdiv
+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 0xc9756551	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb3a93ed	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb72997e	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceff8673	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf1693bb	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0e3ed7c	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd168efdc	snd_soc_default_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd24a47e5	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5698707	snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd87c3a0e	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd97413c8	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc27a6ce	snd_soc_info_volsw_s8
+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 0xe5a9ebfc	snd_soc_register_card
+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 0xe7e54557	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeafd776c	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec60b7ba	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0747955	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf67571ca	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfca5bb02	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd137649	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL vmlinux 0x005aa26f	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75	ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006b76b4	find_module
+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 0x01156ee3	crypto_ahash_digest
+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 0x01db6e1f	shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x0212b4f0	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x026211e2	memory_failure_queue
+EXPORT_SYMBOL_GPL vmlinux 0x02697871	dw_spi_remove_host
+EXPORT_SYMBOL_GPL vmlinux 0x026c335c	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x028f671e	tps6586x_update
+EXPORT_SYMBOL_GPL vmlinux 0x02cdd854	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0x0330c6d3	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x03448461	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x03a880e4	usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x03b74ca3	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0x03c530b1	__put_task_struct
+EXPORT_SYMBOL_GPL vmlinux 0x03c88e56	cgroup_add_file
+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 0x04bf26af	ioremap_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04ce988c	netdev_rx_handler_register
+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 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 0x06717539	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x0673e573	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x06750010	tcp_unregister_congestion_control
+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 0x0737dc59	crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x074d6a47	spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x0756e9fa	aead_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 0x0a665ad4	replace_page_cache_page
+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 0x0b14a8aa	__scsi_get_command
+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 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 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c3ca568	elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0c6d7ce9	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d	key_type_trusted
+EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f	crypto_it_tab
+EXPORT_SYMBOL_GPL vmlinux 0x0ce15b0a	dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x0ce4c184	spi_bus_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x0d165b79	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x0d1daceb	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x0d4607c4	fuse_abort_conn
+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 0x0df1efa1	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x0df66d4c	da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0e06c5e1	mnt_clone_write
+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 0x0e6094ab	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x0e6b7d4d	device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0e81bdd7	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x0e9ed92b	blkdev_aio_write
+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 0x0fef510f	locks_release_private
+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 0x1077b222	xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x109182bb	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x10b3bf8e	usb_alloc_streams
+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 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 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 0x1269aee1	bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x12866951	sysdev_class_remove_file
+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 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 0x146306a9	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1483853b	user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x14af3f3f	pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x14bcbe24	regulator_unregister
+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 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 0x170a686c	unregister_pernet_device
+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 0x17374233	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x17456a48	dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x17677632	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x1775b0bd	skb_tstamp_tx
+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 0x181868bd	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x18316153	skb_cow_data
+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 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 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 0x192cb5dc	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x192cef22	unregister_ftrace_function
+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 0x19642ca6	blk_rq_err_bytes
+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 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 0x1a790211	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0x1a847b48	ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x1a958f66	wm831x_device_shutdown
+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 0x1b0df375	task_active_pid_ns
+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 0x1bcb5c18	gpio_export_link
+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 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 0x1dc17285	crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x1dd3640d	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x1ddc1b84	crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x1e0e82d0	pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1e0fe041	add_to_page_cache_lru
+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 0x1e86efe1	xattr_getsecurity
+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 0x1f50db45	crypto_register_shash
+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 0x205c5ffb	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x209b417b	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x20b38162	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470	orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x211cc96f	pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x215f10bd	__srcu_notifier_call_chain
+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 0x222bbed3	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x226755ef	debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x2281a11b	tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x228b93ae	tc3589x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d	crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22c319f7	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x22ca5a5f	scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x22e85e41	hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x23026fa8	nf_register_afinfo
+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 0x240580a9	xenbus_probe
+EXPORT_SYMBOL_GPL vmlinux 0x2431dd93	yield_to
+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 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 0x252c828b	skb_partial_csum_set
+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 0x254b0969	shash_free_instance
+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 0x25c67935	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x25da53bf	pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x25da9e3f	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x260c7f25	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL vmlinux 0x262f20a8	local_clock
+EXPORT_SYMBOL_GPL vmlinux 0x264f9c86	adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x265eb446	ata_msleep
+EXPORT_SYMBOL_GPL vmlinux 0x2665c916	regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x2678e95d	init_pid_ns
+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 0x270542ee	skb_morph
+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 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL vmlinux 0x282657e6	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x283ee1a3	pci_disable_ats
+EXPORT_SYMBOL_GPL vmlinux 0x2882566d	dev_attr_em_message
+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 0x28d40edd	crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28df040c	unregister_efivars
+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 0x291354ef	crypto_attr_alg2
+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 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 0x2a8b0bf2	blk_trace_startstop
+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 0x2b34a4f7	skcipher_geniv_alloc
+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 0x2c1a0e37	crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607	power_supply_is_system_supplied
+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 0x2c7e4dc6	tun_get_socket
+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 0x2d0d1652	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d4bb98a	init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954	edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2df5ae1a	crypto_shash_finup
+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 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 0x2e5a94d6	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x2e98ac4c	free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x2ea00b62	pm_generic_thaw_noirq
+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 0x2fa23fdd	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x2fbf58b8	net_ns_type_operations
+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 0x2ff9835a	__blk_put_request
+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 0x30a43278	relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca	bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30b1f292	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x30b464f8	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL vmlinux 0x30f08833	regulator_get
+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 0x328f8750	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x329006f1	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x32924a4d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x32969bd0	sync_filesystem
+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 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 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 0x34bc8606	wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x34cdebec	class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x34d76c42	__class_create
+EXPORT_SYMBOL_GPL vmlinux 0x34f0644d	usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x35155f66	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x352fc949	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x3557e31f	pci_configure_slot
+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 0x35ccfe09	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x35d7c252	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x35e75663	blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x35f3ead3	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x3604f4da	exportfs_encode_fh
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc	save_stack_trace
+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 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 0x37ddd4ae	task_xstate_cachep
+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 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 0x3927648a	crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x394483d9	rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x395e0958	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x396b7fae	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x39a3176a	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x39ae6b54	sysfs_create_file
+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 0x3a214373	crypto_tfm_in_queue
+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 0x3ab8d3bd	tcp_get_info
+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 0x3af9f489	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3b05f0c3	xen_swiotlb_map_sg
+EXPORT_SYMBOL_GPL vmlinux 0x3b1746c1	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x3b1a26a5	regulator_get_exclusive
+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 0x3bc5688e	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c	usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c5dba15	regcache_cache_only
+EXPORT_SYMBOL_GPL vmlinux 0x3c832673	inet_ctl_sock_create
+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 0x3cdf5155	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3ce0b92a	crypto_unregister_template
+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 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 0x3de9cae1	crypto_remove_final
+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 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 0x3f54548c	wakeup_source_create
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f86a43e	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x3f9e94f9	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x3fbc0463	max8997_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x3fdb16ab	debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x3fe38920	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x3fed8b54	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x402e5db5	pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40607537	fib_rules_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 0x41999699	rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x41b53d75	ip_route_output_flow
+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 0x423bed47	dev_forward_skb
+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 0x42de2f6c	dev_change_net_namespace
+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 0x448305e2	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44976b99	clone_private_mount
+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 0x45314b4f	regmap_init
+EXPORT_SYMBOL_GPL vmlinux 0x453379ed	pm_generic_suspend_noirq
+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 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 0x466f2431	wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b	__crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46944434	tty_ldisc_deref
+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 0x4717590d	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c	gpio_request
+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 0x4865f9b3	inet_getpeer
+EXPORT_SYMBOL_GPL vmlinux 0x48682db9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL vmlinux 0x4873aaa9	i2c_unlock_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x4889f2f0	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x489044fb	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0	sysctl_tcp_cookie_size
+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 0x49c7dc1e	__sock_recv_ts_and_drops
+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 0x4a3bc13e	get_net_ns_by_pid
+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 0x4b386538	tcp_twsk_destructor
+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 0x4bc62a81	audit_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4bdbbdf3	usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x4c0a9779	md_trim_bio
+EXPORT_SYMBOL_GPL vmlinux 0x4c26889c	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0	ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x4c55a559	device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4cb4a7bb	agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x4cd07ac8	crypto_alloc_base
+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 0x4d371303	xfrm_audit_state_replay_overflow
+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 0x4db74f95	regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b	crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x4de56218	crypto_alg_lookup
+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 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 0x4f6c6df8	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x4f6f4770	regulator_get_init_drvdata
+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 0x5057b534	regmap_exit
+EXPORT_SYMBOL_GPL vmlinux 0x5064c210	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a	alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508c5f96	iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0x508e726b	cgroup_path
+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 0x50c08440	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+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 0x5160707f	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5212685a	__pneigh_lookup
+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 0x52bf38c3	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x52c50479	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x52c5aee2	class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x52d7b5d2	module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x52dba066	devres_release_group
+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 0x54318eea	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5	__pm_stay_awake
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54a64b80	rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x551619fd	driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x552567c0	inet_putpeer
+EXPORT_SYMBOL_GPL vmlinux 0x55418d82	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x55526907	xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55748a5b	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x557500c7	perf_event_refresh
+EXPORT_SYMBOL_GPL vmlinux 0x557f3954	led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x55abbd61	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x5603071b	scsi_nl_sock
+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 0x56965a59	nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x56a1290a	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL vmlinux 0x56c35117	crypto_init_spawn2
+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 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 0x581ad785	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x584119bb	da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x58635df1	crypto_givcipher_type
+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 0x5889199e	gpiochip_is_requested
+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 0x5996139a	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x599fca01	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x59a136a3	cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x59b864cc	mmc_app_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x59c779e4	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0x59eae699	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x5a1dc483	tpm_gen_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x5a20104e	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+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 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 0x5bb906a7	wait_rcu_gp
+EXPORT_SYMBOL_GPL vmlinux 0x5bccfa85	kobject_uevent
+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 0x5d0bc22b	put_driver
+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 0x5d7f0de5	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067	register_acpi_bus_notifier
+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 0x5df493fc	raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL vmlinux 0x5e01fcdb	sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5e94d3bf	__pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f	ahci_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x5eddf62c	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x5ee3a942	pci_disable_pasid
+EXPORT_SYMBOL_GPL vmlinux 0x5f12311d	user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x5f1e3dfe	inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x5f248f72	set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f38d42c	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x5f3cd55d	usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x5f7791b5	crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x5f8afd65	xfrm_audit_state_add
+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 0x6035a516	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x604f7a33	cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL vmlinux 0x60515d25	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x60524e06	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x606932fb	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x607eb1d6	get_task_comm
+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 0x61d0a165	usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x61ebbde1	rio_local_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x6202c9ff	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6238261a	usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406	hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x624c50dd	mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x6267cae2	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0x627b5a0e	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x62cc2f2a	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x62eef303	pm_schedule_suspend
+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 0x642404d3	sched_setscheduler
+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 0x648feda9	pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x64c0e96a	md_stop
+EXPORT_SYMBOL_GPL vmlinux 0x64cfbd8f	get_dcookie
+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 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 0x65d6d0f0	gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65e990c8	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65f5c591	raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x65fa533b	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x660ae3b7	register_net_sysctl_rotable
+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 0x664d63f8	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x6658e0e7	wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x66778069	usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x667be86e	crypto_hash_walk_first
+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 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 0x6763cffc	aead_geniv_free
+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 0x67c5636c	posix_clock_register
+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 0x6872fda6	find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x6882e0bc	inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68951de2	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x68cd2df4	blkiocg_update_timeslice_used
+EXPORT_SYMBOL_GPL vmlinux 0x68eff5d4	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x6901f843	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x694ac7dd	proc_net_fops_create
+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 0x6a36d5ab	crypto_aes_set_key
+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 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6aa884ed	kick_process
+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 0x6b0b0e42	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa	ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b4746d0	sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f	gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b853542	ip6_local_out
+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 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 0x6d362e88	do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x6d4668b0	wm8350_reg_lock
+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 0x6e0da60b	alloc_page_buffers
+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 0x6f36f38f	mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x6f37c92e	relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x6f44133f	blk_add_request_payload
+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 0x6fc98630	get_task_mm
+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 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7109d015	relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x713c5702	ata_wait_register
+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 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 0x7236bb9b	rdev_get_id
+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 0x72adbfe3	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x72b212ff	regulator_bulk_enable
+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 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 0x74336723	register_efivars
+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 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 0x74deb10c	used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e5d3bc	inet_twsk_schedule
+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 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 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75eb88b8	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL vmlinux 0x75fbb7b3	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x760872be	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd	dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x76397985	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x765bbf09	sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x7694b822	register_mce_write_callback
+EXPORT_SYMBOL_GPL vmlinux 0x76967905	usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x76a1a1f0	regmap_update_bits
+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 0x77ba76f3	hrtimer_init_sleeper
+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 0x78a44b7b	__netpoll_cleanup
+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 0x796931fb	blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x796c2d48	dm_get_md
+EXPORT_SYMBOL_GPL vmlinux 0x79903610	regmap_raw_write
+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 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 0x7a4c1438	pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a4faeda	inet_csk_route_req
+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 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 0x7b6e8358	__mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x7b7f1818	usb_is_intel_switchable_xhci
+EXPORT_SYMBOL_GPL vmlinux 0x7b831c8a	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x7baeafb1	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x7be0965a	dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x7bef6b01	ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7c110132	set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x7c29d4a5	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7c357d59	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x7c94a551	usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x7cd0bde4	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7cef4d6a	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0x7cf2de25	inet6_destroy_sock
+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 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 0x7e2258d4	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8	scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e356be0	blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x7e39c737	aead_geniv_alloc
+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 0x7ef6a85d	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x7f04e593	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x7f33243e	regcache_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f45ea30	md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x7f6c529b	usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7f907862	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4	hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x7fb8f4b5	firmware_kobj
+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 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 0x80c19ca2	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x80f3268f	__trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0x81101ab7	xen_swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x815ec7e7	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL vmlinux 0x816ddc97	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x81760c2a	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL vmlinux 0x81ef8b1f	spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x82239268	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f	__gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x823a0d56	blk_queue_flush_queueable
+EXPORT_SYMBOL_GPL vmlinux 0x824219dc	cgroup_unload_subsys
+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 0x834ca35a	tcp_reno_min_cwnd
+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 0x83bd80d4	sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb	get_monotonic_boottime
+EXPORT_SYMBOL_GPL vmlinux 0x841a2c09	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x841df206	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x842186ed	netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x8453fdaa	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x84ab042c	spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x84b106be	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x84b596c7	usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x84bece77	ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x85050965	__irq_alloc_descs
+EXPORT_SYMBOL_GPL vmlinux 0x85283c37	tcp_register_congestion_control
+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 0x85811351	ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x85b0cb05	tcp_reno_ssthresh
+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 0x85d7d4c8	scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x85dfdb16	unregister_pernet_subsys
+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 0x86a51007	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6	klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x86b1378a	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x870e16b7	xen_test_irq_shared
+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 0x886a4204	perf_event_read_value
+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 0x88dc0e9e	rdev_get_drvdata
+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 0x89b41c73	pstore_register
+EXPORT_SYMBOL_GPL vmlinux 0x89b59810	class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf	usb_usual_check_type
+EXPORT_SYMBOL_GPL vmlinux 0x89f0db4c	dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6	init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8a1be19a	crypto_init_shash_spawn
+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 0x8a9d95c9	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x8ac17c7e	part_round_stats
+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 0x8af69a68	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8b04668e	bind_interdomain_evtchn_to_irqhandler
+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 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 0x8c613710	__rtnl_af_register
+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 0x8d15f646	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x8d500491	ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x8d72b33c	rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8d77bdd5	raw_seq_stop
+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 0x8e3ba9c7	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x8e3e4356	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x8e44578e	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8e61bfd3	md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x8e6d498c	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x8e7155b9	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8e88ace2	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x8edfc605	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0x8ef50ca5	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x8ef660c1	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8eff6f73	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0x8f14beb9	ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8f3a2688	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x8f3ea366	tcp_init_congestion_ops
+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 0x8ff7bc7c	rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8ffe7499	device_init_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x900bee0f	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x905528ec	user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x9062c322	ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x9095c716	swiotlb_tbl_map_single
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a	crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90c9d8e8	register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x90d1e20c	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x90ffb8f2	skb_pull_rcsum
+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 0x9159b9d6	profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x91734bb3	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x918ad429	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x91ce465c	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x91da3d4e	ip6_sk_dst_lookup_flow
+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 0x9310b133	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x933a4e98	usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x933a52be	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d	snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d96403	blk_insert_cloned_request
+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 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952570e4	rtnl_register
+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 0x957f2fb3	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x95b01681	rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x95b9ac04	regmap_write
+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 0x96861d91	ata_sff_qc_fill_rtf
+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 0x97353746	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0x975a4c47	use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x977d3aa6	pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x978178ec	rtnl_af_unregister
+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 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 0x993bbbae	css_id
+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 0x9a0dbff1	__init_kthread_worker
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a2a4eea	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x9a2d12c6	__rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a4ba814	cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x9a5c54c8	pid_vnr
+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 0x9adae3bc	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9b09ad65	rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x9b405d9e	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9b4ba368	ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x9b71077b	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x9b8d5af2	dm_path_uevent
+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 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 0x9c9dd81f	ablkcipher_walk_phys
+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 0x9d04b013	eventfd_fget
+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 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 0x9e4ddb57	perf_event_create_kernel_counter
+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 0xa14523d0	register_user_hw_breakpoint
+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 0xa163ef42	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0xa18e49f9	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0xa1d34365	crypto_destroy_tfm
+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 0xa2b0a3ed	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08	acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa304c686	cred_to_ucred
+EXPORT_SYMBOL_GPL vmlinux 0xa30b6825	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xa30c5f99	xenbus_map_ring
+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 0xa3b8d4dc	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL vmlinux 0xa3bb9dec	blkcg_get_weight
+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 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4932a0b	add_page_wait_queue
+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 0xa51fd9d7	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xa529bc5b	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0xa5448856	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0xa54e9b4d	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xa566e805	preempt_notifier_register
+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 0xa5c8d7b6	xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa5f475f1	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xa61d9a4c	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xa63022d8	da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xa6932b04	event_storage_mutex
+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 0xa7c9e39e	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xa7f92105	add_uevent_var
+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 0xa85d8235	inet6_csk_search_req
+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 0xa8b82a53	xen_destroy_contiguous_region
+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 0xa999d867	crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xa9a1b357	rtnl_put_cacheinfo
+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 0xaa1f1fe2	crypto_shash_update
+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 0xaaadfb77	ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xaaafee3c	wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xaab06297	lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xaacc5a3f	inet_hash
+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 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab88f153	user_match
+EXPORT_SYMBOL_GPL vmlinux 0xabc47f60	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xabf9d714	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xac0723b9	rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xac0b82c6	__ip_route_output_key
+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 0xacc6dec4	rtnl_link_register
+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 0xacfdcbd0	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xad183db5	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0xad4b2783	register_pernet_subsys
+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 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 0xae7c5411	ms_hyperv
+EXPORT_SYMBOL_GPL vmlinux 0xae9a2f7c	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xae9f851f	xenbus_probe_node
+EXPORT_SYMBOL_GPL vmlinux 0xaeea3073	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xaef0a96f	vfs_kern_mount
+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 0xafdc0a37	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xafe110f2	pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0xb00150ec	scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xb0663978	power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb06d6fe6	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977	ftrace_set_notrace
+EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xb0c999dc	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc	cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb1145213	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb125155e	ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0xb129f576	tcp_done
+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 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 0xb224d69c	shash_attr_alg
+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 0xb29bddf5	posix_clock_unregister
+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 0xb30be7af	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xb30ffe7b	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0xb315f6b6	i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb3177a47	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb331a451	crypto_ahash_setkey
+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 0xb3db2ef7	vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb3e2de12	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xb3eb5ae5	tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0xb40428c3	pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xb41f6414	__put_net
+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 0xb4f3609e	filter_current_check_discard
+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 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 0xb5e0aea8	__trace_note_message
+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 0xb685d687	usb_free_coherent
+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 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 0xb84e8008	css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xb86ba71c	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb	klist_next
+EXPORT_SYMBOL_GPL vmlinux 0xb885ae2f	xen_swiotlb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xb8c1e758	skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xb9010c76	power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c	scatterwalk_map_and_copy
+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 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 0xb9f7a7bb	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xba6134a4	fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xbaa5be01	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xbaaeb90e	led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbab0c5e0	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27	scsi_nl_remove_transport
+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 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 0xbd164066	rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xbd2f89b3	evm_verifyxattr
+EXPORT_SYMBOL_GPL vmlinux 0xbd3b02f3	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46	unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbda04d99	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xbdbc6182	__xenbus_register_backend
+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 0xbddfe5fb	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xbde2c210	vfs_getxattr
+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 0xbe16cb81	crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3f5298	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbeac3749	transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xbebd39e1	find_symbol
+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 0xbf677c8e	modify_user_hw_breakpoint
+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 0xc0097236	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xc020c541	class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xc03ab504	setup_deferrable_timer_on_stack_key
+EXPORT_SYMBOL_GPL vmlinux 0xc04b8581	cgroup_attach_task_all
+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 0xc13ff524	regmap_bulk_read
+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 0xc189a987	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xc1a42661	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xc1e5c3b8	usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091	vm_unmap_aliases
+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 0xc2abaf9f	__class_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2c8cc97	usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2ccce3f	crypto_register_template
+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 0xc33ed1d8	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xc340b85e	seq_open_net
+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 0xc3daa34f	sk_setup_caps
+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 0xc492476e	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL vmlinux 0xc50478ef	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xc51c3373	inet_csk_route_child_sock
+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 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 0xc6d5c6da	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc6d96772	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xc716dcf8	register_net_sysctl_table
+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 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 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 0xc970bda6	ahci_shost_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xc9755afb	vfs_listxattr
+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 0xca957e33	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb022c55	tcp_is_cwnd_limited
+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 0xcbaac648	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbef9643	crypto_init_spawn
+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 0xcc53d8d3	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305	is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc91a0fe	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xccbf1e58	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcce29e02	sysdev_store_ulong
+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 0xcd8c1f36	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcd910a81	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9	usb_usual_set_present
+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 0xd018c53d	scsi_nl_add_driver
+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 0xd0d0e998	posix_timer_event
+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 0xd1c7f390	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xd1e2644e	nf_unregister_afinfo
+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 0xd2293387	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xd23cf296	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL vmlinux 0xd2409466	sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0xd254379b	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xd2624587	inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xd26c8304	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27a9d32	gnttab_map_refs
+EXPORT_SYMBOL_GPL vmlinux 0xd28fdc52	vfs_setxattr
+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 0xd32a7a79	mmput
+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 0xd45dbe31	crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xd4693fe3	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd4bae535	crypto_register_instance
+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 0xd5514295	blk_rq_prep_clone
+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 0xd65157a9	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xd69b423f	handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd6d95b05	crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd6e09cd2	__pm_runtime_idle
+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 0xd713975e	ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xd753c937	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0xd75a9061	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd75f93ba	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd76505e8	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77af3de	sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8	klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7907357	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xd79f420c	crypto_alloc_instance
+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 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 0xd8b854a7	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xd8e37b34	sdio_release_host
+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 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 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 0xda8faed1	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xdac03d4b	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xdad6009d	inode_dio_wait
+EXPORT_SYMBOL_GPL vmlinux 0xdadb8618	ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xdae4e22b	sk_clone
+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 0xdb66e470	mnt_drop_write
+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 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 0xdc564602	skcipher_geniv_exit
+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 0xdd2a7aaf	xen_swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xdd48f1f3	sk_detach_filter
+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 0xde10f3b8	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xde163f8f	usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xde337dc9	inet_csk_get_port
+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 0xde7677ce	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xdf5d79ea	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdf616470	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06	klist_iter_init_node
+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 0xe03adad2	vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe03b872a	blk_trace_setup
+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 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 0xe14de0f3	tpm_write
+EXPORT_SYMBOL_GPL vmlinux 0xe1506c5d	spi_bus_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe1793671	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe184ea3a	simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xe1bd6f0c	xfrm_inner_extract_output
+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 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 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 0xe30e2c43	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xe351277f	kern_mount_data
+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 0xe4067f42	inet_csk_listen_start
+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 0xe44cd564	ftrace_event_reg
+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 0xe4cd0556	get_user_pages_fast
+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 0xe56da222	platform_device_add_data
+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 0xe6765ff5	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xe6a7fd7a	pm_generic_restore_noirq
+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 0xe78a6b8b	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xe78be098	xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0xe7d1c5ab	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe807d01f	pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xe822e2f3	inet_csk_reqsk_queue_hash_add
+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 0xe8897695	ipv6_find_tlv
+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 0xe97a91da	usb_driver_claim_interface
+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 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 0xeb12439b	unregister_hw_breakpoint
+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 0xec7402ff	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xeca84d1c	setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xecb9b31d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xecce90e3	__get_user_pages_fast
+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 0xed66784d	br_fdb_test_addr_hook
+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 0xee7ed427	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xee8f538b	blkcipher_walk_phys
+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 0xef4166ac	regmap_init_spi
+EXPORT_SYMBOL_GPL vmlinux 0xef48d254	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xef4bf506	shash_register_instance
+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 0xf076b177	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xf0a9d664	bio_alloc_mddev
+EXPORT_SYMBOL_GPL vmlinux 0xf0be1ecd	rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf0ff1cec	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0xf11257d2	find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c	irq_remove_generic_chip
+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 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL vmlinux 0xf1b44803	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9	ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xf1b8d96c	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0xf1e0df1b	ahci_reset_controller
+EXPORT_SYMBOL_GPL vmlinux 0xf1e1e077	tcp_reno_cong_avoid
+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 0xf25ae5c2	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xf25f1531	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf263092b	debugfs_create_u8
+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 0xf331faf7	xfrm_audit_state_replay
+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 0xf38eaea8	sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97	cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3c5bfe3	usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d	regulator_set_voltage_time
+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 0xf499fdb2	rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4cdced8	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xf4d292f5	exportfs_decode_fh
+EXPORT_SYMBOL_GPL vmlinux 0xf4d40fb9	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xf4d59c17	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf5095ace	fsstack_copy_attr_all
+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 0xf5f953b6	crypto_ahash_finup
+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 0xf6cc6e71	platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf6e04730	event_storage
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf6f6e7d8	ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530	xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf7051e04	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf710fc84	crypto_drop_spawn
+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 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 0xf95c4af8	platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833	dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0	set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf977ad05	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xf979ef84	blk_queue_bio
+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 0xf9af515f	each_symbol_section
+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 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662	scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa240e32	ata_port_schedule_eh
+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 0xfac15cd0	__audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xfac9f9b6	swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0xfad369a1	driver_find
+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 0xfb4c2745	sk_attach_filter
+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 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 0xfc865e9b	blk_unprep_request
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfca3eb87	blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xfcb4d904	inet_csk_reqsk_queue_prune
+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 0xfd6eb3bb	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xfd7100d2	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c	crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe4a4b78	inet_twsk_put
+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 0xfeaef59d	crypto_larval_kill
+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 0xff249a21	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xff3f3aad	console_drivers
+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 0xffbf7c34	tps6586x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xffc186b3	ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xffd6b775	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xffeecc36	__pci_complete_power_transition
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/i386/generic-pae
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/generic-pae
@@ -0,0 +1,12645 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x50016f69	kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x88151ea0	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 0x863e1c94	suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x220f3a5d	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 0x2b81d731	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 0x0f1e4824	ibnl_add_client
+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 0xb7a8da05	ibnl_put_attr
+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 0xd6228c2b	ibnl_put_msg
+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 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 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 0x30b6c29e	rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4c696348	rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50b0254b	rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x513b1657	rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a3fa2d8	rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x755f2c96	rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87de1b8a	rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x886c857d	rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a54f0a6	rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x942a1625	rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99b27271	rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9b169f61	rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d221941	rdma_set_reuseaddr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xca63ed40	rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2c76ca0	rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe8b06c76	rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe95c3d9c	rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf585360c	rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9e1528b	rdma_listen
+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 0x09029e4c	capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x252658a1	detach_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 0x2ed9ca81	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4	capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x375a3fbe	capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x39a016fa	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 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 0x8f699913	capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9afd2f9f	capi20_register
+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 0xaf9c2f73	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 0xbc0207a8	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128	cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc96d421a	capi_ctr_ready
+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 0xfbbf9b11	capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x043b23a4	b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0d66ae86	avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x21be3492	b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x330079a1	b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x45668327	b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4da64a9c	b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x590c91d6	b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5b6158e6	b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x65f911c4	b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x74f45e52	b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x849526e0	avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690	b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8fd9e6b2	b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x98c54df1	b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xafcd07a1	b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376	b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf626077a	b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4	b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x479b74b9	b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x56f79d83	b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x77be9941	b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7c525bc9	t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa0d948bd	b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa126f333	b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa360d25a	b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbfd919c2	b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd3ff10a0	b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea	b1dma_interrupt
+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 0x4275cd5c	mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x649bcb44	mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6b113990	mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb7f1a1bb	mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x10488095	mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf89da6a7	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 0xfa41652d	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 0x07272ca9	isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x16d0abef	isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a	isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x67c9ddf4	isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd4dc239d	isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf94dfec3	isac_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x484624ec	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xb85860c1	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xec814de2	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 0x0661a4b7	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06753593	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x10dc7196	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x154f672c	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2148c157	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x261075f6	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b98568a	mISDN_unregister_device
+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 0x594bb5e2	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5d05faf8	get_next_dframe
+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 0x6d5695ae	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6d962d24	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f10eb57	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7f15acff	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x831ef721	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x87eff706	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x92cd67c4	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e1b2d46	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa9d8081b	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xacfa8108	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xafd6dbd6	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6db5390	mISDN_freedchannel
+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 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 0x01fd2649	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x29357372	dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0xc5e2f71b	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0xe917ced3	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 0xc0716ade	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 0x14f2980a	flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x171ac2c0	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ab4d3d1	flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b9dc9a1	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3ced287a	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x546bbb53	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5bf27261	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x66457360	flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6655d462	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6f4bdcd8	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x829428fb	flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8338010d	flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x88a35c42	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c71dfcd	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xadddc973	flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb68a32e0	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe2f0b3dd	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8030cae	flexcop_i2c_request
+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 0x5728448f	dvb_net_init
+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 0xc8f91907	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 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 0x1f7cb842	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2c3d08b3	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x825edec8	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x836f5bc5	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xda26d91f	dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe8775d38	dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf3943f25	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 0x92dc502e	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 0x03b9a4e8	dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x34bb2752	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4a4a7c29	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5f4ecd2b	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6a1d3299	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa4f3c1b8	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xac509aae	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 0xbfe2548a	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf708cd92	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfa808fdd	dibusb_pid_filter_ctrl
+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 0x2cdea06d	cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x3da7eec6	cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x790b8c8f	cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc115c51e	cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xd250f0b5	cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf99f2c59	cx18_release_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 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 0xaca21b29	videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xdff3c103	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 0x1a9d97aa	arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b0f45b3	arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1cf3bd49	alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2785a968	arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2eed6d97	arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x35fa3452	arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x445c540d	arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a	arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7df5f196	arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb3852b8b	arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe3886c24	arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0	arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4055af79	com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x66d83149	com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf39d23ec	com20020_found
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac	ei_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x21e363c9	NS8390_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x228ae912	ei_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3440697d	ei_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x482165b1	__alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6b25ff4c	ei_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6e342443	ei_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa5735f02	ei_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcd729fa5	ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd130950e	ei_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xda30d279	ei_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x1038a925	eip_start_xmit
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x136fe6b8	eip_get_stats
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x23bcf502	NS8390p_init
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x35c9c776	eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x686b88c1	eip_open
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x689542ec	eip_close
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x7f61535c	__alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7	eip_interrupt
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xaf6baca7	eip_tx_timeout
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbc980268	eip_poll
+EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xdb7c8bcc	eip_netdev_ops
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2 0xc7d59ff0	bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnx2x/bnx2x 0x8bed8d2b	bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174	cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x8ba303b3	cnic_register_driver
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0a9ce885	t3_l2e_free
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0ff8f649	cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x29d54023	dev2t3cdev
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x30641eb8	t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x43d77b8c	cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4b321f9b	cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6dcf3d82	cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x79e1eecd	cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7d944f5f	cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa4eea704	cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc4d4c702	cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc7622624	t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd8b838b1	cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe2d47963	cxgb3_register_client
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe3403051	t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xebd8a72f	t3_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x26a8c941	cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c3719fd	cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x42e1e341	cxgb4_create_server
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b78aa04	cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5ce0ebea	cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x680d264f	cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6de7eee0	cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x94a45d63	cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1b3c061	cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa4a36736	cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb5a2c8a1	cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd4f18f3	cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc5ca071f	cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36	cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd01665b3	cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd34173ba	cxgb4_register_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 0xf35a3d49	cxgb4_port_viid
+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 0x540a239c	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x69588c00	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x89822cf2	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9f5de3ec	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd0853fbe	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0f3ba970	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3162a62a	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x44d2249c	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x65d06377	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x66676472	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7ef7e2b7	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82416d06	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x855e9034	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd6d224fe	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdf19a12f	sirdev_raw_write
+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 0x2a0d67e0	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xee123686	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x16c703ea	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xb4f812b4	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xb6132b08	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xa6180afc	sungem_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1c03ef7b	tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x40846598	tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4f01dafe	tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x899724ae	tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbcd23793	tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc176abdc	tmsdev_term
+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 0x17580b75	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x215cd7b1	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6514cf7c	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6acca419	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xad7d3d23	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc91450a6	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xce1be591	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xce3ac585	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf836733c	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfd0f22af	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xff6d4c1e	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988	z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x15d938bb	z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0x223eb1f2	z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0x50bfc44d	z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0x51e742be	z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29	z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x69d1c9bf	z8530_channel_load
+EXPORT_SYMBOL drivers/net/wan/z85230 0x7427b236	z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x7cc4d802	z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0x92012308	z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa8a65fcb	z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa8f84af2	z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0xcd8e33ee	z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xd00f3a92	z8530_null_rx
+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 0xe50a7f40	z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0xed6b6084	z8530_sync_open
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x5a850776	i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x7a7ec0e1	reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xa32d1ffd	init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xc00ce90b	stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f88b1f3	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 0x519dd862	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x70c2e4d2	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x900d9db9	ath_printk
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9782289b	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa21fd442	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa50acbe2	ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbaeca972	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbd344957	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd7b853ac	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x07b1bef8	ath9k_cmn_update_txpow
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1743fef3	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3dc69308	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 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_common 0xf73b15dd	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x069fcfa7	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x073752f3	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x077000d4	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09ca9a45	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d4f2b8	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a7f165e	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e81fe5a	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x106548b8	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10fcb558	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1240b2c6	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13984014	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13fa923d	ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ca3aade	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23c2875a	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24f40557	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x255f2c36	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x287a3fdc	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28f6f350	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29e3ec87	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e3d9566	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32ed627c	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40e70ba8	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4585e1ae	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45bdf415	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a338b78	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x501045d0	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50238c3b	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x523c063b	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5278e6b2	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x542aebda	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x579a777b	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e3fd91f	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6007b12e	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x604fe623	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60d25cec	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6422620a	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cc4e666	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fffdf2a	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x719ab3d9	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x731337e4	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a7423df	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d662df1	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e76ce23	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e92f08e	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7eaa4899	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80d1a220	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82c97189	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x838c1e1b	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83cfec01	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88427b2a	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89446632	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c32470a	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e754cef	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92b69f64	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9794e6fa	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa13c0ba5	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa543f2f9	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa86b670d	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa37eec2	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab498acf	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac2115bd	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac31efff	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae619989	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafed6990	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb014d2e6	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb04d218a	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1a7050b	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb342e7b0	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb715dd5c	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7217c19	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1570b4	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0e9a20d	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2f81950	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3600f3f	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7daca00	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd4ec6b9	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf3a53d1	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf7229ca	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2ca7d4f	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7eda7a2	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe93ea4fe	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea06439a	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef367a6b	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf62116e6	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf81ad8ff	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf86a637e	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9615192	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9e0e41f	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x371e8a1c	atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xa86b0757	init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xe56177d7	stop_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 0x414a6789	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x45d959e1	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b2e3b2c	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b58e725	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x82c9f06b	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x97ec9ea1	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa6f00b1c	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb2146535	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbb45609d	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc09d68e1	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc3cd81c8	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd382678e	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdbfa93bb	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf62a1ffe	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11f51ee0	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1aff6409	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1cc73e5f	hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x36595375	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a53a100	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3aa14146	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x698a51c8	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x779cc3f6	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90a018aa	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9376901e	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97f21b60	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x986cb43f	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb03098bd	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb085ff9b	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0	hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3d61ead	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b	hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2a7d321	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xca9f7033	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc385bb4	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdd57b76d	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe39a248c	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe3f06d46	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe83afc84	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb884348	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf77bbf5c	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf9e46f81	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x081de5e4	libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ba209d5	libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x287f5036	libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2cc996a5	libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ac59ce5	libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x406bf05b	libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4231d19f	libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4efd022f	libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x51d17713	libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80a31635	libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8c20b0f5	free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x94b8608f	libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa614ff29	libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa98d5129	libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbf2eea6f	alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2a2ba2b	libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd56d4d36	libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xde17ba5c	libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe641e24d	libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xee197aef	libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf64accd5	libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x078ef4a2	iwl_legacy_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0a51beeb	iwl_legacy_usecs_to_beacons
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0c468a90	iwl_legacy_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x0ed982f5	iwl_legacy_tx_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x121a2e6c	iwl_legacy_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x12384954	iwl_legacy_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x12857db6	iwl_legacy_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1382f2e9	iwl_legacy_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x178763b3	iwl_legacy_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x19954d0c	iwl_legacy_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x1aa3b904	iwl_legacy_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x20b6679f	iwl_legacy_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x22e83fb3	iwl_legacy_chswitch_done
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x27fcab73	iwl_legacy_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x28c8ee4a	iwl_legacy_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x291b3c30	iwl_legacy_mac_change_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2b219084	iwl_legacy_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x2e8a48eb	iwl_legacy_pm_ops
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3117ce61	iwl_legacy_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x31870932	iwl_legacy_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x323529dc	iwl_legacy_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3644da1d	iwl_legacy_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x397907bc	iwl_legacy_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x3fc03457	iwl_legacy_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x41cbbe15	iwl_legacy_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44353ba5	iwl_legacy_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x44929ba4	iwl_legacy_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48119d7d	iwl_legacy_add_beacon_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x48683cbe	iwl_legacy_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x4985241b	iwl_legacy_set_rate
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x514941f6	iwl_legacy_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x52b376fb	iwl_legacy_cancel_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x5abd9d64	iwl_legacy_send_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6079196a	iwl_legacy_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x613f58fd	iwl_legacy_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x61580610	iwl_legacy_leds_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x61f56323	iwl_legacy_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x656f67e0	iwlegacy_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6c401a70	iwl_legacy_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e63a955	iwl_legacy_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x6e86faf8	iwl_legacy_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x718d3e80	iwl_legacy_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x750f5391	iwl_legacy_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x7916933a	iwl_legacy_clear_ucode_stations
+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 0x834a6847	iwl_legacy_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x86f960d3	iwl_legacy_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8a15a592	iwl_legacy_isr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8af9109f	iwl_legacy_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8b10d606	iwl_legacy_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d1d9da0	iwl_legacy_setup_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d4f67a3	iwl_legacy_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x8d5e4677	iwl_legacy_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9053db6d	iwl_legacy_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x921d0c53	iwl_legacy_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x98ebc446	iwl_legacy_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0x9a6f0904	iwl_legacy_mac_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa0492053	iwl_legacy_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa0bd9fc9	iwl_legacy_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa3a1e622	iwl_legacy_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa592961c	iwl_legacy_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa5ddd039	iwl_legacy_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa618c0c2	iwl_legacy_bg_watchdog
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xa8c09936	iwl_legacy_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaaa8bec9	iwl_legacy_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xaad3bb81	iwl_legacy_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabe48768	iwl_legacy_get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xabefef08	iwl_legacy_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xae019207	iwlegacy_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb0036231	iwl_legacy_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb0cc6525	iwl_legacy_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb32eba10	iwl_legacy_set_flags_for_band
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb5036e99	iwl_legacy_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xb91ebe2b	iwl_legacy_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbb86ad2f	iwl_legacy_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xbdceaaae	iwl_legacy_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc0fb6344	iwl_legacy_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc12ba851	iwl_legacy_tx_cmd_protection
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc4342f23	iwl_legacy_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xc721f707	iwl_legacy_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xcd2ce4c1	iwl_legacy_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd250a17f	iwl_legacy_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd4c6b816	iwl_legacy_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xd720126b	iwl_legacy_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdb6cc69f	iwl_legacy_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xdea2aec9	iwl_legacy_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe8b27ad4	iwl_legacy_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xe9c3c3d3	iwl_legacy_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeaf343d3	iwl_legacy_cmd_queue_unmap
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xeeca5d8d	iwl_legacy_get_single_channel_number
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xf3bcabe1	iwl_legacy_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwl-legacy 0xfe57d1e4	iwl_legacy_mac_conf_tx
+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 0x0087e4a7	orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1be279ba	orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e5bdcaf	orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2000588b	orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2a145ea6	orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2fb429eb	alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5feeecbf	orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x620ccf50	orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a7cfaac	orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6cb9bac2	free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x797c93f6	__orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4	hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa48479d1	orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa5039371	__orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb366c195	orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb978556e	orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd819b955	orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca	orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x07265477	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0941358b	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0c92e878	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x124f20db	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x13f5a209	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1760fe23	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17780bf1	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20017ccc	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f604b58	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32a9681c	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3470995a	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4f41609a	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51e94287	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x598d7042	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63eddfb7	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x697404dd	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x799033d2	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7f927f2a	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x80d8e0ae	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x83370afa	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8b93f62f	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c803813	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ebeb19d	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x911f794f	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99d728cb	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ba45705	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d36a0e9	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa1ca4b3a	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa6e0178	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac491148	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb030dd65	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 0xbdc70dc0	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe4bd6e5	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbec4aa42	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc2e9ddd	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd45d8797	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd4ad3655	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeb9b073a	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf33897d3	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6e9c42f	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf6f7de2a	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xffe3f115	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x122da239	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1dd6d17c	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1f1b467c	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3686a339	rtl_pci_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a0ee221	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3bba787c	rtl_efuse_shadow_map_update
+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 0x602b2ea5	rtl_pci_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x61fdf5a1	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6917065d	efuse_read_1byte
+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 0x869d113c	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x86f49915	rtl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8ea2928f	rtl_cam_mark_invalid
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb16d8dc1	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb1f071ef	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb80a39e3	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd4f6a7d5	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeff2603e	rtl_ps_disable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf3bf630f	rtl_cam_get_free_entry
+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 0x08315266	pcmcia_get_mac_from_cis
+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_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 0x4f2f3c82	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x9a9592c4	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0xcb630aa9	pps_unregister_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 0x4fd2d874	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x595708bd	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6e712a9d	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9a2a139c	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc3ed59b6	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc94cc815	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcabc9958	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xda1d4ac0	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe83ed8d4	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00271e22	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x009bdc49	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0120dfea	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03890bd0	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04e6a2ba	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b2b4a65	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c178905	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13f3f808	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a9fbedb	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ca9cd73	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f22630a	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2543e2a1	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26da240c	fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b41bb09	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c52ade4	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55ab11df	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c241652	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d1739ae	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75898de7	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76cc39c6	fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cb68d9d	fc_lport_notifier_head
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83ab65ee	libfc_vport_create
+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 0xa04cd19a	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa08cedbf	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa16d3ea8	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7c1f678	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9066721	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac3e3d02	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaef62475	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1ec219b	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb84f69e3	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdc781c9	fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf8c59ed	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc000908b	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52ae298	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd417696	fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd0882c66	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdcb68aaf	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xde03081a	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe065a7b7	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe802a251	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea186a8c	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xee0c7f47	fc_elsct_send
+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/libfc/libfc 0xff312c9e	fc_vport_id_lookup
+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 0x0637a8b4	ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11927282	ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11ea221f	ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12f56d30	ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x172f9324	ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x197a2cef	ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1bd3fb59	ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f286144	ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x225f8e23	ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x231193d2	notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27bde0ef	ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29e5c426	Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29e85f24	ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c3c162a	ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d	ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e92fc35	Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50b5cf43	ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x529f4044	Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6125c3fd	ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6525b266	SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6957e2f8	ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5	ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d8106d8	ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x710cefd0	ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76497f40	ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e10cf30	ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x834f9a54	ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x85b8c2ef	ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d1be912	IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d736635	DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9037f150	HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91f4e862	ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92a6f770	ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95e40251	ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e1eb9f7	ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa254a028	ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa452b9bc	ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa544c6e0	ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8a99a41	ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8eaf73b	ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa7e57bb	ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2d24ed3	DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb81fdd28	ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbab165c8	ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2e8f063	ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e	ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4c4d35d	ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7326882	ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc967d749	ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca916c96	ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc5b048e	ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1629391	ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd8b256bc	ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7a8bfac	ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0273638	ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfb743e1c	ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff8fa731	ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722	vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x03b27f49	vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c	vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0bc6729c	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 0x226c3df0	vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x260e6b4c	vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2b336b61	vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x34270182	vme_slot_get
+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 0x45e99d27	vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13	vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x533178ee	vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x5b828e90	vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f	vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6ec42e5c	vme_lm_request
+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 0x9aeb07e8	vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xad39e861	vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0xb3b26dfa	vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc1a90e31	vme_bus_type
+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 0xcd836167	vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcfeed376	vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5	vme_master_write
+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 0xeca0904a	vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc	vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfd16e3ab	vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfec88e39	vme_unregister_bridge
+EXPORT_SYMBOL drivers/target/target_core_mod 0x01f5eb2c	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18	transport_set_vpd_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x03171f91	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x03b64ee1	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x080c80c7	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0a638643	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1393232a	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0x19a62871	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x26f7c57f	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x271e5a9b	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2cb86e14	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5f3810	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x31776f0d	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3ac7ee37	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x467a2625	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4dac0e8e	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4f2efec0	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x57662e7c	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5eb27f8e	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x605b730f	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x64f74998	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x685aac76	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x691aa9a3	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7123bcfe	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x71bc1ee3	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x75fe3466	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7686f712	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x76a1b571	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x786e3ad0	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x78967f48	sas_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 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ab2e3bf	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8abc08c1	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0x90d7c145	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0x93398b38	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9e1ed74b	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9ec8e627	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9fa220cc	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa3f745c5	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad0d7f4a	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb0d19e57	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb13ea622	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb25362d3	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb3c4c0d1	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb86dc70a	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb9086dc7	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc7317cf0	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0xca965416	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcc7fa131	transport_add_device_to_core_hba
+EXPORT_SYMBOL drivers/target/target_core_mod 0xcc8e5fb6	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd14b5d7a	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd2d01a16	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd674d781	transport_send_check_condition_and_sense
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdc9cc46e	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe680df75	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xed03a558	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0xed824dce	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7	transport_set_vpd_proto_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf11f1426	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf1d29f8a	iscsi_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf326120e	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf6af5ee8	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf6ff6ccf	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xf79d3fab	sas_get_fabric_proto_ident
+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 0x12129923	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x161317b1	usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e05d2fc	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x52f7bf57	usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x55b53ba6	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x66a1f013	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67d6ef0a	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x68a37928	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x72ca400b	usb_wwan_ioctl
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90732fae	usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3c3ec2f	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xab0983e5	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xadf70d51	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4b6cc2f	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf61a4064	usb_wwan_dtr_rts
+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 0x38f990c9	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 0xad86b463	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 0x18e54449	ore_truncate
+EXPORT_SYMBOL fs/exofs/libore 0x28806871	ore_verify_layout
+EXPORT_SYMBOL fs/exofs/libore 0x2c9b63b8	ore_create
+EXPORT_SYMBOL fs/exofs/libore 0x80cc04f5	ore_get_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x84f32f26	ore_put_io_state
+EXPORT_SYMBOL fs/exofs/libore 0x8bb407ea	ore_check_io
+EXPORT_SYMBOL fs/exofs/libore 0x92ba0b65	ore_get_rw_state
+EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634	g_attr_logical_length
+EXPORT_SYMBOL fs/exofs/libore 0xb35af62e	ore_write
+EXPORT_SYMBOL fs/exofs/libore 0xbc8cb794	ore_read
+EXPORT_SYMBOL fs/exofs/libore 0xc802cf79	ore_remove
+EXPORT_SYMBOL fs/exofs/libore 0xc94e1538	extract_attr_from_ios
+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 0x6575c890	make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xbf7c120f	destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x06628923	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x0a659f53	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x0b54878d	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x1041ac60	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x173b56e0	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1d2ee56b	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x1eff6e77	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x1f9a85c1	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x20140b87	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0x2a840ddb	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x316c8ac2	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3abfcd63	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x3d0b4de7	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x40d3e4df	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x481c244c	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0x51c66dcc	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x561e2fac	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x5bbf65f0	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x6f09c3d9	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x70c630d6	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x7406a689	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x8301594e	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x8439d106	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x848cc6cd	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x8a7b43f9	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0x9105f269	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x987bb186	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x990c3c4a	p9_client_open
+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 0xa64041b7	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0xa97da2ff	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xb4a67b30	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xb65841d3	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xbc1efb17	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xbc8e6698	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0xdd299cb7	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0xdec112bc	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xe40c3f1e	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf7230809	p9_client_link
+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 0x11152b3d	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x57440309	alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5e891da2	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xcd7626ca	aarp_send_ddp
+EXPORT_SYMBOL net/atm/atm 0x0cda42d8	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x50c8c584	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x532069b9	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0x6694471e	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0x6a740e16	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x735eef38	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x846be3b3	register_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 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb524b154	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xba958c66	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xd4f1a810	atm_charge
+EXPORT_SYMBOL net/atm/atm 0xf3cd9394	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf618ee8a	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0xf9f33d93	vcc_release_async
+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 0x5a90edcc	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x82a37dda	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x9ca40ca8	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xad599bd1	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xbac72eb2	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xc9a501d4	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xd71fd7a2	ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xe995c5aa	ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xec450e46	ax25_listen_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x00140370	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x04bfd90f	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b5216e6	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x27b97b21	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2beaad9e	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x315e998d	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x31c39c88	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x361c6deb	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cf264f0	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4678dbf4	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4dc2ba3b	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e676790	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f8eec00	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ea715d9	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x635dbc05	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x64cea1e9	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d5c60dd	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f80e67c	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x719b16e4	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x73982606	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7748bdf3	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ea841f4	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8dae1a55	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x99841141	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb51b2baa	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbc8ae9a	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbed96dd6	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc59bf1ca	hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8321ecd	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8a3f440	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd0c38ddc	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2d1f7e9	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5bfa506	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8330169	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2bf89b0	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8d64dc6	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xec9f3105	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xed6157fb	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf08ec0db	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf33a4e94	bt_sock_poll
+EXPORT_SYMBOL net/bridge/bridge 0x5f469d45	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x10209b34	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x71b31262	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc75600a6	ebt_unregister_table
+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 0x4c4c342d	caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x504da5e8	cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x54691e89	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0x5807d88d	caif_free_client
+EXPORT_SYMBOL net/caif/caif 0x63e9812a	cfcnfg_set_phy_state
+EXPORT_SYMBOL net/caif/caif 0x9177b131	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xa9fbabdd	caif_disconnect_client
+EXPORT_SYMBOL net/can/can 0x114e9ee7	can_proto_register
+EXPORT_SYMBOL net/can/can 0x11a0862b	can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x9bc92549	can_send
+EXPORT_SYMBOL net/can/can 0x9ee62132	can_rx_register
+EXPORT_SYMBOL net/can/can 0xbd178b9e	can_ioctl
+EXPORT_SYMBOL net/can/can 0xc4d9173e	can_rx_unregister
+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 0x197effcb	ceph_osdc_release_request
+EXPORT_SYMBOL net/ceph/libceph 0x2122d841	ceph_compare_options
+EXPORT_SYMBOL net/ceph/libceph 0x230ea9bd	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x259dd5a5	ceph_con_keepalive
+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 0x37cc042f	ceph_con_close
+EXPORT_SYMBOL net/ceph/libceph 0x3abec91f	ceph_pr_addr
+EXPORT_SYMBOL net/ceph/libceph 0x3e1f462a	ceph_destroy_options
+EXPORT_SYMBOL net/ceph/libceph 0x3ef976b1	ceph_msg_new
+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 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 0x836c70fc	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x8d884dd5	__ceph_open_session
+EXPORT_SYMBOL net/ceph/libceph 0x9b97a2cd	ceph_monc_create_snapid
+EXPORT_SYMBOL net/ceph/libceph 0x9d531b34	ceph_messenger_create
+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 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 0xc76b35de	ceph_messenger_destroy
+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 0xe137b0a8	ceph_osdc_cancel_event
+EXPORT_SYMBOL net/ceph/libceph 0xe2462f12	ceph_osdc_create_event
+EXPORT_SYMBOL net/ceph/libceph 0xe3514bfd	ceph_zero_page_vector_range
+EXPORT_SYMBOL net/ceph/libceph 0xf1d4753f	ceph_con_open
+EXPORT_SYMBOL net/ceph/libceph 0xf2ace98f	ceph_alloc_page_vector
+EXPORT_SYMBOL net/ceph/libceph 0xf4858c94	ceph_con_init
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x30d3b4ff	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3178b5fa	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f873f7c	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x57f6f3ab	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7a96f6b0	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7eafb77c	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8d3db524	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8f188f39	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x96e6a6c6	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9d73600e	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xad02956f	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbe3daf54	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc39ba0d3	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0d41ef4d	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5004c9a8	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9552f46e	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x098d4b2a	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x119cc3a5	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1e3f95b2	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3d6deef7	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x53069842	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7d6fd15f	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb00b4953	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xba774159	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe87ea423	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xffd92c00	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x8bc8842d	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xca6dff8c	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x795f0869	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7aa4a24f	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9b09750b	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb0658176	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x382a4552	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xf46da673	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x069213b6	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa9e881cf	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0bb504c8	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x321e7533	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x351f21e2	ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4a3f7ecc	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5b5dfda4	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9b9b1c8e	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe59bebd9	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfad0f1bd	ircomm_connect_request
+EXPORT_SYMBOL net/irda/irda 0x01a9535d	iriap_open
+EXPORT_SYMBOL net/irda/irda 0x01dbeb0e	irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x060edf72	irda_notify_init
+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 0x18b71a59	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x19f5339d	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23a2eee7	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x25fc171f	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x28a1e5b1	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x2c71b6f9	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x3540b45f	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x359de411	irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x38b227f1	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6	irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x3b9bdefe	irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x3f0ab861	irlmp_connect_response
+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 0x5a92b26d	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x5d1a1c04	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x5e5e7e08	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x62acf28c	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x648c7478	hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x686a86f4	irlmp_open_lsap
+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 0x763e54a4	irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728	irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7b3a115b	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x7d54adaf	irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x7da2a629	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x7ff509a2	hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0x817d3d57	irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x8cd99be0	hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x936320e1	irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x95265aca	irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x989efebf	irttp_connect_request
+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 0xa51f2707	irttp_udata_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 0xc0bee29c	hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae	irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xdfb97b0e	iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2	irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xeddcfdcf	irlap_open
+EXPORT_SYMBOL net/irda/irda 0xf1603819	iriap_close
+EXPORT_SYMBOL net/irda/irda 0xf4e2f722	irttp_data_request
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xab76fadf	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x1b62284f	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x2304cec2	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x5b165fea	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xb2e03db5	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xbc591c92	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xe228d18a	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xf2a90966	lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xf68edfe1	lapb_setparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x0052e319	ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x03b9c223	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x06c54590	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x0bdfaa5f	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0x107ab520	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x107f5510	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x10a28382	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1472d62c	ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x17217a33	ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x178f4954	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c9992ab	ieee80211_get_operstate
+EXPORT_SYMBOL net/mac80211/mac80211 0x22812e83	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x26bb9edf	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x28b4b001	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x2c24835a	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ce8fbe7	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x2f56d63c	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x3e55ad4a	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x43700267	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x49093373	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x4c596985	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fb39646	ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x5b03dc5f	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x5bb0983e	wiphy_to_ieee80211_hw
+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 0x5ec91459	ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x6233939f	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x628d2872	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x63caa554	ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x647772e8	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x6503ef71	ieee80211_sta_eosp_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x667e4c4c	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x76254d59	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x7a7a27ec	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x8b6b57ce	ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x8bccd9dc	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0x8e41e427	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x980586f4	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0d63af2	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa61512e7	ieee80211_queue_delayed_work
+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 0xaefa4dcc	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xbdc9f54a	ieee80211_nullfunc_get
+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 0xc948775b	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0xd354e0a9	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xd3584e52	ieee80211_restart_hw
+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 0xe0b7d213	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7a0eb02	ieee80211_report_low_ack
+EXPORT_SYMBOL net/mac80211/mac80211 0xe84f952c	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xf27750c7	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xf4c62910	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5ef8d3d	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2267870d	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2457e879	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x28042cc0	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4713e5d1	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x540a18c1	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x790be123	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fc42137	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcea5255d	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd6f59cf5	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xea2357f4	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xeda73fc5	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf0f1a67e	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfa416af7	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfdc646d8	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x31b3c0a8	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x78f94297	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xad5caed9	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xeac15db3	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x1c50362a	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x318949d3	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x320dc8d2	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x61176acf	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6389f661	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x641caede	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x843b7281	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x8a7a8f1c	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xceecef09	xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xe7928d55	xt_unregister_match
+EXPORT_SYMBOL net/nfc/nci/nci 0xb3bdd999	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xb46ea839	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xe98f5866	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xe9bbd002	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nci/nci 0xf719ee13	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x3b603f76	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x3faaa37e	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0x41c56c1e	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xd4ab79ec	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0xd8d298c1	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0xdb3d8185	nfc_targets_found
+EXPORT_SYMBOL net/nfc/nfc 0xf80a8307	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xfa7c8c2f	nfc_alloc_skb
+EXPORT_SYMBOL net/phonet/phonet 0x2564f48b	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x4bac964e	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x80c2d9df	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x8cdfd813	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xab146787	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xb46d2769	phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xd8e1429b	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xf4158d14	phonet_proto_unregister
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0154b22f	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0809088f	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0bfbb9f0	key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ce181e0	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x560b5e42	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x607d32ee	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b771347	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa77003bb	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xac423637	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc51c581d	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc5fc8632	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcea6f32d	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd43736e9	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddb4a0d1	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe99e2618	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x8dedb0ee	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xe2013ef9	register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x254bf195	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x5c21f19a	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x05404b4a	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x0599a518	cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x0791db75	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0bc4c0d2	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19cdcfa0	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x33425459	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x33dfe4fa	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x34b28aca	cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x3861f483	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x408a37ae	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x455ac236	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x457f6093	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x477407fe	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x50f02286	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x56f4e475	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x5fcd5d71	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x6223dedf	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x67dda7ee	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ae1fe43	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x6fa80c21	cfg80211_testmode_reply
+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 0x84348ffe	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x89649932	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x92929743	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x993800dd	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x9c69d84e	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x9fc0c1c4	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa1e3656a	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xa2cfba70	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0xa89a7ced	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xab111dbe	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xacb0d5c8	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xae3394ec	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xaf950a6a	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd0efd3e	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xbe45a133	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf942823	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xc5277e5c	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc6f43c3e	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xc997f0a5	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xca301e61	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xcbf3692c	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xd468d97d	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xd541d7b5	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xd61a1898	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7933795	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8225a05	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xe2129ac9	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xe35b2445	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xe4a50b86	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xe96d0a96	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xee7dcc5d	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xf3484300	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf3e5af13	cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xfa338ec5	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xfc1cb005	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x0e903c01	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x63995d71	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8a1a23f1	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x9b1c1b6c	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xdf16e187	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xf68ecd2b	lib80211_crypt_info_free
+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 0x00528f66	rtnetlink_put_metrics
+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 0x00e8097b	csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00f42699	files_lglock_global_unlock
+EXPORT_SYMBOL vmlinux 0x0109ad1d	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL vmlinux 0x0124684a	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x012f55c9	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x014bdbb0	locks_delete_block
+EXPORT_SYMBOL vmlinux 0x016b3184	__devm_release_region
+EXPORT_SYMBOL vmlinux 0x01863208	security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019ec584	tcp_md5_hash_header
+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 0x0251daa8	fget_raw
+EXPORT_SYMBOL vmlinux 0x02649054	security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0287d84e	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x028dee69	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x029444f0	native_read_tsc
+EXPORT_SYMBOL vmlinux 0x0297d172	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x02a18c74	nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02af9934	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x02b3d0d5	x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0x02b78135	scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x02d81845	audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02eb77a1	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02f12c71	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x02f36aad	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x03267cfa	skb_split
+EXPORT_SYMBOL vmlinux 0x0334da4e	scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033c2b4e	proto_register
+EXPORT_SYMBOL vmlinux 0x03452405	mnt_set_expiry
+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 0x0388a3a4	skb_put
+EXPORT_SYMBOL vmlinux 0x03930bb0	security_inode_permission
+EXPORT_SYMBOL vmlinux 0x039855b6	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x03b19d36	lease_modify
+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 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0424b89c	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x042cc470	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x0431c227	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x04557b16	intel_gmch_probe
+EXPORT_SYMBOL vmlinux 0x04568a2d	neigh_parms_alloc
+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 0x0495e3a1	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x04d8c750	release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+EXPORT_SYMBOL vmlinux 0x0513d699	__rta_fill
+EXPORT_SYMBOL vmlinux 0x052175ca	locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7	percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x05277791	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x055e2b2d	del_gendisk
+EXPORT_SYMBOL vmlinux 0x057545c8	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x05936d9e	napi_complete
+EXPORT_SYMBOL vmlinux 0x05946e8d	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x059509f2	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x0596f5e3	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x05d053e0	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x05ff0326	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x0617df20	tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x063580ed	bdevname
+EXPORT_SYMBOL vmlinux 0x06468ccc	pci_enable_device
+EXPORT_SYMBOL vmlinux 0x0679586c	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06865f0f	pci_disable_ltr
+EXPORT_SYMBOL vmlinux 0x068c7263	ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06b5e2bd	processors
+EXPORT_SYMBOL vmlinux 0x06b7bb20	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x06cd430a	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x06d2f086	dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x06d883a8	pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x06f4bf00	seq_escape
+EXPORT_SYMBOL vmlinux 0x06f6feb0	phy_detach
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x071ddcb4	pid_task
+EXPORT_SYMBOL vmlinux 0x0727c4f3	iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12	generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x075691a0	neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x07608604	acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x076ebea8	pv_lock_ops
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+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 0x07ecf70e	journal_restart
+EXPORT_SYMBOL vmlinux 0x07f65b37	mb_cache_create
+EXPORT_SYMBOL vmlinux 0x081d0655	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x08283966	flush_old_exec
+EXPORT_SYMBOL vmlinux 0x082c3213	pci_root_buses
+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 0x0897287b	acpi_disable_all_gpes
+EXPORT_SYMBOL vmlinux 0x08bf826c	_raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x08c08093	sock_init_data
+EXPORT_SYMBOL vmlinux 0x08c215d6	mmc_calc_max_discard
+EXPORT_SYMBOL vmlinux 0x0922def5	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x0924ca62	mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x0933aae1	efi_enabled
+EXPORT_SYMBOL vmlinux 0x09389545	netdev_err
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x0953cfd8	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x095e7891	drop_super
+EXPORT_SYMBOL vmlinux 0x0968c38d	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09ae41c4	i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x09b49fcb	__ht_create_irq
+EXPORT_SYMBOL vmlinux 0x09b6c1e5	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0x09be8691	skb_unlink
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9	in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09d4e2be	tcp_check_req
+EXPORT_SYMBOL vmlinux 0x09dbfe57	xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x09eb1bb1	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x09fc13b0	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x0a08b7ba	fasync_helper
+EXPORT_SYMBOL vmlinux 0x0a094649	skb_pull
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2ac101	genphy_resume
+EXPORT_SYMBOL vmlinux 0x0a2e1adb	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a37f021	pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a51802e	elevator_change
+EXPORT_SYMBOL vmlinux 0x0a53b3be	generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0a617a45	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x0a686ad1	__getblk
+EXPORT_SYMBOL vmlinux 0x0a8a6126	netdev_update_features
+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 0x0ae551f8	inet_sk_rebuild_header
+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 0x0b273864	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x0b3420cd	security_old_inode_init_security
+EXPORT_SYMBOL vmlinux 0x0b47cc19	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL vmlinux 0x0b6f3248	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x0b7086d9	param_get_short
+EXPORT_SYMBOL vmlinux 0x0b742fd7	simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7e4acc	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x0bc23954	jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x0bc477a2	irq_set_irq_type
+EXPORT_SYMBOL vmlinux 0x0bcad541	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x0bd39349	tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x0c119645	pci_disable_obff
+EXPORT_SYMBOL vmlinux 0x0c1bdece	bmap
+EXPORT_SYMBOL vmlinux 0x0c2a11e4	free_task
+EXPORT_SYMBOL vmlinux 0x0c2cf201	d_instantiate
+EXPORT_SYMBOL vmlinux 0x0c433a7c	__inet6_lookup_established
+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 0x0ca7b7a8	acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b	utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cb20d35	dma_find_channel
+EXPORT_SYMBOL vmlinux 0x0cb954a3	__find_get_block
+EXPORT_SYMBOL vmlinux 0x0ce6a75b	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x0d1aedb2	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x0d2808e8	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x0d3413b2	skb_copy
+EXPORT_SYMBOL vmlinux 0x0d3dda14	acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d480b2a	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x0d4d8598	agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d586db6	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x0d5b786c	journal_destroy
+EXPORT_SYMBOL vmlinux 0x0d74dfcb	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x0d94f100	eth_header
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dc68111	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x0dd11949	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x0e52592a	panic
+EXPORT_SYMBOL vmlinux 0x0e598f5a	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x0e59fc4e	inet_put_port
+EXPORT_SYMBOL vmlinux 0x0e5df9b8	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0e63c942	lock_may_read
+EXPORT_SYMBOL vmlinux 0x0e79074b	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x0ece85f6	__nla_reserve
+EXPORT_SYMBOL vmlinux 0x0ede2633	mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x0f04526c	con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x0f0ab36d	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x0f17fd49	icmp_send
+EXPORT_SYMBOL vmlinux 0x0f2212a3	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f5ad9ea	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x0f5b41e3	agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x0f747fa0	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x0f7df110	vmtruncate
+EXPORT_SYMBOL vmlinux 0x0faef0ed	__tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fb0e29f	init_timer_key
+EXPORT_SYMBOL vmlinux 0x0fce215b	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x0fd00a68	acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fdc4844	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x0fec8cb1	thaw_bdev
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x1028f1bb	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x102c56de	irq_regs
+EXPORT_SYMBOL vmlinux 0x10378e32	i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x10518554	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x1085b463	load_nls
+EXPORT_SYMBOL vmlinux 0x10901c3a	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x10910c35	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x10958436	genphy_update_link
+EXPORT_SYMBOL vmlinux 0x10ab7e68	down_killable
+EXPORT_SYMBOL vmlinux 0x10b075c2	pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10de19c6	filp_open
+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 0x113f9683	xfrm_state_alloc
+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 0x11877945	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x118f01ea	putname
+EXPORT_SYMBOL vmlinux 0x11935e1b	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x11abc1dc	__bforget
+EXPORT_SYMBOL vmlinux 0x11b7aefe	journal_abort
+EXPORT_SYMBOL vmlinux 0x11c96975	thaw_super
+EXPORT_SYMBOL vmlinux 0x11dba971	unregister_nls
+EXPORT_SYMBOL vmlinux 0x11e2ec12	flex_array_free_parts
+EXPORT_SYMBOL vmlinux 0x11ef0aad	account_page_writeback
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1231cfb1	bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x123fc0ed	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x125226a9	no_llseek
+EXPORT_SYMBOL vmlinux 0x127f1cf8	vfs_lstat
+EXPORT_SYMBOL vmlinux 0x12837fa2	tty_throttle
+EXPORT_SYMBOL vmlinux 0x128a5cf9	complete_all
+EXPORT_SYMBOL vmlinux 0x12950940	blk_init_queue
+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 0x12da5bb2	__kmalloc
+EXPORT_SYMBOL vmlinux 0x12df681e	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x12ecf681	vfs_link
+EXPORT_SYMBOL vmlinux 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x1309236d	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x130a5552	tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x1336571d	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x133dc81b	seq_lseek
+EXPORT_SYMBOL vmlinux 0x134f4242	isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x1362737b	kern_unmount
+EXPORT_SYMBOL vmlinux 0x137c62b7	pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x13a4ea29	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x13acc6cd	padata_alloc_possible
+EXPORT_SYMBOL vmlinux 0x13b65a01	x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13d9c527	scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x13dff834	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f42152	system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x141a054c	agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x141d4335	key_validate
+EXPORT_SYMBOL vmlinux 0x1420b379	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x1430e6e0	unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1449e9a4	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x145a9a89	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x146ddd15	tcp_connect
+EXPORT_SYMBOL vmlinux 0x147ab62f	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x1487b20d	generic_show_options
+EXPORT_SYMBOL vmlinux 0x14d0d91e	get_super
+EXPORT_SYMBOL vmlinux 0x14e7ca7c	alloc_cpu_rmap
+EXPORT_SYMBOL vmlinux 0x14f49e0e	kernel_recvmsg
+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 0x15a5221c	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x15b1a3ef	i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x15ba638c	set_groups
+EXPORT_SYMBOL vmlinux 0x15f17373	bdget_disk
+EXPORT_SYMBOL vmlinux 0x15fc7e04	netdev_alert
+EXPORT_SYMBOL vmlinux 0x160ea4c8	sfi_disabled
+EXPORT_SYMBOL vmlinux 0x161a5803	load_nls_default
+EXPORT_SYMBOL vmlinux 0x162706b2	d_find_alias
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16612e0d	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x167e7f9d	__get_user_1
+EXPORT_SYMBOL vmlinux 0x168f1082	_raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x169fd82e	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16f8a0cd	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x170c25ee	acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170fa97e	phy_find_first
+EXPORT_SYMBOL vmlinux 0x171efc67	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x1725800a	pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x172e3e3c	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x1746aab8	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x1790d76b	_raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x17913f81	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x17b3c78d	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x17c09ec5	dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0	i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x18022a6a	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x180f1fad	padata_alloc
+EXPORT_SYMBOL vmlinux 0x182fafe5	kern_path_create
+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 0x186e9922	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18ac5f27	netdev_warn
+EXPORT_SYMBOL vmlinux 0x18c89b3b	swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x1914164f	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x19206ec1	pci_request_region
+EXPORT_SYMBOL vmlinux 0x194435c7	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x195a3a03	arp_find
+EXPORT_SYMBOL vmlinux 0x1968de37	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x197c45a1	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x19912407	cpu_rmap_update
+EXPORT_SYMBOL vmlinux 0x199e08b8	touch_atime
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a771c9	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x19a9e62b	complete
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19fc804f	nonseekable_open
+EXPORT_SYMBOL vmlinux 0x19ff6712	netif_napi_del
+EXPORT_SYMBOL vmlinux 0x1a1d0b06	eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x1a22cb56	dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x1a313888	uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x1a406002	ps2_end_command
+EXPORT_SYMBOL vmlinux 0x1a45cb6c	acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a4f1b6b	dcb_setapp
+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 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 0x1addced1	journal_force_commit
+EXPORT_SYMBOL vmlinux 0x1ae14ef5	_raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x1af7df6f	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x1b015d25	bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b02f845	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x1b08ae69	kernel_getpeername
+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 0x1ba3a250	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x1bc8585b	idr_remove_all
+EXPORT_SYMBOL vmlinux 0x1bcfdcb5	gnet_stats_copy_basic
+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 0x1c1af916	set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c1f1bfe	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x1c1fd9ed	kmem_cache_free
+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 0x1cb8d1a0	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x1cbc1193	blk_insert_request
+EXPORT_SYMBOL vmlinux 0x1cc5dfea	register_key_type
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1ce94967	f_setown
+EXPORT_SYMBOL vmlinux 0x1cec279a	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x1cfbe12a	tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x1cfdaa97	neigh_destroy
+EXPORT_SYMBOL vmlinux 0x1cfe46c2	nf_log_register
+EXPORT_SYMBOL vmlinux 0x1d20c5b0	scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x1d21d158	gen_pool_add_virt
+EXPORT_SYMBOL vmlinux 0x1d28c23c	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x1d2d2549	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d408c41	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x1d53f080	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x1d7349a7	fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x1d7d04c5	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x1d949c91	writeback_in_progress
+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 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e7718d1	inode_set_bytes
+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 0x1eab3fe1	dev_close
+EXPORT_SYMBOL vmlinux 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ef1f75f	posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x1f2b4d62	vfs_getattr
+EXPORT_SYMBOL vmlinux 0x1f3e5799	sock_queue_rcv_skb
+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 0x1fa1f4fb	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x1fa5c44a	nf_afinfo
+EXPORT_SYMBOL vmlinux 0x1fa66adf	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x1fb604c8	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x1fbdada7	inet_proto_csum_replace4
+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 0x1ffb13be	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a	acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x201eeaa0	dst_cow_metrics_generic
+EXPORT_SYMBOL vmlinux 0x20243ff2	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0x202911ba	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0x20309ecd	mem_cgroup_update_page_stat
+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 0x20bfe34f	dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x20d2392e	generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x20d7bd0b	stop_tty
+EXPORT_SYMBOL vmlinux 0x20eb8884	blk_put_queue
+EXPORT_SYMBOL vmlinux 0x210721a9	sk_filter
+EXPORT_SYMBOL vmlinux 0x21163375	pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x21223140	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x215ebd78	bitrev16
+EXPORT_SYMBOL vmlinux 0x217dda13	flex_array_get
+EXPORT_SYMBOL vmlinux 0x21922b23	mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x2193631b	udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x21960ff9	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x2199337a	down_timeout
+EXPORT_SYMBOL vmlinux 0x21a15ae7	pipe_lock
+EXPORT_SYMBOL vmlinux 0x21e0ea22	acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f0e880	dst_discard
+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 0x2235fd2e	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x225e909e	schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2288378f	system_state
+EXPORT_SYMBOL vmlinux 0x228bdf2a	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22baf9f7	pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x22eb591f	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x22f498e2	follow_up
+EXPORT_SYMBOL vmlinux 0x2309bde0	nf_unregister_hooks
+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 0x23451304	do_sync_read
+EXPORT_SYMBOL vmlinux 0x23532c4d	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x237894c4	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x2384dde5	dquot_release
+EXPORT_SYMBOL vmlinux 0x238f3b69	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x239380dd	set_anon_super
+EXPORT_SYMBOL vmlinux 0x239fc0f0	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23e7e065	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x23f04553	release_pages
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x240b8afb	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x24154822	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x24428be5	strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d864e	locks_remove_posix
+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 0x24928c46	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x2494c8d9	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x24b14687	fsnotify_add_mark
+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 0x252a4b4f	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x2562e77a	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x256c70c0	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x25800346	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25a6ba92	poll_freewait
+EXPORT_SYMBOL vmlinux 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25d7cc65	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x260f4494	dump_write
+EXPORT_SYMBOL vmlinux 0x2625227d	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x263bef0b	fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x264d3c3d	idr_get_next
+EXPORT_SYMBOL vmlinux 0x2685c3d7	__sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x268cc6a2	sys_close
+EXPORT_SYMBOL vmlinux 0x26b7ee3c	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26db270b	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f81442	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x271cba95	acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x27209663	dev_addr_add
+EXPORT_SYMBOL vmlinux 0x272953e2	scsi_execute
+EXPORT_SYMBOL vmlinux 0x272d394e	mtrr_del
+EXPORT_SYMBOL vmlinux 0x273a76c4	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x274d08dc	__kfifo_dma_out_prepare
+EXPORT_SYMBOL vmlinux 0x27636931	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x2773a1bb	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x27755139	agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x27957d22	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x27a61ba7	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x27ac17a2	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x27ae7d0c	ec_transaction
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e228b6	km_state_notify
+EXPORT_SYMBOL vmlinux 0x27ec0e99	alloc_xenballooned_pages
+EXPORT_SYMBOL vmlinux 0x27edd923	skb_append
+EXPORT_SYMBOL vmlinux 0x27f14e28	free_netdev
+EXPORT_SYMBOL vmlinux 0x27f6777d	vfs_create
+EXPORT_SYMBOL vmlinux 0x27fbdfce	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x27fd480c	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x280b63ed	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x280b8db4	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x283711b7	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x28408801	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x286370e4	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b715a6	isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x28d258c0	mca_device_transform_irq
+EXPORT_SYMBOL vmlinux 0x28fe8d2c	lookup_hash
+EXPORT_SYMBOL vmlinux 0x290ee04d	uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x291dc0af	sk_alloc
+EXPORT_SYMBOL vmlinux 0x292093f4	native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29292706	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x294b779b	dev_graft_qdisc
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x295db419	x86_hyper
+EXPORT_SYMBOL vmlinux 0x29873a03	netif_set_real_num_tx_queues
+EXPORT_SYMBOL vmlinux 0x298a2cdd	acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x29b043b6	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x29b8d3a9	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x29b96a8a	inet_peer_xrlim_allow
+EXPORT_SYMBOL vmlinux 0x29e9c274	register_netdev
+EXPORT_SYMBOL vmlinux 0x29fdda53	kstrtos8_from_user
+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 0x2a3f818a	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x2a4b7c99	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x2a705a7b	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x2a75035a	__pci_register_driver
+EXPORT_SYMBOL vmlinux 0x2a7c0c6a	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x2a80a523	vfs_readlink
+EXPORT_SYMBOL vmlinux 0x2a915160	input_register_handler
+EXPORT_SYMBOL vmlinux 0x2a9abbab	__insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2ae36d98	iget5_locked
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b62636a	agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x2b646069	set_security_override
+EXPORT_SYMBOL vmlinux 0x2b7b5bd1	tcp_alloc_md5sig_pool
+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 0x2bc95bd4	memset
+EXPORT_SYMBOL vmlinux 0x2bd9c489	revalidate_disk
+EXPORT_SYMBOL vmlinux 0x2bdc2dc6	pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x2beace44	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2bf8d577	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x2bfb5674	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x2bfd5ec0	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x2bfeb410	acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c071182	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x2c0cc4d1	blk_make_request
+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 0x2c49edb8	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x2c4e60d8	pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x2c6a6930	pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x2c6be70c	register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x2c8fa1f9	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x2cb8dd33	abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x2ce08e65	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x2d0f5f79	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1766aa	scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x2d37342e	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x2d49c662	do_splice_direct
+EXPORT_SYMBOL vmlinux 0x2d84daab	vfs_writev
+EXPORT_SYMBOL vmlinux 0x2d89342a	scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d9cc6cc	set_user_nice
+EXPORT_SYMBOL vmlinux 0x2da470a1	sock_i_uid
+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 0x2dfaec85	journal_stop
+EXPORT_SYMBOL vmlinux 0x2e03d27a	ns_capable
+EXPORT_SYMBOL vmlinux 0x2e0b1d1b	bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x2e16e534	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0	sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e467f5f	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x2e59fc7a	ab8500_gpadc_get
+EXPORT_SYMBOL vmlinux 0x2e5dc57e	kfree_skb
+EXPORT_SYMBOL vmlinux 0x2e60bace	memcpy
+EXPORT_SYMBOL vmlinux 0x2e879ed5	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x2e9f97ec	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x2ea7d424	gen_pool_free
+EXPORT_SYMBOL vmlinux 0x2eb167bb	kern_path
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2ecbaea0	fib_default_rule_pref
+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 0x2f3df464	nobh_write_end
+EXPORT_SYMBOL vmlinux 0x2f72763d	send_sig
+EXPORT_SYMBOL vmlinux 0x2f74ed4b	elv_add_request
+EXPORT_SYMBOL vmlinux 0x2f7a3560	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x2f93c2b7	noop_fsync
+EXPORT_SYMBOL vmlinux 0x2fb6de5d	add_device_randomness
+EXPORT_SYMBOL vmlinux 0x2fcbfbe0	uart_match_port
+EXPORT_SYMBOL vmlinux 0x2fcde7cd	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x2ff95dda	dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x30090a05	may_umount
+EXPORT_SYMBOL vmlinux 0x3009b968	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x301ee84b	igrab
+EXPORT_SYMBOL vmlinux 0x30226ddf	agp_device_command
+EXPORT_SYMBOL vmlinux 0x302b865b	x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x30314e5b	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x303c831e	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x307c2fd0	generic_check_addressable
+EXPORT_SYMBOL vmlinux 0x30842534	mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x30a06192	pci_request_regions
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL vmlinux 0x30b70b0a	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0x30b9df65	km_policy_expired
+EXPORT_SYMBOL vmlinux 0x30cada8f	radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x30e74134	tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30faaa8b	log_start_commit
+EXPORT_SYMBOL vmlinux 0x31022556	skb_checksum
+EXPORT_SYMBOL vmlinux 0x310917fe	sort
+EXPORT_SYMBOL vmlinux 0x31121afd	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x3115ffca	set_bh_page
+EXPORT_SYMBOL vmlinux 0x311ecfb3	abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x312db847	ilookup5
+EXPORT_SYMBOL vmlinux 0x3137a4bd	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x3145216f	pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x314a240b	kunmap
+EXPORT_SYMBOL vmlinux 0x314a6374	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x314b176b	__inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x316b4b77	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x317c3b50	padata_register_cpumask_notifier
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31a11572	mdiobus_register
+EXPORT_SYMBOL vmlinux 0x31a322e2	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x31c30ed2	dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x31dd157f	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0x31e76b57	recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31f0bb78	__kmap_atomic_idx
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x3246d36b	security_path_unlink
+EXPORT_SYMBOL vmlinux 0x326425ca	pci_unmap_biosrom
+EXPORT_SYMBOL vmlinux 0x329e9c4f	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x32a5af13	iput
+EXPORT_SYMBOL vmlinux 0x32aedf86	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x32b3190c	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x32b8f946	__alloc_skb
+EXPORT_SYMBOL vmlinux 0x32b93329	pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x32cea339	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x32e80b58	udplite_prot
+EXPORT_SYMBOL vmlinux 0x32eeaded	_raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x32f51064	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x33046358	tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x3305347e	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x332534d2	__f_setown
+EXPORT_SYMBOL vmlinux 0x332f3238	acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x333185cf	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x3337ecaf	netdev_crit
+EXPORT_SYMBOL vmlinux 0x336eac4a	log_wait_commit
+EXPORT_SYMBOL vmlinux 0x33771543	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x33842f27	put_page
+EXPORT_SYMBOL vmlinux 0x33c3f0b3	set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x33dbfd93	tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x33e0610e	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x33f0768c	cpufreq_quick_get_max
+EXPORT_SYMBOL vmlinux 0x33f1750c	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x34150311	security_path_chown
+EXPORT_SYMBOL vmlinux 0x341e333e	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x342e32e3	ida_simple_get
+EXPORT_SYMBOL vmlinux 0x342f60fe	apm_info
+EXPORT_SYMBOL vmlinux 0x3442ba13	inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x3443f968	d_rehash
+EXPORT_SYMBOL vmlinux 0x345a1fbd	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x3465f248	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x348ffb3f	secpath_dup
+EXPORT_SYMBOL vmlinux 0x34908c14	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34c1fb1a	journal_update_format
+EXPORT_SYMBOL vmlinux 0x34c265bf	atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34dd847f	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x353345a8	key_unlink
+EXPORT_SYMBOL vmlinux 0x353efb08	dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x356313c8	alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x35669178	swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x35771b82	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x357c90d2	qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x35802462	elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x35af86fa	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x35c2ba9e	refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca8cfa	dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x35d79cf7	tcp_parse_options
+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 0x3686ea09	spi_print_msg
+EXPORT_SYMBOL vmlinux 0x3692030c	tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x36a96a5e	input_set_abs_params
+EXPORT_SYMBOL vmlinux 0x36aad357	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x36aae8dd	get_phy_device
+EXPORT_SYMBOL vmlinux 0x36bb24f1	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36ef40b8	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x370b92f4	neigh_create
+EXPORT_SYMBOL vmlinux 0x370bc881	sget
+EXPORT_SYMBOL vmlinux 0x37338004	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x376b0657	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x376c35f7	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x3781e345	iget_failed
+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 0x37cf7efb	journal_forget
+EXPORT_SYMBOL vmlinux 0x37d3e171	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x37d5f973	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x37da9dcf	i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x37db8f19	dmi_get_date
+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 0x381a798a	setup_max_cpus
+EXPORT_SYMBOL vmlinux 0x381ccc13	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0x383ec709	keyring_clear
+EXPORT_SYMBOL vmlinux 0x383ed32a	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x3844a77e	dqget
+EXPORT_SYMBOL vmlinux 0x38477d3f	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x384cc7f2	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x385469aa	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x385c4f87	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x386bb693	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x3873cdde	scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x387c2206	xfrm_find_acq_byseq
+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 0x389e611d	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0x38a8f3f9	sock_create
+EXPORT_SYMBOL vmlinux 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38cca01e	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x38d9d835	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x38dd7f9f	pci_disable_device
+EXPORT_SYMBOL vmlinux 0x38f3507a	neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x390f0dcf	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x3934e89d	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x3941c79d	dev_open
+EXPORT_SYMBOL vmlinux 0x39478f2a	agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x396a9cff	inode_init_owner
+EXPORT_SYMBOL vmlinux 0x397f30e0	d_validate
+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 0x39db6920	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x39e8f239	get_fs_type
+EXPORT_SYMBOL vmlinux 0x3a013b7d	remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x3a04d2ef	acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x3a08475f	platform_thermal_notify
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a31e6af	mii_check_link
+EXPORT_SYMBOL vmlinux 0x3a32839e	intel_gtt_chipset_flush
+EXPORT_SYMBOL vmlinux 0x3a51784c	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x3a82c5cd	elevator_exit
+EXPORT_SYMBOL vmlinux 0x3a86e88a	__pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x3a8c937d	set_pages_x
+EXPORT_SYMBOL vmlinux 0x3a916d48	md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9fa44c	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3abb82fc	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0x3ac46f5c	acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x3b0433a8	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x3b056a37	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b3fe633	dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x3b4d6957	arp_xmit
+EXPORT_SYMBOL vmlinux 0x3bab7fc9	dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x3bb00c9a	blk_put_request
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bd92d7b	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x3bfa6d8d	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x3c2caead	seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x3c5f9136	tcp_close
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c98a3aa	kernel_accept
+EXPORT_SYMBOL vmlinux 0x3c9d1211	string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb3931b	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x3cb74fb8	pnp_device_detach
+EXPORT_SYMBOL vmlinux 0x3ccd920f	kick_iocb
+EXPORT_SYMBOL vmlinux 0x3cdfc138	pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cfb7d23	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x3cfe42cb	jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x3d0f6bfe	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x3d13f7ac	sk_stream_wait_close
+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 0x3dc4960b	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x3dcb88a0	irq_set_handler_data
+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 0x3e1ffcbb	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8	acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e45e9ff	register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e52bf1a	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x3e5f060c	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x3e882943	pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e957c55	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x3e98a88a	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x3ea1ca72	agp_free_memory
+EXPORT_SYMBOL vmlinux 0x3eabfd94	__scm_send
+EXPORT_SYMBOL vmlinux 0x3ebce843	current_fs_time
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3eda8f77	pci_match_id
+EXPORT_SYMBOL vmlinux 0x3ee549b1	neigh_lookup
+EXPORT_SYMBOL vmlinux 0x3ef78d80	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3f0539a4	noop_llseek
+EXPORT_SYMBOL vmlinux 0x3f0546a8	ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f40f6e1	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f8ee426	inet_dgram_connect
+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 0x3fb453f6	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x3fb5625c	mount_pseudo
+EXPORT_SYMBOL vmlinux 0x3fbedd92	default_llseek
+EXPORT_SYMBOL vmlinux 0x3fcac3d7	block_write_begin
+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 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 0x40c8dba2	phy_device_register
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40d8c864	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410d052d	block_commit_write
+EXPORT_SYMBOL vmlinux 0x413a9dbd	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x4145b561	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x41499d66	bdput
+EXPORT_SYMBOL vmlinux 0x415376e2	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x4158396c	mutex_lock
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x419a8915	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x419ee6e8	idr_pre_get
+EXPORT_SYMBOL vmlinux 0x41b3a6ee	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x42064a75	d_alloc_root
+EXPORT_SYMBOL vmlinux 0x42119286	mutex_unlock
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298	sscanf
+EXPORT_SYMBOL vmlinux 0x4239de63	ida_init
+EXPORT_SYMBOL vmlinux 0x42495788	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x424b4679	mpage_writepages
+EXPORT_SYMBOL vmlinux 0x42595e58	vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x426c85ad	swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x4292364c	schedule
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42ab462b	mntput
+EXPORT_SYMBOL vmlinux 0x42c2a76a	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x42c8de35	ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42d3c8c4	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x42dbdf86	set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x42e9eda6	ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x42f32452	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x43197992	agp_generic_enable
+EXPORT_SYMBOL vmlinux 0x431c6e41	agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x431cf5ae	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x43226609	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x432600ee	dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x43385ad9	acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x43575392	mii_check_media
+EXPORT_SYMBOL vmlinux 0x43696489	pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x436c2179	iowrite32
+EXPORT_SYMBOL vmlinux 0x43874096	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x438d5798	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43b9905b	sock_no_sendpage
+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 0x441fba91	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x4421a2cb	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x44366cfc	simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x443c1742	cad_pid
+EXPORT_SYMBOL vmlinux 0x44402b6f	param_get_ulong
+EXPORT_SYMBOL vmlinux 0x44438b96	hex2bin
+EXPORT_SYMBOL vmlinux 0x4445c082	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x44497120	set_blocksize
+EXPORT_SYMBOL vmlinux 0x4479b170	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x44993ace	find_vma
+EXPORT_SYMBOL vmlinux 0x44aaf30f	tsc_khz
+EXPORT_SYMBOL vmlinux 0x44b2818b	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44c2cd8a	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x44f1606d	down_trylock
+EXPORT_SYMBOL vmlinux 0x45081703	ec_get_handle
+EXPORT_SYMBOL vmlinux 0x4528063b	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x453620ab	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x4539439c	init_task
+EXPORT_SYMBOL vmlinux 0x453c8403	pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4550ba8a	register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x455c93c3	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x4578661a	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x4578f528	__kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x45bd9efd	dm_table_put
+EXPORT_SYMBOL vmlinux 0x45d216b9	tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d5f32c	journal_start
+EXPORT_SYMBOL vmlinux 0x4617c890	mca_device_transform_ioport
+EXPORT_SYMBOL vmlinux 0x461b66e7	ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x461d8f20	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x46214106	files_lglock_local_unlock_cpu
+EXPORT_SYMBOL vmlinux 0x462a2e75	match_strlcpy
+EXPORT_SYMBOL vmlinux 0x465a17a6	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x466c14a7	__delay
+EXPORT_SYMBOL vmlinux 0x466cddcf	__mutex_init
+EXPORT_SYMBOL vmlinux 0x46762caa	km_query
+EXPORT_SYMBOL vmlinux 0x4685132e	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x46953cda	spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x469a6420	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x46c0ed20	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x4705e458	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x475100c2	inet_get_local_port_range
+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 0x47a41255	init_buffer
+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 0x47e406dc	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x48193639	acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab	acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x484960b1	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x486d2f29	dqstats
+EXPORT_SYMBOL vmlinux 0x48a686d6	blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x48a771c5	cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48e47fca	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x48e60ad1	block_truncate_page
+EXPORT_SYMBOL vmlinux 0x48eb0c0d	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x48fcc1dd	dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x491ed467	sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x493ad85a	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0x494fb1cf	pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x495d9c1e	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0x49603fb8	security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496b010a	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x4992c87c	dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x49b07aec	tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b7ab65	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x49b8ff72	agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0x49c169c8	scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x49c1c8ee	noop_qdisc
+EXPORT_SYMBOL vmlinux 0x49ce2439	security_file_mmap
+EXPORT_SYMBOL vmlinux 0x49d28e6b	__nla_put
+EXPORT_SYMBOL vmlinux 0x49d790fd	page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x4a0a13bc	tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x4a0d25a7	gen_pool_virt_to_phys
+EXPORT_SYMBOL vmlinux 0x4a28a95d	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x4a34da58	__dev_printk
+EXPORT_SYMBOL vmlinux 0x4a358252	__bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a54cfda	nf_register_hook
+EXPORT_SYMBOL vmlinux 0x4a568ec8	follow_down_one
+EXPORT_SYMBOL vmlinux 0x4a6c3bbb	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x4a6e0869	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x4a8ca8b0	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4a9b7ee4	dev_mc_init
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+EXPORT_SYMBOL vmlinux 0x4ab1cfe5	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x4ab3a56d	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x4acd93d3	release_resource
+EXPORT_SYMBOL vmlinux 0x4ad3137f	max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x4afe9a77	scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b085dbf	agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b09bfad	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x4b0dad8d	led_blink_set
+EXPORT_SYMBOL vmlinux 0x4b142f51	devm_iounmap
+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 0x4b6b67bc	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x4b6d2cd5	softnet_data
+EXPORT_SYMBOL vmlinux 0x4bafb1f3	dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x4bbad17b	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x4bbee9d5	md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x4bc4d5a5	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4be55eb0	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x4bf6f33d	tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x4bf7b27d	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x4bf7bce9	read_cache_page_async
+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 0x4c5001fe	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x4c997920	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbf16c9	pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x4cc131f8	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x4cc7206a	sock_rfree
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d19ef71	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x4d20ddbc	atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d29844c	proc_symlink
+EXPORT_SYMBOL vmlinux 0x4d3a09c3	I_BDEV
+EXPORT_SYMBOL vmlinux 0x4d3b3865	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d426db5	submit_bh
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d572da9	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x4d7b9329	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd955f9	module_refcount
+EXPORT_SYMBOL vmlinux 0x4ddd21b2	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x4df08b1f	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfad3f0	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x4e051b3a	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x4e069249	security_tun_dev_post_create
+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 0x4e6e8ea7	fg_console
+EXPORT_SYMBOL vmlinux 0x4e81c0c7	sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4eb11f1f	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x4efe1756	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x4f004a7f	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x4f0820e0	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x4f18467b	pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x4f1be858	journal_extend
+EXPORT_SYMBOL vmlinux 0x4f1cd128	security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f21ede4	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x4f391d0e	nla_parse
+EXPORT_SYMBOL vmlinux 0x4f476e96	init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f60b717	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x4f6254c1	md_integrity_register
+EXPORT_SYMBOL vmlinux 0x4f783f30	acpi_read
+EXPORT_SYMBOL vmlinux 0x4fbbc13c	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x4fdee897	i8042_command
+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 0x50415a89	pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x50529870	acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x5069da1c	tty_port_close
+EXPORT_SYMBOL vmlinux 0x507d1419	mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50ada8ab	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x50b56c8e	d_alloc
+EXPORT_SYMBOL vmlinux 0x50c94bec	scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x50cb0c62	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x50cd4c20	pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x50ce26f8	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x50eedeb8	printk
+EXPORT_SYMBOL vmlinux 0x5114b9ab	inet6_bind
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511ee0be	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x5152e605	memcmp
+EXPORT_SYMBOL vmlinux 0x5156461f	alloc_fddidev
+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 0x51e5e67d	filp_close
+EXPORT_SYMBOL vmlinux 0x51ef33b8	kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf	security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19	acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52423a0c	ida_pre_get
+EXPORT_SYMBOL vmlinux 0x5267d295	ethtool_op_set_tx_csum
+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 0x52d812f2	vfs_readv
+EXPORT_SYMBOL vmlinux 0x52e8eaa7	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x52ebf701	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x530b1e4c	rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x5318fca1	skb_pad
+EXPORT_SYMBOL vmlinux 0x531b604e	__virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53217d5c	km_report
+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 0x53822f1a	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x5383f34b	_raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x5386ecb5	do_sync_write
+EXPORT_SYMBOL vmlinux 0x5388f4a4	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+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 0x53f6052e	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x5413d22b	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x54152e04	percpu_counter_compare
+EXPORT_SYMBOL vmlinux 0x5429f762	generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5451f291	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x5455409d	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x546c4b8f	mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0x548866f9	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x54935666	acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0x54a285c5	atomic64_dec_return_cx8
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54ac7a78	task_ns_capable
+EXPORT_SYMBOL vmlinux 0x54ae0451	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x54c51d3d	sk_common_release
+EXPORT_SYMBOL vmlinux 0x54c6b0e4	mount_subtree
+EXPORT_SYMBOL vmlinux 0x54df0927	start_tty
+EXPORT_SYMBOL vmlinux 0x54e6d2b9	spi_dv_device
+EXPORT_SYMBOL vmlinux 0x54e6fcdd	net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54fa7cd5	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x5521a3d2	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x55401d79	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x5541ea93	on_each_cpu
+EXPORT_SYMBOL vmlinux 0x554687d4	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a768f5	__get_user_pages
+EXPORT_SYMBOL vmlinux 0x55a8ba03	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x55b818fe	pm860x_page_bulk_read
+EXPORT_SYMBOL vmlinux 0x55d085ac	mfd_add_devices
+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 0x563c4e88	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x564349ca	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x567facc7	agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x568db09b	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x568ea869	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x569f3844	tcp_seq_open
+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 0x56dde4b4	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x56e72f0c	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x56f6d54f	ethtool_op_set_flags
+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 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 0x5769ce6a	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x5781f31c	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x5787c730	tcp_poll
+EXPORT_SYMBOL vmlinux 0x578c0f3d	console_stop
+EXPORT_SYMBOL vmlinux 0x5792a501	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0x579717fd	aio_put_req
+EXPORT_SYMBOL vmlinux 0x579fbcd2	cpu_possible_mask
+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 0x57e402a1	dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x581d0849	blk_get_request
+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 0x58f18279	journal_start_commit
+EXPORT_SYMBOL vmlinux 0x58fef6f8	ist_info
+EXPORT_SYMBOL vmlinux 0x592b59af	acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x5949a475	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x59563253	vga_get
+EXPORT_SYMBOL vmlinux 0x597b750e	tcf_exts_dump
+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 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x5a110d7a	simple_unlink
+EXPORT_SYMBOL vmlinux 0x5a2aa62e	__wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x5a2ddc04	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x5a3be481	max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x5a419ee4	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x5a4896a8	__put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5ea541	__ps2_command
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a932a81	scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x5ac376a5	acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b27f6e1	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x5b2c5e08	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x5b31eb1f	pci_get_class
+EXPORT_SYMBOL vmlinux 0x5b51c6a7	acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b603677	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x5b88e8c9	atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5bb86c29	tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x5bd11b48	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x5be55bb5	take_over_console
+EXPORT_SYMBOL vmlinux 0x5c3edd59	_raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x5c5931b5	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c679ba8	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x5c68705b	mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c997bd7	nla_append
+EXPORT_SYMBOL vmlinux 0x5c9fa676	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x5cc11e12	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x5cf85de7	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x5d1830f4	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x5d402ba7	arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x5d417daa	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x5d4f070e	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x5d59e6f1	lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+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 0x5de25d82	send_sig_info
+EXPORT_SYMBOL vmlinux 0x5e1e3c8d	fb_show_logo
+EXPORT_SYMBOL vmlinux 0x5e2e6918	journal_ack_err
+EXPORT_SYMBOL vmlinux 0x5e34d7f2	write_inode_now
+EXPORT_SYMBOL vmlinux 0x5e446672	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x5e49669e	sock_update_classid
+EXPORT_SYMBOL vmlinux 0x5e4de069	nf_reinject
+EXPORT_SYMBOL vmlinux 0x5e54f9c1	tty_port_init
+EXPORT_SYMBOL vmlinux 0x5e5a4307	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5e98ec96	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5eb44578	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5ebc08a5	task_nice
+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 0x5f27544a	mempool_destroy
+EXPORT_SYMBOL vmlinux 0x5f284e12	backlight_force_update
+EXPORT_SYMBOL vmlinux 0x5f2e8773	scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x5f4aaf44	fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x5f4e1a8f	acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f723bae	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x5f752990	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x5f829ef7	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fb9f9a6	key_link
+EXPORT_SYMBOL vmlinux 0x5fc4b035	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x5fd11872	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x5fd54d59	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0x5fe41fb6	percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x5fe649fd	locks_init_lock
+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 0x60335b8d	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x604145cb	__cleancache_flush_inode
+EXPORT_SYMBOL vmlinux 0x60415087	bio_free
+EXPORT_SYMBOL vmlinux 0x604a2ccc	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x604dfe96	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x60632f2c	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x60872a44	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x609f1c7e	synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9	pm_power_off
+EXPORT_SYMBOL vmlinux 0x60b2e38a	rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x60d0b9f3	wake_up_process
+EXPORT_SYMBOL vmlinux 0x60e5fe17	thaw_process
+EXPORT_SYMBOL vmlinux 0x60fd237e	nf_log_packet
+EXPORT_SYMBOL vmlinux 0x61154b93	generic_write_sync
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x613d8824	do_splice_to
+EXPORT_SYMBOL vmlinux 0x61412940	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x61536865	idr_destroy
+EXPORT_SYMBOL vmlinux 0x6186189b	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x619b187b	add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x61a71c71	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x61b5ade0	down_write
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61cec5a8	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x61d89a81	dev_uc_add
+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 0x6228c21f	smp_call_function_single
+EXPORT_SYMBOL vmlinux 0x622fa02a	prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x6237f6b5	acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623f1b0a	alloc_disk
+EXPORT_SYMBOL vmlinux 0x6241a2ab	__copy_from_user_ll_nocache
+EXPORT_SYMBOL vmlinux 0x62593fac	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL vmlinux 0x6273dc27	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x6273fa49	nla_reserve
+EXPORT_SYMBOL vmlinux 0x6274dc7d	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x6278c523	generic_permission
+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 0x62a7def4	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x62acef14	ppp_input_error
+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 0x630cf859	d_genocide
+EXPORT_SYMBOL vmlinux 0x63187451	pcie_aspm_support_enabled
+EXPORT_SYMBOL vmlinux 0x632e669d	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0x6332cc1a	audit_log_start
+EXPORT_SYMBOL vmlinux 0x6337dfce	ab8500_gpadc_convert
+EXPORT_SYMBOL vmlinux 0x634642ff	sock_create_kern
+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 0x63a15efa	__tcf_em_tree_match
+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 0x63f28403	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x63fedfd8	bio_pair_release
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64063398	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x640ffa6a	xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x64108df1	swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x642e4ba8	register_quota_format
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x643ec532	generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x6478134c	ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x6491e3f8	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a8efbd	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x64e88837	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x64eae7ad	set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64edd025	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x651453ac	install_exec_creds
+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 0x655f1ab0	set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6565d33f	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x65678b8d	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x656a1353	dev_activate
+EXPORT_SYMBOL vmlinux 0x657879ce	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x65799580	__bread
+EXPORT_SYMBOL vmlinux 0x657eb04f	write_one_page
+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 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 0x65e90070	journal_load
+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 0x668da8d5	zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x669dd28a	posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x66a67dab	flex_array_shrink
+EXPORT_SYMBOL vmlinux 0x66b8417c	remove_arg_zero
+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 0x66ef386f	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0x67030317	dev_deactivate
+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 0x674edb0d	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x67704699	journal_revoke
+EXPORT_SYMBOL vmlinux 0x677f8772	set_trace_device
+EXPORT_SYMBOL vmlinux 0x67804a19	__any_online_cpu
+EXPORT_SYMBOL vmlinux 0x6792a4b7	path_is_under
+EXPORT_SYMBOL vmlinux 0x679f1348	tcp_valid_rtt_meas
+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 0x67dda029	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x67edabf6	input_event
+EXPORT_SYMBOL vmlinux 0x67f138c1	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x67f7403e	_raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x67fdc02a	pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x682682a7	mddev_congested
+EXPORT_SYMBOL vmlinux 0x682dc240	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x68531e9c	pci_get_slot
+EXPORT_SYMBOL vmlinux 0x6858bfe2	pm860x_page_set_bits
+EXPORT_SYMBOL vmlinux 0x685d5438	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x689e9ee0	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x68d372d2	module_layout
+EXPORT_SYMBOL vmlinux 0x6917156b	pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x692a568a	dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x6965473f	phy_driver_register
+EXPORT_SYMBOL vmlinux 0x6971447a	rtc_month_days
+EXPORT_SYMBOL vmlinux 0x69807f5a	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x6988d0ca	cpu_dr7
+EXPORT_SYMBOL vmlinux 0x6998634f	phy_connect
+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 0x69ae0c22	__dev_get_by_name
+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 0x6a129fa8	set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6a27bfce	csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x6a3255c9	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x6a48e16b	percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a8b6fd5	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6acb973d	iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad85887	acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0x6add5c9a	dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6ae4fbd1	blkdev_put
+EXPORT_SYMBOL vmlinux 0x6af634b1	read_cache_page
+EXPORT_SYMBOL vmlinux 0x6aff315a	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x6b05f334	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x6b10dd64	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b1e1cab	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b488b97	dquot_commit
+EXPORT_SYMBOL vmlinux 0x6b4d25e3	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x6b55c14c	pci_map_biosrom
+EXPORT_SYMBOL vmlinux 0x6b613a0b	netlink_ack
+EXPORT_SYMBOL vmlinux 0x6b82e883	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x6b937ffb	mca_mark_as_used
+EXPORT_SYMBOL vmlinux 0x6ba6477c	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x6baae653	cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x6babd437	generic_write_end
+EXPORT_SYMBOL vmlinux 0x6bb55b1a	bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x6bb7924b	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0	__unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bda87c8	do_splice_from
+EXPORT_SYMBOL vmlinux 0x6bdcfd99	qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6be0cde6	pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x6bf478a1	__break_lease
+EXPORT_SYMBOL vmlinux 0x6bf70fc4	pci_find_capability
+EXPORT_SYMBOL vmlinux 0x6c072ed0	get_phy_id
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320	strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761	acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3a83da	open_exec
+EXPORT_SYMBOL vmlinux 0x6c57c55a	ip_defrag
+EXPORT_SYMBOL vmlinux 0x6c61ce70	num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7	sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c77533a	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x6c875264	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x6c8b020f	mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b	nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf310ec	lock_rename
+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 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 0x6d57ee8f	netif_rx
+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 0x6d898201	phy_attach
+EXPORT_SYMBOL vmlinux 0x6da6372d	tc_classify
+EXPORT_SYMBOL vmlinux 0x6da997bb	page_put_link
+EXPORT_SYMBOL vmlinux 0x6dc57f87	bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x6de23581	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x6dee2129	user_revoke
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e1d1a61	read_dev_sector
+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 0x6e6f803d	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e80e1e1	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x6e937345	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebe1407	blk_peek_request
+EXPORT_SYMBOL vmlinux 0x6ed87465	register_gifconf
+EXPORT_SYMBOL vmlinux 0x6f0fe013	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x6f556bdb	acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f7244c4	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x6f86e08d	journal_create
+EXPORT_SYMBOL vmlinux 0x6f8ca82e	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x6f906d8b	i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x6fc2d0a4	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe726fc	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x6feb2039	acpi_write
+EXPORT_SYMBOL vmlinux 0x6ff7a75d	blk_end_request
+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 0x707a7235	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x708b8ccc	intel_gtt_map_memory
+EXPORT_SYMBOL vmlinux 0x708d656e	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x70911653	tcp_v4_send_check
+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 0x7114a71f	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x71202709	pci_disable_ido
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x7133b22e	generic_setxattr
+EXPORT_SYMBOL vmlinux 0x713f9d2c	generic_read_dir
+EXPORT_SYMBOL vmlinux 0x71563c85	ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x7165bb02	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x719eb747	unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71bf4ae1	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x71db25bf	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x71dcd460	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x71f8580f	journal_init_dev
+EXPORT_SYMBOL vmlinux 0x71fac4c2	get_gendisk
+EXPORT_SYMBOL vmlinux 0x720e5bd0	netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x724e1615	netdev_notice
+EXPORT_SYMBOL vmlinux 0x725917c0	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x72689ab6	pci_iounmap
+EXPORT_SYMBOL vmlinux 0x72802336	sync_inodes_sb
+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 0x72ea7b2d	scsi_device_type
+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 0x735a0bd5	native_io_delay
+EXPORT_SYMBOL vmlinux 0x7362dd1e	vfs_fstat
+EXPORT_SYMBOL vmlinux 0x736815f5	sock_no_bind
+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 0x73e20c1c	strlcpy
+EXPORT_SYMBOL vmlinux 0x73f11212	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x740372d1	uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x740a1b95	reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x74117b38	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x7413793a	EISA_bus
+EXPORT_SYMBOL vmlinux 0x741a6e22	gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x74360698	tr_type_trans
+EXPORT_SYMBOL vmlinux 0x74394eda	ip_fragment
+EXPORT_SYMBOL vmlinux 0x7469fcfe	radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x7485e15e	unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a7b7b1	scsi_verify_blk_ioctl
+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 0x74e099a1	mnt_pin
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x7513af1a	kblockd_schedule_work
+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 0x7593d385	div64_s64
+EXPORT_SYMBOL vmlinux 0x759eac7f	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x75a45506	__dev_get_by_index
+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 0x75cd19fe	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7628f3c7	this_cpu_off
+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 0x7680c0c9	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x769e06d7	smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c11ec6	sock_no_connect
+EXPORT_SYMBOL vmlinux 0x76c630da	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76dc6b98	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x76e15adf	xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x76fb8c7a	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0x76fd5fb5	mapping_tagged
+EXPORT_SYMBOL vmlinux 0x76fe045c	mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x7704b08b	sk_dst_check
+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 0x7755ecb8	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x77629160	swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x776febec	dentry_unhash
+EXPORT_SYMBOL vmlinux 0x777539b7	cpu_info
+EXPORT_SYMBOL vmlinux 0x7777a335	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7780aa81	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x77a2dd5d	mca_bus_type
+EXPORT_SYMBOL vmlinux 0x77b93254	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77c533bd	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x77d59419	cdrom_ioctl
+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 0x781141de	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x7818316d	blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x7838896c	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x7880c781	dm_kcopyd_prepare_callback
+EXPORT_SYMBOL vmlinux 0x78a49796	dev_warn
+EXPORT_SYMBOL vmlinux 0x78bb2011	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0x78dd64b8	__breadahead
+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 0x793ed0fa	bio_copy_user
+EXPORT_SYMBOL vmlinux 0x7941fe81	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x794a2c29	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x794b55a0	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x794d2764	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x7953113e	netdev_state_change
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7973fcff	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x79946430	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x79991b22	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79b8cdc7	i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x79c4fd9b	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x79cf6c9c	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x79d839b8	bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x79f056d5	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a352a18	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x7a366948	phy_device_free
+EXPORT_SYMBOL vmlinux 0x7a3d7c5e	blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a672a9a	ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x7a9bf88d	udplite_table
+EXPORT_SYMBOL vmlinux 0x7aa81449	tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x7abacda2	swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x7ac079f2	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x7aec9089	clear_user
+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 0x7b52a859	wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05	acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b59a3cc	find_or_create_page
+EXPORT_SYMBOL vmlinux 0x7b87ab4f	register_con_driver
+EXPORT_SYMBOL vmlinux 0x7b8f1d90	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x7b94dde9	input_release_device
+EXPORT_SYMBOL vmlinux 0x7b9a6116	intel_agp_enabled
+EXPORT_SYMBOL vmlinux 0x7bdb5968	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x7c009268	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x7c0eddaa	sock_no_poll
+EXPORT_SYMBOL vmlinux 0x7c2ccd3a	input_reset_device
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c499e97	arp_create
+EXPORT_SYMBOL vmlinux 0x7c591b9e	pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x7c60d66e	getname
+EXPORT_SYMBOL vmlinux 0x7c61340c	__release_region
+EXPORT_SYMBOL vmlinux 0x7c7235da	d_splice_alias
+EXPORT_SYMBOL vmlinux 0x7c904ded	unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7ca7e6db	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x7cad9df4	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x7cb1ae69	cpu_down
+EXPORT_SYMBOL vmlinux 0x7cb92721	scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x7cd8c02e	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7d11c268	jiffies
+EXPORT_SYMBOL vmlinux 0x7d1b0562	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x7d21cb33	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x7d50aeed	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x7d676053	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x7d8201ad	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x7dbc2e57	mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x7dc3d140	agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0x7dc3e088	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x7dc5b358	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x7dd041c8	sock_wake_async
+EXPORT_SYMBOL vmlinux 0x7de866c7	proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e0ca59f	dquot_set_dqblk
+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 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ea3d4e1	scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x7ecb001b	__per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7ef2f508	scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x7eff7106	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x7f072be5	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x7f18b194	kacpi_hotplug_wq
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f6052d3	grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x7f658e80	_raw_write_lock
+EXPORT_SYMBOL vmlinux 0x7faae13d	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x7fac9a93	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x7fb74e3e	input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x7fe305ab	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x800df1d7	groups_free
+EXPORT_SYMBOL vmlinux 0x802a3608	mmc_erase
+EXPORT_SYMBOL vmlinux 0x808af8d4	pnp_find_card
+EXPORT_SYMBOL vmlinux 0x8096b59e	register_xen_selfballooning
+EXPORT_SYMBOL vmlinux 0x80a773c2	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x80a96560	inet6_getname
+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 0x80ceb36c	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0x80d78e54	cdev_add
+EXPORT_SYMBOL vmlinux 0x80e74786	kernel_sock_ioctl
+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 0x810d614c	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x812c7064	prepare_binprm
+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 0x818dbffa	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x819348c0	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x819e1c25	acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x81a386e1	kobject_init
+EXPORT_SYMBOL vmlinux 0x81a5e22a	kobject_del
+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 0x82034bdc	posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x82072614	tasklet_kill
+EXPORT_SYMBOL vmlinux 0x820af0f6	tcp_gro_complete
+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 0x825ec170	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x825ed553	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x825f4a16	qdisc_tree_decrease_qlen
+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 0x82819580	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x828d1801	dump_seek
+EXPORT_SYMBOL vmlinux 0x828fa942	dentry_open
+EXPORT_SYMBOL vmlinux 0x829b533d	create_proc_entry
+EXPORT_SYMBOL vmlinux 0x829ff995	pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x82a96738	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x82acfb70	blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82de5d3b	pci_release_regions
+EXPORT_SYMBOL vmlinux 0x82f81ff2	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x830e547b	ioremap_prot
+EXPORT_SYMBOL vmlinux 0x8336b631	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x8336c26c	block_write_end
+EXPORT_SYMBOL vmlinux 0x833c03aa	acpi_enable_all_runtime_gpes
+EXPORT_SYMBOL vmlinux 0x8343cd74	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x835efd82	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x83670fe4	vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x836873a2	proc_dointvec
+EXPORT_SYMBOL vmlinux 0x83800bfa	kref_init
+EXPORT_SYMBOL vmlinux 0x8384a2c5	tty_unlock
+EXPORT_SYMBOL vmlinux 0x83a476ce	bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83d11b32	scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x83f65711	pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x83ffa9fe	sync_inode
+EXPORT_SYMBOL vmlinux 0x84025dcb	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x840485df	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x8404e0f9	truncate_setsize
+EXPORT_SYMBOL vmlinux 0x84060081	xen_poll_irq_timeout
+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 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x847f182b	page_address
+EXPORT_SYMBOL vmlinux 0x849be2bf	pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x849f39eb	read_cache_pages
+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 0x84d4d8ac	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0x84d7ab11	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x84dc6c1c	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x84e19b66	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x84ec6fca	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x852a8d92	security_path_link
+EXPORT_SYMBOL vmlinux 0x85304814	inet_frags_init
+EXPORT_SYMBOL vmlinux 0x85556faa	generic_make_request
+EXPORT_SYMBOL vmlinux 0x85670f1d	rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856c3a78	have_submounts
+EXPORT_SYMBOL vmlinux 0x85757dad	napi_get_frags
+EXPORT_SYMBOL vmlinux 0x859b55f5	elevator_init
+EXPORT_SYMBOL vmlinux 0x85a09866	llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85c04c78	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x85d16790	tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x860ce7e7	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x860f2c61	blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x861b50b2	kunmap_high
+EXPORT_SYMBOL vmlinux 0x862c1be9	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x863543e0	invalidate_partition
+EXPORT_SYMBOL vmlinux 0x86394517	tcp_prot
+EXPORT_SYMBOL vmlinux 0x86417595	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x864a2bbe	netif_set_real_num_rx_queues
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x866bc0c7	llc_sap_close
+EXPORT_SYMBOL vmlinux 0x868a3023	inet_release
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x8695d7ab	abx500_get_chip_id
+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 0x86e94427	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x86fb9b05	bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x870bf928	radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x871c0a7e	fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872ffc82	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x874e6004	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x8765d2f6	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x876a0308	vfs_write
+EXPORT_SYMBOL vmlinux 0x876dafc3	ec_write
+EXPORT_SYMBOL vmlinux 0x877ec8cc	netdev_boot_setup_check
+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 0x87b8c88a	__napi_complete
+EXPORT_SYMBOL vmlinux 0x87d4731f	ps2_command
+EXPORT_SYMBOL vmlinux 0x87d9219d	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x87e14579	dquot_enable
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x88366d1e	blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x883ab698	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x884d3b3d	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x8850ab02	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x8873eaa7	pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x8874bce5	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0x88851a7b	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x8899dbe2	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x88c69a17	acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x88cec982	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x88ed0505	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x890c9b19	blk_free_tags
+EXPORT_SYMBOL vmlinux 0x8919d62e	phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x892b26a0	set_memory_nx
+EXPORT_SYMBOL vmlinux 0x893e274b	bio_alloc
+EXPORT_SYMBOL vmlinux 0x8949858b	schedule_work
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x8981bd26	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x89a2d973	filemap_write_and_wait_range
+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 0x89d5538d	fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811	build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89de8489	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x89f8d05d	sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x8a12cfdd	skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x8a15e39f	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x8a1615d6	mempool_create_node
+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 0x8aaff80b	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x8ac01b90	skb_store_bits
+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 0x8b186184	mdiobus_alloc
+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 0x8b5f4a2e	IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b872a6e	d_path
+EXPORT_SYMBOL vmlinux 0x8b989cf9	acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bb760a9	aio_complete
+EXPORT_SYMBOL vmlinux 0x8bb9e1f1	dev_set_group
+EXPORT_SYMBOL vmlinux 0x8bccf4a2	bdi_register
+EXPORT_SYMBOL vmlinux 0x8bd36a12	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x8be5722f	arp_send
+EXPORT_SYMBOL vmlinux 0x8beb3fcb	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x8c0ede93	md_write_end
+EXPORT_SYMBOL vmlinux 0x8c10e748	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x8c183cbe	iowrite16
+EXPORT_SYMBOL vmlinux 0x8c42b55d	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x8c438f52	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x8c4dbcc2	pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x8cc4f7fd	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x8cc79cab	iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccfcf55	dqput
+EXPORT_SYMBOL vmlinux 0x8cda8029	xen_clear_irq_pending
+EXPORT_SYMBOL vmlinux 0x8cf4353b	first_ec
+EXPORT_SYMBOL vmlinux 0x8d092f5f	generic_listxattr
+EXPORT_SYMBOL vmlinux 0x8d09c2c6	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x8d50384d	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x8d507fc8	kmap_atomic_to_page
+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 0x8d95992d	bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x8d9e5bb2	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x8da1a3cb	acpi_remove_interface
+EXPORT_SYMBOL vmlinux 0x8db6a0cf	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x8dc1f206	dev_change_flags
+EXPORT_SYMBOL vmlinux 0x8dc5358e	arp_tbl
+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 0x8dfa63cd	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x8e002cda	acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e04a843	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3cce65	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x8e524ab4	lro_flush_all
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e58b224	pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x8e75a30b	kset_unregister
+EXPORT_SYMBOL vmlinux 0x8e888ec3	cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x8e8af588	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x8e8b1996	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x8ea4e97e	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f	vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8ec712f1	journal_flush
+EXPORT_SYMBOL vmlinux 0x8ed25956	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ee99eb7	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x8f040051	pnp_is_active
+EXPORT_SYMBOL vmlinux 0x8f2703b7	wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f27339c	mca_device_read_stored_pos
+EXPORT_SYMBOL vmlinux 0x8f3481ab	cont_write_begin
+EXPORT_SYMBOL vmlinux 0x8f36d577	mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x8f48679a	rb_prev
+EXPORT_SYMBOL vmlinux 0x8f505cf5	dquot_acquire
+EXPORT_SYMBOL vmlinux 0x8f758c82	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x8f960d80	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x8f9c199c	__get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa01a71	inode_init_once
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fd854bc	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x8fe64ba3	gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x8ff4079b	pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ff8a97e	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x900ebc9b	pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x902e31ef	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x9040cbe8	d_invalidate
+EXPORT_SYMBOL vmlinux 0x904409c6	acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9047515f	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x90a1601f	dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a8243f	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x90bcf096	generic_setlease
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90cdbda5	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x90f13632	proc_dostring
+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 0x9126ec7a	xfrm_policy_walk
+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 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x9190fa51	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x919e3cd5	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x91c7ce31	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x91e0df91	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x91e604f0	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x91e874f0	phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x921c39c8	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x921f8e5f	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x9247fcc1	vfs_open
+EXPORT_SYMBOL vmlinux 0x926a6e75	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x92897e3d	default_idle
+EXPORT_SYMBOL vmlinux 0x929fd454	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x92a05f3d	idr_get_new
+EXPORT_SYMBOL vmlinux 0x92b0211e	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x92b3e450	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x92e7e86f	swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x92f6a27e	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x92fc3d1d	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x930559e2	pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9314688b	skb_push
+EXPORT_SYMBOL vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x933a9874	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x93448c57	screen_info
+EXPORT_SYMBOL vmlinux 0x9374c1cb	release_firmware
+EXPORT_SYMBOL vmlinux 0x93806086	redraw_screen
+EXPORT_SYMBOL vmlinux 0x939d7b5f	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93ac5f85	poll_schedule_timeout
+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 0x93f714d0	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x93fbf589	tty_set_operations
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x940341a0	inet_sendpage
+EXPORT_SYMBOL vmlinux 0x941ed3f8	prepare_creds
+EXPORT_SYMBOL vmlinux 0x942dcd87	pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x9443b99d	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0x9451e963	fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x945d78f5	sk_free
+EXPORT_SYMBOL vmlinux 0x94739f5d	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x947d74a1	swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x947fe229	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94a0a281	inet_bind
+EXPORT_SYMBOL vmlinux 0x94ade7ae	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x94b541b5	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94bce0cc	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x94c0d9b7	ps2_drain
+EXPORT_SYMBOL vmlinux 0x94c6464b	icmpv6_send
+EXPORT_SYMBOL vmlinux 0x94c8c66d	pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x94ccfb5a	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x94e62b71	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x94eecd9f	inet_shutdown
+EXPORT_SYMBOL vmlinux 0x94fe4b13	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x951adfaa	xfrm_stateonly_find
+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 0x9547d75d	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x9549af2a	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x955efc70	user_path_at
+EXPORT_SYMBOL vmlinux 0x9578bcf4	blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x9580f7bc	vm_event_states
+EXPORT_SYMBOL vmlinux 0x95819c05	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x95b4b77e	blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x95d6331e	path_put
+EXPORT_SYMBOL vmlinux 0x95e84737	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x95f89a33	_raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x9600168c	kobject_add
+EXPORT_SYMBOL vmlinux 0x96058edd	request_firmware
+EXPORT_SYMBOL vmlinux 0x9606b305	udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x961656c8	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x96352040	follow_down
+EXPORT_SYMBOL vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0x9660cf62	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x966c6ffc	blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x967d7541	md_check_recovery
+EXPORT_SYMBOL vmlinux 0x968428ac	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96958bce	scsi_cmd_blk_ioctl
+EXPORT_SYMBOL vmlinux 0x9696ac72	rename_lock
+EXPORT_SYMBOL vmlinux 0x9697e146	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x96a31e0b	kill_pid
+EXPORT_SYMBOL vmlinux 0x96a592f6	seq_puts
+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 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x976e9163	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x9789b3b5	dm_register_target
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97ad1c35	names_cachep
+EXPORT_SYMBOL vmlinux 0x97b606ac	fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x97b92f0c	kblockd_schedule_delayed_work
+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 0x97f3dc3e	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x981e3aaa	bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x9820b644	warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0x9823c2b1	netif_napi_add
+EXPORT_SYMBOL vmlinux 0x98333de3	ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x98602ed7	dev_kfree_skb_any
+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 0x98de61fa	simple_link
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x99052a84	acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x9926a732	update_region
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x9997de5f	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99bfbe39	get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99cdc86b	sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x9a11fdff	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a1ec4c8	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x9a371784	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x9a43f33c	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x9a530e3c	skb_clone
+EXPORT_SYMBOL vmlinux 0x9a68a5c5	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x9a6a83f9	cmos_lock
+EXPORT_SYMBOL vmlinux 0x9aaf7e15	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9ac4b7cf	llc_sap_find
+EXPORT_SYMBOL vmlinux 0x9b0674e6	file_open_root
+EXPORT_SYMBOL vmlinux 0x9b314093	padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b612d86	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0x9b69e07d	skb_recycle
+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 0x9bc72767	vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x9bdaa010	unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x9be62ffe	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x9be7cd4a	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x9bf12802	page_readlink
+EXPORT_SYMBOL vmlinux 0x9bf68e21	pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+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 0x9c4137d6	skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x9c491f60	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c574142	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x9c5f81da	cpu_rmap_add
+EXPORT_SYMBOL vmlinux 0x9c7df650	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x9c88a2d0	sock_i_ino
+EXPORT_SYMBOL vmlinux 0x9c8ecd26	abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x9ca6a092	mpage_readpage
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc42dc3	__blk_end_request
+EXPORT_SYMBOL vmlinux 0x9cc66fb5	genl_register_ops
+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 0x9d2194f9	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x9d295ed7	blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x9d296f50	genl_register_family
+EXPORT_SYMBOL vmlinux 0x9d33ef5e	acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4b3cae	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x9d60f328	llc_sap_open
+EXPORT_SYMBOL vmlinux 0x9d6d0df0	swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x9d982765	blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x9da2cdf1	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x9dcb6748	atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9de1f48c	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x9de5198f	dev_addr_init
+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 0x9e42aec2	genphy_read_status
+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 0x9e682f34	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e955cd8	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x9e9ca625	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49	__sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebd4c04	adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9f2a6044	dst_destroy
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f48115e	neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x9f491e5d	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x9f80e804	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x9f838b41	pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x9f8af360	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x9f982b4c	jbd2_journal_destroy
+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 0x9fbee6ae	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x9fcaaee8	mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa0198e29	nf_setsockopt
+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 0xa06fc24b	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xa07ed110	xz_dec_init
+EXPORT_SYMBOL vmlinux 0xa09a4dfb	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xa09fc008	input_flush_device
+EXPORT_SYMBOL vmlinux 0xa0a890de	request_key_async_with_auxdata
+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 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0ec3219	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa1176147	pci_clear_master
+EXPORT_SYMBOL vmlinux 0xa119f480	phy_stop
+EXPORT_SYMBOL vmlinux 0xa11b6565	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1399110	register_md_personality
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa168a8f5	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xa1715001	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa1805d2a	otg_put_transceiver
+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 0xa1bf76f9	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xa1c5a3b3	cleancache_enabled
+EXPORT_SYMBOL vmlinux 0xa1c76e0a	_cond_resched
+EXPORT_SYMBOL vmlinux 0xa1dce1f6	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xa1f61226	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xa1f9fc05	ethtool_op_set_ufo
+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 0xa23f2a82	dev_addr_del
+EXPORT_SYMBOL vmlinux 0xa26f6f4a	pci_choose_state
+EXPORT_SYMBOL vmlinux 0xa281d414	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa285da49	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xa29e1693	netif_skb_features
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2af8117	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0xa2b82ce2	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa2ef34d7	rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f17c63	bioset_create
+EXPORT_SYMBOL vmlinux 0xa3036b70	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xa323a255	do_truncate
+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 0xa34336e1	vfs_rename
+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 0xa363dab4	udp_table
+EXPORT_SYMBOL vmlinux 0xa3671bfe	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xa3794560	pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xa380fb0b	get_io_context
+EXPORT_SYMBOL vmlinux 0xa3b4b367	tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xa3cea1a6	__put_cred
+EXPORT_SYMBOL vmlinux 0xa3de105c	pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xa3e4ca6c	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa3e53745	bio_put
+EXPORT_SYMBOL vmlinux 0xa3f51337	sock_no_accept
+EXPORT_SYMBOL vmlinux 0xa3f520c3	get_user_pages
+EXPORT_SYMBOL vmlinux 0xa3f52e9a	crypto_sha1_update
+EXPORT_SYMBOL vmlinux 0xa41736ca	pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xa41d55b8	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xa422df6e	skb_queue_head
+EXPORT_SYMBOL vmlinux 0xa4236b90	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xa430047c	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa43d1e72	vc_resize
+EXPORT_SYMBOL vmlinux 0xa448b19d	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa47643b8	unlock_rename
+EXPORT_SYMBOL vmlinux 0xa47ceb9c	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xa4ae6e2f	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xa4b1907a	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xa4b5e5c9	netpoll_setup
+EXPORT_SYMBOL vmlinux 0xa4b94fea	iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4bf9c1d	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0xa4c0b6e4	tty_register_driver
+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 0xa500fc70	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xa5143991	skb_insert
+EXPORT_SYMBOL vmlinux 0xa51a27a6	consume_skb
+EXPORT_SYMBOL vmlinux 0xa51cdfe8	__FIXADDR_TOP
+EXPORT_SYMBOL vmlinux 0xa5365f38	pnp_unregister_card_driver
+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 0xa5da0abd	acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0xa5e739f4	dget_parent
+EXPORT_SYMBOL vmlinux 0xa5e99861	input_mt_init_slots
+EXPORT_SYMBOL vmlinux 0xa6064db5	dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xa60f20e1	request_key
+EXPORT_SYMBOL vmlinux 0xa62e6e4f	acpi_get_table_with_size
+EXPORT_SYMBOL vmlinux 0xa63d85ab	slhc_remember
+EXPORT_SYMBOL vmlinux 0xa643b53a	journal_errno
+EXPORT_SYMBOL vmlinux 0xa648438c	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xa65dd37d	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xa668eb3e	submit_bio
+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 0xa695d683	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xa6970398	__kfifo_to_user_r
+EXPORT_SYMBOL vmlinux 0xa6ac0ad7	kill_fasync
+EXPORT_SYMBOL vmlinux 0xa6b13658	__percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xa6c02bc8	inet_listen
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6fe233b	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xa70bc986	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xa70fabbe	release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa716f072	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xa71b2c72	pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xa71e7463	__first_cpu
+EXPORT_SYMBOL vmlinux 0xa747ac49	xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xa75f5398	bdget
+EXPORT_SYMBOL vmlinux 0xa7742968	scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xa77f26bb	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0xa7971772	scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xa7a3999e	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xa7edf601	blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xa8223905	blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0xa8232c78	strtobool
+EXPORT_SYMBOL vmlinux 0xa8756491	dev_driver_string
+EXPORT_SYMBOL vmlinux 0xa894f159	wireless_send_event
+EXPORT_SYMBOL vmlinux 0xa8a6f639	__check_region
+EXPORT_SYMBOL vmlinux 0xa8abc838	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xa8c38e10	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xa8d68abd	acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8fb6345	pnp_find_dev
+EXPORT_SYMBOL vmlinux 0xa8fef7bb	security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa90e8405	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xa912ff0d	__inet6_hash
+EXPORT_SYMBOL vmlinux 0xa91b5561	acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa91d9c9e	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xa9372955	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xa9537a47	dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xa9596b43	padata_free
+EXPORT_SYMBOL vmlinux 0xa95e70bf	padata_add_cpu
+EXPORT_SYMBOL vmlinux 0xa968d23d	uart_write_wakeup
+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 0xa9c1b627	intel_gtt_insert_sg_entries
+EXPORT_SYMBOL vmlinux 0xa9c7c907	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xa9f98a24	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xaa04059c	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xaa273a83	tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xaa2a39a6	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xaa60d117	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xaa6388a5	pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xaa667732	tty_name
+EXPORT_SYMBOL vmlinux 0xaa6901ac	__kfifo_out_r
+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 0xaa97053f	get_write_access
+EXPORT_SYMBOL vmlinux 0xaaa3ec95	generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xaaab8067	cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaab9f7e7	node_states
+EXPORT_SYMBOL vmlinux 0xaacb7b66	unregister_8022_client
+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 0xab259add	dev_notice
+EXPORT_SYMBOL vmlinux 0xab28271c	i8253_lock
+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 0xab6e6483	ppp_input
+EXPORT_SYMBOL vmlinux 0xab74491f	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xab770678	rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab84d9aa	dev_add_pack
+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 0xabd0c91c	rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabea96c6	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xabeb4cb5	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xac0ba8c1	blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac1a7005	dput
+EXPORT_SYMBOL vmlinux 0xac2e97b0	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xac35daa6	devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xac36bc58	register_8022_client
+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 0xac78cf33	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xac78f3e3	pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xac7ce326	mmc_can_sanitize
+EXPORT_SYMBOL vmlinux 0xac7db58f	give_up_console
+EXPORT_SYMBOL vmlinux 0xac83cb16	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xac856456	xfrm_input
+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 0xacacb76a	pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xacc930d4	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xace506b8	mb_cache_entry_get
+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 0xad242fbd	mfd_cell_disable
+EXPORT_SYMBOL vmlinux 0xad24c82c	tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad5c7466	check_disk_change
+EXPORT_SYMBOL vmlinux 0xad7480b5	mca_device_claimed
+EXPORT_SYMBOL vmlinux 0xad84bef8	dm_table_event
+EXPORT_SYMBOL vmlinux 0xad887003	register_framebuffer
+EXPORT_SYMBOL vmlinux 0xadaa2657	cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadbb9ff3	tty_hangup
+EXPORT_SYMBOL vmlinux 0xadcac4a3	vfsmount_lock_local_unlock_cpu
+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 0xae3c7839	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xae44d904	security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xae70d57f	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xae739097	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xae91c8b2	input_alloc_absinfo
+EXPORT_SYMBOL vmlinux 0xaea976a8	acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaeac3a7a	kill_pgrp
+EXPORT_SYMBOL vmlinux 0xaebaf265	bio_split
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaedd86ae	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xaf124cbd	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xaf2491a6	inet_frags_exit_net
+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 0xaf848b71	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xaf85574d	pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xaf8dbe08	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xaf8ea913	pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xaf91d89f	__kernel_param_lock
+EXPORT_SYMBOL vmlinux 0xafa21bc8	udp_prot
+EXPORT_SYMBOL vmlinux 0xafa3a1c8	neigh_update
+EXPORT_SYMBOL vmlinux 0xafae0a1c	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xafb3d5fd	xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xafb551a5	pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb0207ecf	___ratelimit
+EXPORT_SYMBOL vmlinux 0xb0268ebd	agp_enable
+EXPORT_SYMBOL vmlinux 0xb045da85	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xb05a75f1	tty_mutex
+EXPORT_SYMBOL vmlinux 0xb077ef32	acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb0882be0	d_lookup
+EXPORT_SYMBOL vmlinux 0xb0a8fd0a	intel_gtt_unmap_memory
+EXPORT_SYMBOL vmlinux 0xb0b35322	generic_file_open
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0e452dd	xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xb0f0fffa	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xb12098c1	bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1350fac	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xb13f1a2f	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xb1645a2e	sg_free_table
+EXPORT_SYMBOL vmlinux 0xb18f3981	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xb19760c3	bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1acef83	sk_stream_wait_memory
+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 0xb1cfad22	rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1d9523e	wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb1eabeee	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0xb1f10aaf	__skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xb1fe451c	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xb219d56c	wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2744b36	down_write_trylock
+EXPORT_SYMBOL vmlinux 0xb27d00dd	pci_disable_msi
+EXPORT_SYMBOL vmlinux 0xb2838c16	__dst_free
+EXPORT_SYMBOL vmlinux 0xb2875557	filemap_fault
+EXPORT_SYMBOL vmlinux 0xb2a006d5	kernel_read
+EXPORT_SYMBOL vmlinux 0xb2c06587	register_cdrom
+EXPORT_SYMBOL vmlinux 0xb2efb6be	mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2f8aac8	km_state_expired
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb	__put_user_4
+EXPORT_SYMBOL vmlinux 0xb30ccb4b	rps_may_expire_flow
+EXPORT_SYMBOL vmlinux 0xb3284531	acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb332ad0c	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xb334810a	bdi_init
+EXPORT_SYMBOL vmlinux 0xb33718d8	dev_disable_lro
+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 0xb3e0590d	acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb4286a2f	inet_ioctl
+EXPORT_SYMBOL vmlinux 0xb4372f24	pci_save_state
+EXPORT_SYMBOL vmlinux 0xb4390f9a	mcount
+EXPORT_SYMBOL vmlinux 0xb43c8124	pci_enable_obff
+EXPORT_SYMBOL vmlinux 0xb44caa13	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xb45578b8	memscan
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb472bbb4	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb49f30ad	bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xb4ba3de3	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xb4be5e33	cdrom_release
+EXPORT_SYMBOL vmlinux 0xb4e77f99	mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb50f1772	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xb51d6f85	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xb52ee8be	intel_gtt_clear_range
+EXPORT_SYMBOL vmlinux 0xb5364e80	dev_get_by_flags_rcu
+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 0xb5845d35	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0xb58d4c44	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xb592d2e2	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xb59e1f83	pskb_copy
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5adae29	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xb5ca1c46	slhc_free
+EXPORT_SYMBOL vmlinux 0xb5e4e267	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xb5e778ca	__kfree_skb
+EXPORT_SYMBOL vmlinux 0xb5ee6415	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xb5fb870b	commit_creds
+EXPORT_SYMBOL vmlinux 0xb60c2857	simple_setattr
+EXPORT_SYMBOL vmlinux 0xb6244511	sg_init_one
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb62f4280	generic_readlink
+EXPORT_SYMBOL vmlinux 0xb6588e7a	idr_remove
+EXPORT_SYMBOL vmlinux 0xb661399f	blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xb66df172	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb690e262	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xb69464fb	find_inode_number
+EXPORT_SYMBOL vmlinux 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b21c34	do_munmap
+EXPORT_SYMBOL vmlinux 0xb6c235e6	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cc4de2	tty_check_change
+EXPORT_SYMBOL vmlinux 0xb6ed1e53	strncpy
+EXPORT_SYMBOL vmlinux 0xb73248ac	init_net
+EXPORT_SYMBOL vmlinux 0xb74d8cad	pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xb756297b	jbd2_journal_set_features
+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 0xb77992f6	lock_may_write
+EXPORT_SYMBOL vmlinux 0xb78c61e8	param_ops_bool
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7f8a7bd	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb825e56a	scsi_host_put
+EXPORT_SYMBOL vmlinux 0xb82b148a	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xb82c90f8	set_page_dirty
+EXPORT_SYMBOL vmlinux 0xb82f4c1b	abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb84788bc	find_get_page
+EXPORT_SYMBOL vmlinux 0xb84c6162	sock_common_getsockopt
+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 0xb8e25037	tty_flip_buffer_push
+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 0xb9330ad7	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xb9533aa5	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xb960dace	dump_trace
+EXPORT_SYMBOL vmlinux 0xb98a0185	rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9909eb6	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xb99cf582	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0xb9a7f1af	mii_link_ok
+EXPORT_SYMBOL vmlinux 0xb9ab6e9f	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xb9ae656a	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xb9b0b923	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xb9c69a99	scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb9f7fc9a	__brelse
+EXPORT_SYMBOL vmlinux 0xb9f8d764	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xb9fabf73	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xb9fd2205	add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xb9ff2ec8	dma_pool_create
+EXPORT_SYMBOL vmlinux 0xba2a3694	fb_pan_display
+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 0xba8ea6ad	rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbab02fd6	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0xbabb5c95	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xbaf88488	tcf_em_register
+EXPORT_SYMBOL vmlinux 0xbafbcfb6	con_is_bound
+EXPORT_SYMBOL vmlinux 0xbb0351a4	tty_devnum
+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 0xbb6b76a6	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xbb78a248	inet_register_protosw
+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 0xbba5956f	journal_set_features
+EXPORT_SYMBOL vmlinux 0xbbd37b92	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0xbbd9e245	security_file_permission
+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 0xbc7140c1	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xbca183e6	alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xbcb01c58	lookup_one_len
+EXPORT_SYMBOL vmlinux 0xbcc1c0aa	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xbcc308bb	strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcdff7a3	unload_nls
+EXPORT_SYMBOL vmlinux 0xbd016a37	fb_class
+EXPORT_SYMBOL vmlinux 0xbd1eb182	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xbd33dff7	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xbd66e459	simple_write_begin
+EXPORT_SYMBOL vmlinux 0xbd6dc7f5	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xbd819efb	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xbd8bf071	pci_dev_get
+EXPORT_SYMBOL vmlinux 0xbd9912cb	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0xbdc20c68	intel_gtt_get
+EXPORT_SYMBOL vmlinux 0xbdd66f9e	simple_readpage
+EXPORT_SYMBOL vmlinux 0xbdf5c25c	rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118	nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe3be62d	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xbe3f22ca	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xbe4a8833	d_move
+EXPORT_SYMBOL vmlinux 0xbe5b3468	scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xbe5ef38b	kthread_bind
+EXPORT_SYMBOL vmlinux 0xbe7e3e07	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xbe9a8968	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xbec49960	pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0xbeca9da8	scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0xbed83b67	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xbef1af04	i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf30f233	llc_add_pack
+EXPORT_SYMBOL vmlinux 0xbf6163df	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xbf70e9a5	__cleancache_put_page
+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 0xbfb47308	bdi_unregister
+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 0xc0049454	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xc011b95a	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0xc01cf848	_raw_read_lock
+EXPORT_SYMBOL vmlinux 0xc01eed33	__copy_from_user_ll_nozero
+EXPORT_SYMBOL vmlinux 0xc01f365a	netdev_info
+EXPORT_SYMBOL vmlinux 0xc03fc99f	__pagevec_release
+EXPORT_SYMBOL vmlinux 0xc0530fa2	kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc068440e	__kfifo_alloc
+EXPORT_SYMBOL vmlinux 0xc06e97cd	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xc0741c80	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xc0763484	rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xc085592e	mdiobus_free
+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 0xc0d33c98	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xc0d39b77	dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0xc0d499e2	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xc11198ab	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc11f97b6	dcb_ieee_setapp
+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 0xc1805396	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xc18b0d86	pci_set_master
+EXPORT_SYMBOL vmlinux 0xc19cc29a	nla_put
+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 0xc1c30900	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0xc1d1e61d	generic_writepages
+EXPORT_SYMBOL vmlinux 0xc1d66626	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xc225b77e	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xc232dfa6	key_task_permission
+EXPORT_SYMBOL vmlinux 0xc2424641	agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc24ee251	inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc269e279	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xc26b0020	registered_fb
+EXPORT_SYMBOL vmlinux 0xc280a525	__copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc28b4f2f	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xc2a0a02c	kernel_listen
+EXPORT_SYMBOL vmlinux 0xc2bea369	vfs_readdir
+EXPORT_SYMBOL vmlinux 0xc2d711e1	krealloc
+EXPORT_SYMBOL vmlinux 0xc2deb81b	filemap_flush
+EXPORT_SYMBOL vmlinux 0xc2e587d1	reset_devices
+EXPORT_SYMBOL vmlinux 0xc2f5d139	poll_initwait
+EXPORT_SYMBOL vmlinux 0xc2f916b3	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xc30a5e3f	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xc316b98c	jiffies_to_clock_t
+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 0xc33f6005	write_dirty_buffer
+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 0xc3cee036	skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d313b4	jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc3ddde56	sock_alloc_send_skb
+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 0xc4347225	agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0xc4554217	up
+EXPORT_SYMBOL vmlinux 0xc474b1db	alloc_file
+EXPORT_SYMBOL vmlinux 0xc48fcfbe	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc49c0669	register_snap_client
+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 0xc50e5b65	sock_release
+EXPORT_SYMBOL vmlinux 0xc5290322	mount_single
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64	ioread16
+EXPORT_SYMBOL vmlinux 0xc56148da	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xc56cb21a	jbd2_journal_stop
+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 0xc5a809ff	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc5a84436	fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xc5b58d1e	find_get_pages_tag
+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 0xc6064f6a	pcim_iomap_table
+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 0xc66c4849	llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xc6890ef3	acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc6aec70b	pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0xc6b06bcb	i2c_master_send
+EXPORT_SYMBOL vmlinux 0xc6b636c0	netdev_features_change
+EXPORT_SYMBOL vmlinux 0xc6b8e58a	scsi_put_command
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc70efe24	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc72350c6	security_d_instantiate
+EXPORT_SYMBOL vmlinux 0xc72e5575	save_mount_options
+EXPORT_SYMBOL vmlinux 0xc738239e	pci_disable_link_state_locked
+EXPORT_SYMBOL vmlinux 0xc73ac435	i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xc7600ff3	unregister_console
+EXPORT_SYMBOL vmlinux 0xc768de19	cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xc76eaabe	inet_getname
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc789c53f	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xc7998cee	jbd2_journal_revoke
+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 0xc7b43e17	search_binary_handler
+EXPORT_SYMBOL vmlinux 0xc7d2b7bc	locks_free_lock
+EXPORT_SYMBOL vmlinux 0xc7e70a14	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xc7e9a028	put_io_context
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc802aa02	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xc80b8b17	inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc897c382	sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a145dc	ata_print_version
+EXPORT_SYMBOL vmlinux 0xc8a9707c	__blk_end_request_all
+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 0xc8b84c2e	unregister_snap_client
+EXPORT_SYMBOL vmlinux 0xc8ce1cbf	sock_create_lite
+EXPORT_SYMBOL vmlinux 0xc8e9d244	fb_blank
+EXPORT_SYMBOL vmlinux 0xc8ec065e	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xc8edc0af	bdev_read_only
+EXPORT_SYMBOL vmlinux 0xc91c28b0	tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xc929a99d	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xc94fa003	irq_stat
+EXPORT_SYMBOL vmlinux 0xc95fc38d	cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xc9672a90	freeze_bdev
+EXPORT_SYMBOL vmlinux 0xc983c850	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xc98666d4	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc9ab2eef	acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9b5fd26	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xc9c15f96	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xc9d4d4a0	otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xc9dcd8a4	free_buffer_head
+EXPORT_SYMBOL vmlinux 0xc9de9fa1	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xc9f97f5e	dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xc9fd15e1	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xc9fd397e	kernel_bind
+EXPORT_SYMBOL vmlinux 0xca012154	dev_uc_init
+EXPORT_SYMBOL vmlinux 0xca13ca45	console_start
+EXPORT_SYMBOL vmlinux 0xca19102b	ht_create_irq
+EXPORT_SYMBOL vmlinux 0xca1e4e4c	inet_accept
+EXPORT_SYMBOL vmlinux 0xca4a4a39	blk_register_region
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca5ee64d	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0xca8acc78	acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcac144a3	fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xcacb0550	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xcacd3b6a	netdev_printk
+EXPORT_SYMBOL vmlinux 0xcad02e35	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0xcb33ac68	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xcb44ec37	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xcb451e56	idr_init
+EXPORT_SYMBOL vmlinux 0xcb48a677	pci_find_bus
+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 0xcb808f1d	set_binfmt
+EXPORT_SYMBOL vmlinux 0xcb8fcbf9	journal_invalidatepage
+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 0xcba7085a	invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbd1cea4	blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xcbeb52d4	soft_cursor
+EXPORT_SYMBOL vmlinux 0xcbeccf7e	gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xcbfd706f	dcb_ieee_getapp_mask
+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 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 0xcc988780	vfs_llseek
+EXPORT_SYMBOL vmlinux 0xcc9ae80c	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xccba0ffb	md_error
+EXPORT_SYMBOL vmlinux 0xccc7c7c3	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xcccd9a1d	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xccd9108a	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0xcd255c8e	pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xcd279169	nla_find
+EXPORT_SYMBOL vmlinux 0xcd34d312	acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0xcd37de37	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xcd507b8f	input_get_keycode
+EXPORT_SYMBOL vmlinux 0xcd75afb6	scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xcda7cdec	bioset_free
+EXPORT_SYMBOL vmlinux 0xcdacdcf4	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xcdcae876	register_filesystem
+EXPORT_SYMBOL vmlinux 0xcddd486f	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xcde963eb	bdi_destroy
+EXPORT_SYMBOL vmlinux 0xcdef8a36	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce223f86	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xce24de2c	acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0xce2840e7	irq_set_irq_wake
+EXPORT_SYMBOL vmlinux 0xce2d8a96	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xce385cad	nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xce4904a4	acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f	zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce79c419	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xceb78f83	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xcecd40dc	cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xcef51982	kstrtou16
+EXPORT_SYMBOL vmlinux 0xcefcd99a	serial8250_unregister_port
+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 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfcd681f	d_delete
+EXPORT_SYMBOL vmlinux 0xcfd0ff75	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xcfe05d4d	register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcff79c40	single_open
+EXPORT_SYMBOL vmlinux 0xcff9b2f8	dm_put_device
+EXPORT_SYMBOL vmlinux 0xd00808cb	udp_poll
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd02bdcfa	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xd02cad48	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xd0368a74	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xd0487d70	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xd070b09b	dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0xd08197fa	acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd09b7848	__sk_dst_check
+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 0xd107e115	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd110a2f4	i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xd110b31d	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xd11c0dc1	__kernel_param_unlock
+EXPORT_SYMBOL vmlinux 0xd11f3674	bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd12038ac	jbd2_journal_invalidatepage
+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 0xd156b835	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xd172cb8d	netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xd18b6eb2	acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd18b75ff	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xd196c9be	kstrtos16_from_user
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3	smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd2147e84	__bio_clone
+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 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 0xd2e6a582	acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd303f3c8	rt6_lookup
+EXPORT_SYMBOL vmlinux 0xd30f1a80	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xd3103c60	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd35e249a	_raw_read_lock_irq
+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 0xd3dcab0b	flex_array_alloc
+EXPORT_SYMBOL vmlinux 0xd414c508	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xd4158361	__register_binfmt
+EXPORT_SYMBOL vmlinux 0xd4256feb	phy_start
+EXPORT_SYMBOL vmlinux 0xd42c4078	dst_alloc
+EXPORT_SYMBOL vmlinux 0xd4391057	pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xd4425585	netdev_emerg
+EXPORT_SYMBOL vmlinux 0xd46f48e8	cdev_init
+EXPORT_SYMBOL vmlinux 0xd48aee52	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xd48eb777	user_path_create
+EXPORT_SYMBOL vmlinux 0xd4a961ce	simple_release_fs
+EXPORT_SYMBOL vmlinux 0xd4baefe3	follow_pfn
+EXPORT_SYMBOL vmlinux 0xd4e5c9c6	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0xd4e8e9e8	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xd500245c	kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xd50bf9fa	sockfd_lookup
+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 0xd56f0729	inet_twsk_deschedule
+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 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 0xd6825afa	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0xd6b33026	cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6d83a23	blk_start_queue
+EXPORT_SYMBOL vmlinux 0xd6e59640	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd7001850	pci_restore_state
+EXPORT_SYMBOL vmlinux 0xd7286a50	dcb_getapp
+EXPORT_SYMBOL vmlinux 0xd75c79df	smp_call_function
+EXPORT_SYMBOL vmlinux 0xd77a3707	pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77ce55f	journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xd77d2dd6	dquot_alloc
+EXPORT_SYMBOL vmlinux 0xd780977b	__quota_error
+EXPORT_SYMBOL vmlinux 0xd7908c57	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xd791f2d4	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a13e71	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xd7ad0abd	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xd7bd3af2	add_wait_queue
+EXPORT_SYMBOL vmlinux 0xd7cada5f	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xd7dd777b	reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7df5a65	__free_pages
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f3a5ff	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xd803779c	fb_find_mode
+EXPORT_SYMBOL vmlinux 0xd816694f	skb_trim
+EXPORT_SYMBOL vmlinux 0xd818a08a	__dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xd822e250	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xd82648ac	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0xd8287e23	iw_handler_get_thrspy
+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 0xd85f7e2b	alloc_trdev
+EXPORT_SYMBOL vmlinux 0xd86123f6	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xd86a77f5	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0xd86c3283	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xd88ace08	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xd89a064c	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xd89da37f	movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95	in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8ad2089	journal_wipe
+EXPORT_SYMBOL vmlinux 0xd8ca28c9	pci_bus_type
+EXPORT_SYMBOL vmlinux 0xd8e11308	splice_from_pipe_end
+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 0xd954b794	d_drop
+EXPORT_SYMBOL vmlinux 0xd95659d1	__devm_request_region
+EXPORT_SYMBOL vmlinux 0xd95ce88a	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0xd969b2c7	amd_e400_c1e_detected
+EXPORT_SYMBOL vmlinux 0xd97889f1	agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0xd98567e4	get_disk
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a4ec1a	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xd9a5b5bb	flush_signals
+EXPORT_SYMBOL vmlinux 0xd9ac29af	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xd9b764c4	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xd9c272aa	mca_mark_as_unused
+EXPORT_SYMBOL vmlinux 0xd9da38fc	nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xd9f2c3f3	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xd9f74c0f	unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xda08c0d7	pcibios_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xda0a6b0e	acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda23a743	__napi_schedule
+EXPORT_SYMBOL vmlinux 0xda3e496c	complete_request_key
+EXPORT_SYMBOL vmlinux 0xda435af0	skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xda676fa0	jbd2_journal_errno
+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 0xdaa06122	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xdaa57ec3	totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaaa431c	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xdab5883b	mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0xdae86fd2	kmap_high
+EXPORT_SYMBOL vmlinux 0xdaf3427d	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0xdaf9e445	datagram_poll
+EXPORT_SYMBOL vmlinux 0xdafe10fd	ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdb760f52	__kfifo_free
+EXPORT_SYMBOL vmlinux 0xdb79b576	__lock_page
+EXPORT_SYMBOL vmlinux 0xdb852282	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0xdb864d65	iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdb9e2c22	posix_acl_create
+EXPORT_SYMBOL vmlinux 0xdbb052c8	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xdbb10583	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xdbb14bec	serial8250_set_isa_configurator
+EXPORT_SYMBOL vmlinux 0xdbcd416e	sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbf9df9b	__page_symlink
+EXPORT_SYMBOL vmlinux 0xdc029509	release_sock
+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 0xdc57f532	acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0xdcc46b52	simple_write_end
+EXPORT_SYMBOL vmlinux 0xdccca046	override_creds
+EXPORT_SYMBOL vmlinux 0xdcfa392e	netpoll_send_udp
+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 0xdd312a37	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xdd73a191	dma_supported
+EXPORT_SYMBOL vmlinux 0xdd785666	simple_fill_super
+EXPORT_SYMBOL vmlinux 0xdd79c05e	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0xdda7bdf3	textsearch_register
+EXPORT_SYMBOL vmlinux 0xddb4aa92	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xddd6d757	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xddd6fa29	key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xddd740df	pci_get_device
+EXPORT_SYMBOL vmlinux 0xdddf0d4d	write_cache_pages
+EXPORT_SYMBOL vmlinux 0xde14978a	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xde93f73a	inode_permission
+EXPORT_SYMBOL vmlinux 0xde9b17ed	agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdeadb5a8	inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0xdeae7acc	proto_unregister
+EXPORT_SYMBOL vmlinux 0xdec4c7d1	acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0xdec778f6	ida_get_new
+EXPORT_SYMBOL vmlinux 0xded0fff5	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xdee3b0b2	brioctl_set
+EXPORT_SYMBOL vmlinux 0xdeed5e80	mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0xdef23a46	__sock_create
+EXPORT_SYMBOL vmlinux 0xdf0da3cc	acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf0f8fb1	end_writeback
+EXPORT_SYMBOL vmlinux 0xdf1a10f0	genphy_suspend
+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 0xdf507b66	fb_set_var
+EXPORT_SYMBOL vmlinux 0xdf52f94e	skb_make_writable
+EXPORT_SYMBOL vmlinux 0xdf60cc27	__print_symbol
+EXPORT_SYMBOL vmlinux 0xdf7f9c09	may_umount_tree
+EXPORT_SYMBOL vmlinux 0xdf82bb6d	udp_ioctl
+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 0xdf9ef85d	ping_prot
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xdfc8c051	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xdfe24fb4	inet6_release
+EXPORT_SYMBOL vmlinux 0xe002a889	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xe009a269	ps2_init
+EXPORT_SYMBOL vmlinux 0xe0246e51	dm_get_device
+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 0xe0bded35	sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xe0f22f57	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0xe0f3b6e4	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe10a2799	pci_set_ltr
+EXPORT_SYMBOL vmlinux 0xe11b4579	inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xe13cd8a7	dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe147be90	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0xe15dc9c3	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xe16df5a1	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe17828cc	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xe1a74ae4	vc_cons
+EXPORT_SYMBOL vmlinux 0xe1ac9876	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xe1af8f1d	dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xe1c61100	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xe1e7e043	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xe1ea6649	mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe204bcda	lookup_bdev
+EXPORT_SYMBOL vmlinux 0xe21f49ca	iterate_supers_type
+EXPORT_SYMBOL vmlinux 0xe22e929e	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xe23ae481	blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe2496296	padata_stop
+EXPORT_SYMBOL vmlinux 0xe24d3a97	jiffies_64
+EXPORT_SYMBOL vmlinux 0xe26367b8	put_tty_driver
+EXPORT_SYMBOL vmlinux 0xe2b28266	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xe2b8954e	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0xe2d5255a	strcmp
+EXPORT_SYMBOL vmlinux 0xe2d83f33	mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xe2e3a625	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL vmlinux 0xe2ee6c32	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe2fc4044	kmap
+EXPORT_SYMBOL vmlinux 0xe319eb24	acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0xe3585ee2	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xe39e9712	path_get
+EXPORT_SYMBOL vmlinux 0xe3bf3cbe	set_create_files_as
+EXPORT_SYMBOL vmlinux 0xe3c6079e	atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3d6f284	fb_find_mode_cvt
+EXPORT_SYMBOL vmlinux 0xe3fbe148	acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe3ff81b5	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xe40a752a	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xe41433bd	unlock_super
+EXPORT_SYMBOL vmlinux 0xe414427e	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xe4173d5a	pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xe43617f7	acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe43f784e	skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xe448ac97	arp_invalidate
+EXPORT_SYMBOL vmlinux 0xe44ec1d0	buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xe45f60d8	__wake_up
+EXPORT_SYMBOL vmlinux 0xe484e35f	ioread32
+EXPORT_SYMBOL vmlinux 0xe485a88f	setup_arg_pages
+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 0xe523ad75	synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe530d757	acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe53c1ccf	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0xe53fb84f	input_close_device
+EXPORT_SYMBOL vmlinux 0xe567f86d	pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xe57878a1	in6_pton
+EXPORT_SYMBOL vmlinux 0xe57abfd3	ip_check_defrag
+EXPORT_SYMBOL vmlinux 0xe5867808	dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5965348	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xe5adafa2	fd_install
+EXPORT_SYMBOL vmlinux 0xe5c78a99	do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe601c05a	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xe604b131	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xe60d3a1a	__lru_cache_add
+EXPORT_SYMBOL vmlinux 0xe613668d	intel_gmch_remove
+EXPORT_SYMBOL vmlinux 0xe61a7f18	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe6210a18	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0xe6494d9e	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+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 0xe6ceeeaa	d_add_ci
+EXPORT_SYMBOL vmlinux 0xe6d76f29	bio_add_page
+EXPORT_SYMBOL vmlinux 0xe6ebc016	key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6f153f5	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed	acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71fb9b2	blkdev_get
+EXPORT_SYMBOL vmlinux 0xe7246920	udp_proc_register
+EXPORT_SYMBOL vmlinux 0xe72a7835	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xe73c985a	phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xe73dceab	sync_blockdev
+EXPORT_SYMBOL vmlinux 0xe744886d	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xe7556aae	bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xe75972db	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0xe75f5fb6	journal_try_to_free_buffers
+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 0xe785b88a	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xe78c9c2c	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xe78f9c4b	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xe7955a8a	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xe7a664c4	nf_hooks
+EXPORT_SYMBOL vmlinux 0xe7a81967	audit_log_secctx
+EXPORT_SYMBOL vmlinux 0xe7d4daac	seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7d8980c	pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8304a3d	mem_map
+EXPORT_SYMBOL vmlinux 0xe8485de3	pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xe8543fce	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0xe858b6fc	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe8823b16	ether_setup
+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 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe90ca8e2	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe9179d91	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xe94d98bc	posix_lock_file
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe9612ea0	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xe96b5ab5	force_sig
+EXPORT_SYMBOL vmlinux 0xe988ec11	dev_err
+EXPORT_SYMBOL vmlinux 0xe98a7fef	md_flush_request
+EXPORT_SYMBOL vmlinux 0xe9935211	would_dump
+EXPORT_SYMBOL vmlinux 0xe997667b	wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9ad7e69	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xe9c3e00e	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xe9c5a3eb	pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xe9d72e67	sock_no_setsockopt
+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 0xea2b3406	sk_stream_error
+EXPORT_SYMBOL vmlinux 0xea36e29d	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xea5bac94	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xea7351bf	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL vmlinux 0xea7b8a44	acpi_install_interface
+EXPORT_SYMBOL vmlinux 0xea88d6ab	fifo_create_dflt
+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 0xea9742f0	proc_mkdir_mode
+EXPORT_SYMBOL vmlinux 0xea9855ae	blk_limits_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xea9bc562	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xeab95e7f	elv_register_queue
+EXPORT_SYMBOL vmlinux 0xeabd18e2	kobject_set_name
+EXPORT_SYMBOL vmlinux 0xeac8457c	ihold
+EXPORT_SYMBOL vmlinux 0xead01d4f	pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeb43d981	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0xeb49a1e7	tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xeb4f9ff7	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xeb568a33	pci_pme_active
+EXPORT_SYMBOL vmlinux 0xeb6d8217	swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xeb83214d	pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xeb8e75f4	scsi_register
+EXPORT_SYMBOL vmlinux 0xeb9d3d9d	generic_file_llseek
+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 0xebd532b5	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xebdbe48c	radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0xebe90da0	acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0xebf5c914	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xebf98aeb	module_put
+EXPORT_SYMBOL vmlinux 0xec15f00a	tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4e50df	free_user_ns
+EXPORT_SYMBOL vmlinux 0xec51d6a4	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xec8d90bc	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xecad27fc	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xecb3a5e1	clocksource_register
+EXPORT_SYMBOL vmlinux 0xecb721f1	try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xecde5a4d	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xece5a7c3	generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xecf45892	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xed00b278	mount_ns
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed3285e6	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xed5cd2f9	sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xed5d93ac	kernel_connect
+EXPORT_SYMBOL vmlinux 0xed69ac5e	simple_empty
+EXPORT_SYMBOL vmlinux 0xed6c07b2	__generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xed702324	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xed7a3a4b	ll_rw_block
+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 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 0xee3a137b	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xee50a6ee	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xee71c5d1	blk_start_request
+EXPORT_SYMBOL vmlinux 0xee7eb9e1	pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee7edb22	skb_gso_segment
+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 0xeeab909d	dev_load
+EXPORT_SYMBOL vmlinux 0xeeac4479	pci_assign_resource
+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 0xef4bb908	register_console
+EXPORT_SYMBOL vmlinux 0xef4cba51	tty_vhangup
+EXPORT_SYMBOL vmlinux 0xef716f12	page_symlink
+EXPORT_SYMBOL vmlinux 0xef98d62f	in_dev_finish_destroy
+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 0xeffbe994	acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0xeffbedee	register_qdisc
+EXPORT_SYMBOL vmlinux 0xf0009fee	put_pages_list
+EXPORT_SYMBOL vmlinux 0xf0040079	rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xf0192728	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xf04fd245	blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xf0637a83	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xf065f629	ioread16be
+EXPORT_SYMBOL vmlinux 0xf07d3ce4	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xf09c2922	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xf0ab4fbe	___pskb_trim
+EXPORT_SYMBOL vmlinux 0xf0e20f08	iterate_mounts
+EXPORT_SYMBOL vmlinux 0xf0ef15b4	list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c	kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f4ea02	vfs_mknod
+EXPORT_SYMBOL vmlinux 0xf0fdc62e	migrate_page
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb	__stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a	remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1043b67	journal_init_inode
+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 0xf16d96a9	inet_frag_find
+EXPORT_SYMBOL vmlinux 0xf18bbdba	tcf_hash_search
+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 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 0xf2357254	acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf24e35d4	dquot_transfer
+EXPORT_SYMBOL vmlinux 0xf28ed6e2	machine_to_phys_nr
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2b01dc0	blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xf2bbfb6a	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xf2e74040	mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf2eb3169	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf32055e7	dev_base_lock
+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 0xf34131ee	__register_chrdev
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35ed1c9	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xf37260ab	_raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xf37563b4	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xf37c3022	generic_file_splice_read
+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 0xf397d148	skb_find_text
+EXPORT_SYMBOL vmlinux 0xf39bf4d9	put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3b82723	vm_insert_page
+EXPORT_SYMBOL vmlinux 0xf3bf0bce	__bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3cf6de1	acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0xf3d0de82	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xf3fc600b	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xf41606f9	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xf441ac43	ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4568aa9	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0xf45c7f6e	add_disk
+EXPORT_SYMBOL vmlinux 0xf46f8709	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xf47bf2d6	xfrm_spd_getinfo
+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 0xf4b754fd	acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4d305f3	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f19e51	downgrade_write
+EXPORT_SYMBOL vmlinux 0xf4fcaf0d	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xf4ffab89	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xf500077c	vfs_read
+EXPORT_SYMBOL vmlinux 0xf502d273	acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf519e9a4	mntget
+EXPORT_SYMBOL vmlinux 0xf51ae235	touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf531e9d0	pci_ltr_supported
+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 0xf553ecc6	scsi_device_put
+EXPORT_SYMBOL vmlinux 0xf55445b2	pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xf58eb3e5	led_brightness_set
+EXPORT_SYMBOL vmlinux 0xf5a608d1	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xf5b96c9e	pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xf5bc01ae	blk_rq_init
+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 0xf5ff0204	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xf6053ed1	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf612aa12	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xf6339317	acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+EXPORT_SYMBOL vmlinux 0xf63b1cd9	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xf657dd54	dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xf65f2fa9	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf6888196	dquot_file_open
+EXPORT_SYMBOL vmlinux 0xf697e807	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xf6bb4729	color_table
+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 0xf70b0806	__d_drop
+EXPORT_SYMBOL vmlinux 0xf70e6e8c	sock_wfree
+EXPORT_SYMBOL vmlinux 0xf74012f4	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xf747dd44	kstat
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7a4df7e	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0xf7b9dd3d	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xf7de5ef8	spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xf7e34b3f	journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xf7e361a9	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xf7e37635	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf813e08e	blk_stop_queue
+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 0xf85294c9	uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf85524a6	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xf8589fa5	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xf86c50e7	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xf886ec5e	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xf88e0ee2	acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f	pm_idle
+EXPORT_SYMBOL vmlinux 0xf897db59	generic_fillattr
+EXPORT_SYMBOL vmlinux 0xf8bf9d24	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xf8c5513b	serial8250_do_set_termios
+EXPORT_SYMBOL vmlinux 0xf8f6f628	mca_register_driver
+EXPORT_SYMBOL vmlinux 0xf8fe3ef5	make_EII_client
+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 0xf99a2809	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9cd1b77	fsync_bdev
+EXPORT_SYMBOL vmlinux 0xf9d48eab	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xf9d6223f	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xf9db43b6	kset_register
+EXPORT_SYMBOL vmlinux 0xf9ddbfce	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xfa096ed8	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xfa1005df	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xfa1b300a	bio_init
+EXPORT_SYMBOL vmlinux 0xfa23fb25	phy_print_status
+EXPORT_SYMBOL vmlinux 0xfa30957c	mempool_free
+EXPORT_SYMBOL vmlinux 0xfa63733c	file_update_time
+EXPORT_SYMBOL vmlinux 0xfaf49712	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb	acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb1be686	ida_remove
+EXPORT_SYMBOL vmlinux 0xfb45ef73	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0xfb60cd7e	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb6d30f9	sock_register
+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 0xfb91967e	jbd2_journal_forget
+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 0xfbe73584	register_netdevice
+EXPORT_SYMBOL vmlinux 0xfbea587f	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xfbfb6416	revert_creds
+EXPORT_SYMBOL vmlinux 0xfc02b7ad	sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc0aa038	cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xfc0e3439	find_lock_page
+EXPORT_SYMBOL vmlinux 0xfc1d4dba	da903x_query_status
+EXPORT_SYMBOL vmlinux 0xfc263537	pci_enable_device_io
+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 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 0xfcb2c404	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xfcc2a43c	utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd35070	blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xfcec0987	enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff	fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcfd6fae	clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xfd1d5aca	is_container_init
+EXPORT_SYMBOL vmlinux 0xfd487bca	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0xfd51f397	__netdev_printk
+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 0xfd6fe81f	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xfd747875	mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0xfd76c769	dst_release
+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 0xfdfca856	netdev_rx_csum_fault
+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 0xfe8cbcde	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xfe9e4d05	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xfec03ee6	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xfec3c2f2	bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed1db46	inode_add_bytes
+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 0xff53d395	input_register_device
+EXPORT_SYMBOL vmlinux 0xff5fc144	unlock_page
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4	ioport_resource
+EXPORT_SYMBOL vmlinux 0xff92a6ab	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffd5a395	default_wake_function
+EXPORT_SYMBOL vmlinux 0xffe587d7	d_set_d_op
+EXPORT_SYMBOL vmlinux 0xfff19488	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xfff33c73	kill_anon_super
+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 0x0028f757	kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935	kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0849a741	kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09f8e91c	kvm_mmu_unload
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ac35ea7	__kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b75f4c7	fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0fe8e797	__tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x11174641	kvm_emulate_wbinvd
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1202e9d4	kvm_read_guest_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1250f44e	hva_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14dd0214	kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18dfb5ed	gfn_to_pfn_async
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a89786d	kvm_gfn_to_hva_cache_init
+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 0x1ebc13be	gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193	kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x240d4bc1	kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2467a29c	kvm_set_xcr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576	kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27604d79	kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27716b75	kvm_inject_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a6aff2a	gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2ba786b1	kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c6d0cfa	__tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31	kvm_spurious_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x315dbc75	gfn_to_pfn_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b	kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39ba6f79	gfn_to_memslot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404	kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x40f368c2	kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6	kvm_rebooting
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ec14fdf	kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51e3b6e6	kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53861bc6	kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x565f12ae	kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57b046ac	kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x586d6091	kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bceaebd	kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e852336	gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f5cb717	kvm_release_page_clean
+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 0x65095f5f	kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd	kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a0a57d2	kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b21f548	kvm_lapic_set_eoi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b291aa9	is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6db19e07	is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7059ad9b	kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x710b12bf	kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71b487bc	kvm_vcpu_init
+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 0x7b3c9db6	kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b8d32c3	gfn_to_pfn_prot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c9b19a5	is_noslot_pfn
+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 0x8b50ad7f	kvm_set_cr4
+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 0x8db3de8b	kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f	kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8eb94fd3	kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92f7a07b	kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x935a748d	kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x98a7d8e7	kvm_inject_realmode_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x999b2ebd	kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313	kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9b4a824a	handle_mmio_page_fault_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cf32a66	gfn_to_page_many_atomic
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc1a01a	kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e6bb92b	kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fbf3576	kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa23009df	kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2e908bc	kvm_write_tsc
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa35a945b	kvm_init_shadow_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7371546	load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa77fed09	kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91845be	is_invalid_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad77dd6f	kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf2b3a37	kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0e3bad0	kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1c2ce70	kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb63b6605	__tracepoint_kvm_nested_vmrun
+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 0xbfafe0c3	__tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc00dfdaf	kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3664605	kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc45aff49	kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5957e0f	kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc684cd71	kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf7cb5a4	kvm_get_cr8
+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 0xd1ef692b	kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9	kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd502d282	kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd699f423	kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd70bea4e	kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd76f4ff2	kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd8dc2105	kvm_read_guest_cached
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd91510c7	__tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdb38a40c	kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc1ccc52	kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe008badf	kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe12fb28f	kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2d36258	kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe361732f	kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe93c15a0	kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaffc9cc	__tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec75dfff	x86_emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed3b8a75	kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed62c458	kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee8ff414	__tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef2c5524	kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefb7a3ce	kvm_clear_guest_page
+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 0xf92bca86	kvm_read_guest_page_mmu
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc483a95	kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcbcfd22	kvm_complete_insn_gp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd830e36	kvm_write_guest_cached
+EXPORT_SYMBOL_GPL crypto/af_alg 0x2cff77df	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7d2d475d	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0x82315c27	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x8a75c0e9	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0xc9838bcb	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe4649fde	af_alg_cmsg_send
+EXPORT_SYMBOL_GPL crypto/af_alg 0xeab406b7	af_alg_register_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0xee180142	af_alg_accept
+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 0x1b626e36	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x2f3bbda5	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x70bc9861	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x79cf7581	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x853b8ff3	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9cfbe911	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xae66b0be	cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xafd2e709	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbfa8c18b	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf740afe5	cryptd_free_aead
+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 0x2ab021d7	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3216c840	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x32f0cb36	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5f85f4e4	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x94b2d3b9	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbeca2824	btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda156ce7	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe2c88cbe	btmrvl_check_evtpkt
+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 0x05fc8035	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0d8dbcea	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x138d140b	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e8e08d0	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x31429a30	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4797be21	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x49abb6d9	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4b1ba0da	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73cc1afc	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x79991f53	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7ed7f639	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84b936dc	gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8837f071	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc034b9e1	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc91d3a61	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdf2039e1	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf1c9828a	gigaset_handle_modem_response
+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 0x33e5bfef	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 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 0x4ff760d3	dm_region_hash_create
+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 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 0x39f523b2	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x0c4dd69a	mxl111sf_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/tda18271c2dd 0x0c177fce	tda18271c2dd_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0657fdb0	mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1980a331	mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1c2e6d52	mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3146ac86	mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3d2ce854	mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3d4b6d7d	mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x56052000	mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x72ceee4c	mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7b651dbe	mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7fa04134	mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x950f3151	mantis_gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9a19d4e6	mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9fd4c886	mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa01a5500	mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb5894536	mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd2e30c06	mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf157999b	mantis_i2c_exit
+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 0x464b19d5	ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x49d0c275	ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5a60b0d8	ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61bc74dd	ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222	budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x959bad0f	ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa89a7a5f	ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xebe6a8a8	ttpci_budget_init_hooks
+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 0x5e7cb021	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfdc926f6	st_unregister
+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 0x32a9c879	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x36500e5a	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x70ca54b7	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9f4482cc	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0e4ee03f	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x300ac31d	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x389f08a7	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5662b5da	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x887171bb	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa297623c	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa475a071	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb0cca10a	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbbc7a615	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcb4c5cbe	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfe2fa2d7	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfeafe8f4	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x359555d8	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3fae57ab	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4025bbc4	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe1c044c8	alloc_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 0x10c39cf2	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1681c232	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4fc83159	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5ae6dd74	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9083a7e9	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0xaff34d89	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x21c74d5e	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4d66f4c7	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x53cb62f3	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5ad5c3a4	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5e71a6aa	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x74329c25	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9166348f	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x99b24ab6	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb2b2d2e8	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd5061211	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x043399ef	usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x07ba71a0	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22f4ef48	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2511bb2e	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cf0450f	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3a10c495	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fd9e2fa	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x485de8d5	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6025232b	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x605f19d4	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x60d06cf7	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6b48ae69	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f0a8c24	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x73c82f66	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fe60be5	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb4b77a8	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb41eabb	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc11876f	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3a5b9d8	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6e61c23	usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde6782de	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf378e8ac	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc320eae	usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfdc14d48	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x06268b3b	i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x119d4aa6	i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1baa295c	i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x23fb7713	i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x38a25cc9	i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x45b000fc	i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4fb6cbe6	i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5bc88e1f	i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5db6fc4c	i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x62dcd4ce	i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x68135428	i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8487f5fb	i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x962a7306	i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c	i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb28095f2	i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc756beb8	i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe9867783	i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19	libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xca474f5a	libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x6385e5de	iwl_legacy_dealloc_bcast_stations
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0x85d9651e	iwl_legacy_mac_tx_last_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xa17a2921	iwl_legacy_prep_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwl-legacy 0xd57f55de	iwl_legacy_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x000cddef	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x005ff767	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2494b868	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5acf1f3a	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7aea784d	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7edf1716	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x892ba3e3	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8d5c225c	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x959d6187	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa62131be	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa7d1c5e2	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd7c486de	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3a6e818	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf3afcbce	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64902a6	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x056f0f1d	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2d8c9f44	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x498044bd	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x68e69afb	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa1977c51	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa91c233c	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbb654b26	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 0xd47bf0e1	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x56ad2903	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x8dcbabb5	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2c9d5b42	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x43e79ae0	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x58e1a672	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8fd5529f	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbe414f2e	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc4072a78	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd17f3002	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd5dc3d23	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf1bb1ba4	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf683b9bf	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfeedbea1	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x023d562f	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0f29c67c	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2247ab5a	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x297c16b6	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3f88935e	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x63ed94cc	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6ffdf21b	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa6c7d23d	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe67bfc59	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09081646	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d27b34e	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x28fd798d	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x29975884	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2e0d32b1	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x347d709f	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3aa6e386	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3bda6a55	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x432bf316	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x466688ae	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47c24d4b	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d1bfe51	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58742fea	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f98a7fc	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90814ce9	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9578669e	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b3e004e	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9ecbc0b2	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf6339ee	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb1241caf	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3214e28	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc268485b	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3bb6224	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3ffbc10	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5a7b80d	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc74ed742	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdb1de011	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd09e53f	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xded4f42c	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe31da109	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4ce6085	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec10eae8	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed8cc5ad	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xefa8bd6e	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf646286f	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf8d6cdbc	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9120bec	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x066e90dd	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08f83271	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1286590d	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a180e3d	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1c853512	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x26f54a3d	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2d625bb6	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ec38663	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x300e3465	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32707f9b	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x376cb9b8	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37aed20e	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37b5a7ba	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3954b5ba	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d811881	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40eea8eb	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46bf4fae	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4cbe2e84	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dffbfbf	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d92c995	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e0a3143	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60186a56	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6496f1d2	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a8d4cf6	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d348cc1	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x76b00527	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7aa2a046	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c8aa5e0	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83af72d6	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x962494ab	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa03b0de0	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa68a4b43	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa963df20	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4e8f453	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6e472a9	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbeb0fd46	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc381b179	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0971db1	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5ad5a78	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd73753b2	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7508d72	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6fa8d94	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeeb6e4aa	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf1b274cb	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf5f6d831	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8adf32b	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2af3c418	rt2x00pci_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x37d35983	rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3c4d80d4	rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x83d61bea	rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x86047826	rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabd74468	rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4098473	rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4329c2c	rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb4bb79f4	rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x00ff599b	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0394b6f0	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10b52b4f	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x292905d0	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33d7afd1	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b00511	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e10d178	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x766b30e0	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b61d4e8	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90b59adb	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb940be48	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc79d1850	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd66d3d4e	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8b7536a	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9e328b8	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf571c069	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0x2500106d	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xb62a36b9	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xbe55ca8e	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0200ca07	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x3fbd9d3b	wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x736b53ca	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x9177c705	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xdb4b6e8d	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf014db41	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf330b060	wl1271_register_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 0x08303e86	cxgbi_bind_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0988f1f6	cxgbi_device_find_by_lldev
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a55aa03	cxgbi_ddp_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0ab7fb3a	cxgbi_device_register
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18c1761c	cxgbi_hbas_remove
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a6c67fb	cxgbi_ep_disconnect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b98802a	cxgbi_conn_pdu_ready
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22a233d3	cxgbi_set_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x241d956a	cxgbi_sock_rcv_abort_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2bbc923b	cxgbi_sock_established
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x336f0522	cxgbi_sock_fail_act_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34e44405	cxgbi_attr_is_visible
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34ed1fb1	cxgbi_ep_poll
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5a4fd2	cxgbi_device_portmap_create
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389	cxgbi_ddp_page_size_factor
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3b1ac3a1	cxgbi_sock_rcv_wr_ack
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x43a53b10	cxgbi_sock_rcv_close_conn_rpl
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x480b2b2e	cxgbi_sock_check_wr_invariants
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x48c02dd4	cxgbi_conn_xmit_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5708d353	cxgbi_hbas_add
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004	cxgbi_device_unregister_all
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x82c7b190	cxgbi_iscsi_init
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x82d05dbe	cxgbi_set_conn_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85d6713c	cxgbi_iscsi_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369	cxgbi_ddp_ppod_clear
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9144518a	cxgbi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9910bd1a	cxgbi_device_portmap_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d112de0	cxgbi_conn_init_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9f978ef4	cxgbi_sock_skb_entail
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa12a4ad3	cxgbi_sock_free_cpl_skbs
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa184cb3e	cxgbi_get_host_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2e05ee5	cxgbi_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5bc4646	cxgbi_ddp_cleanup
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5f72bd2	cxgbi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab2619f0	cxgbi_sock_closed
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd521ca3	cxgbi_ddp_ppod_set
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdb1e666	cxgbi_sock_act_open_req_arp_failure
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc1155eef	cxgbi_conn_tx_open
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd72c68f7	cxgbi_parse_pdu_itt
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd735a1b7	cxgbi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdaf80bba	cxgbi_sock_rcv_peer_close
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde907101	cxgbi_get_ep_param
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe119445f	cxgbi_conn_alloc_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe330b3ab	cxgbi_ep_connect
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xedbfd426	cxgbi_sock_purge_wr_queue
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf21baa40	cxgbi_sock_select_mss
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2599898	cxgbi_device_unregister
+EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfcbaa42b	cxgbi_get_conn_stats
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275	fcoe_queue_timer
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x431530a0	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f836123	fcoe_validate_vport_create
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x866e7375	__fcoe_get_lesb
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8db3eabc	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc0cef10f	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc85f06a5	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcdc1be63	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xddeb2e2d	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe0c4e535	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 0x010e880d	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03291f74	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a3d8a8f	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10737e27	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x123e8e45	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x193a5709	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1aa938cb	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1fa1a694	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27be46a3	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29d50fd4	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a77caf2	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x324279cb	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x326be3ae	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35775b47	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bce6000	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x412c19ad	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cf5c0cd	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52cfc92f	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57392cba	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x595ee019	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63df9b6f	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65b218b0	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6695e130	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x677dc124	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75807abc	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x78856705	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x821912ea	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89eb14b8	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8aff2ffb	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96af0d97	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xabdee6d4	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4347937	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbffa2845	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc211255d	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc22a4e5c	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcde599b7	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8aaaa77	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe97d151e	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeabcc423	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4a4fe46	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf58095b4	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8d58f27	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfae2137f	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x119c5806	iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1328622d	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21d22e46	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x285e808f	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c3397a7	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c5d1163	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x34b9d75b	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x356859c4	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6c60a620	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x70f3763f	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x90772737	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa944eda2	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xce012ad2	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xce4294f9	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee2ade52	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf859de7a	iscsi_tcp_conn_teardown
+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 0x01efbf09	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d0f9ee1	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1cd936f4	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d3f7dab	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a7945ea	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cdd7f62	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36bcc67a	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3da34023	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ee8875f	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x418b1806	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41cfe598	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x447592c4	iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x563966c4	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57be29fc	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x694e8b7f	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x73f88c3d	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8081b750	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81f74e47	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x986e9cc0	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1db77cb	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6d2da9b	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8027d50	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd1634d3	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed52ca05	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed592bd8	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0e264fe	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8333876	iscsi_destroy_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 0x02b5b0ac	comedi_get_device_file_info
+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 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 0x04d8dec5	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x153fef3d	sockfd_to_socket
+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 0x327a2679	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x560ce985	usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x66b7892a	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44	usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78ff6852	usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x861ff70a	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x93a9990c	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa668e12e	usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xae511989	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc8063c16	usbip_stop_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/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 0xda78aa54	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe624c7df	usbatm_usb_disconnect
+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 0x0f73c7cb	usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1523352e	usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2631df77	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x29444955	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2f6af080	usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fb5958b	usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35630f8b	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43aeb2d8	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x592e7de4	usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x62074611	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8912794e	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9dccdf30	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5ac6ea2	ezusb_writememory
+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 0xba1cc72f	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcf91f283	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf82c073	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeb36f932	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf7f3b05e	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc065f43	usb_serial_handle_dcd_change
+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 0x17ce645d	locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4665fcca	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4f081a8f	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x62056b59	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 0x7f7ec194	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9310ccb8	nlmclnt_proc
+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 0x0010e691	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27044165	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27a02833	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a19c51c	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b33025e	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ea2f67b	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6324c39f	nfs_pageio_reset_write_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c31dd51	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2dd59cb	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3aa5f0c	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc14327f5	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc77fe87c	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4e8bb04	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf01d4fd2	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe19fb3f	nfs_initiate_write
+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 0x244a9767	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553	o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x45462da1	o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b	o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5687e392	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251	mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x691daa5a	o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8b68b9f5	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 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 0xbdca1832	o2nm_get_node_by_num
+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 0xe3a79ad2	o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d	o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x04c117c8	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x345cb19f	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ce4097e	dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x44c45ddb	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x559a6daa	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8	dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8e075ad5	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e	dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6	dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f	dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/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 0x3b11da5e	garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x3d8e852b	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x5276972b	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x67feddf3	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xb2d57e81	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xce32170a	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x0f7c66bc	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0xda4f0837	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xbfc5a116	p9_client_xattrwalk
+EXPORT_SYMBOL_GPL net/9p/9pnet 0xd3cf784f	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 0x4a57e144	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 0x4aea1154	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x071dc872	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a68b71e	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cf3c3fc	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x16f5c175	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e546a4a	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f038612	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x20adedc6	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x28c79b3d	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cd32012	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2dcaedf9	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2df777ce	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x448bd42e	dccp_shutdown
+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 0x523acf43	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d762611	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f9a4f94	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72a2ba4d	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x73b24c49	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x765a086c	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x836d2b9f	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7e32ec	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86	dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x94cfe8c0	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0fc892f	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4698022	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xacb5a238	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb47b535a	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xba725ff2	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7265a17	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd661ab47	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe03309ed	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xee5c3014	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf03074d7	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf04c5a38	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2a25482	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3ae8370	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2f36cf7e	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x442556ba	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5703ec32	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcfc68404	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd076a565	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd925e158	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0ec443be	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x86769101	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x380c8e02	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x9da4a079	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x08814896	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1b805eeb	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xf9b002ab	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xa0838d6d	ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x146b5f4f	nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921	need_ipv4_conntrack
+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 0x34556f4d	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3742c1a5	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6be2d658	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7ca703cb	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 0x995039ea	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf6d8365b	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 0x176adaa8	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x438906dc	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6f5ccdde	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9d1ea29c	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfaac47bf	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x33f9d35f	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 0x01130953	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0ea80684	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3850acb1	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6d35cca3	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7cd249fb	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7d51d185	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x81ef5b03	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8eba051a	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc57e0352	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe88d80d1	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe8a82822	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf507e39d	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x45eee37f	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x769d7c8d	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x98de3a64	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xacf8d1db	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/mac80211/mac80211 0xfd3e0d16	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0f454eec	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 0x4106bc90	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4a71b772	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x58af6998	ip_set_type_unregister
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6	ip_set_alloc
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6df6cd2e	ip_set_del
+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 0x9181fa63	ip_set_get_ip_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 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 0xa5888854	ip_set_type_register
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa778524c	ip_set_get_ip6_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 0xc6a44575	ip_set_get_ip4_port
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0198fe41	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5d19d8f1	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6354f59e	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xfeaf94b4	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00cff2e6	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1113d2f0	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14f0fc5e	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20a955be	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x237b2205	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24ebe9b8	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x275c43c4	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a40b6df	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d02cba3	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e7faa67	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31ddd7d8	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3579539a	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bc05d3a	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3eedfc05	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x418261e4	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x441dd90c	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x494c6520	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c586296	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c855c32	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51896b96	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x558ee800	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x574570b7	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c947eac	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d7c5184	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60070baf	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ae8ea8a	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7339942f	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x762bbb8e	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77c1c807	nf_ct_expect_register_notifier
+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 0x7ac718e7	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81117db2	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x849795dc	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88bf0bf2	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89512196	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f16bc8a	nf_ct_invert_tuple
+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 0x91386b0c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x933d9911	__nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c4445f3	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa276abc9	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3d06a89	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4e2ab48	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa9c519b	nf_ct_port_tuple_to_nlattr
+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 0xaff7ebce	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2a288a4	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb674314	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8a67a8	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbed961d9	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1e9cd77	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce9652a2	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd32e34d0	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6ed7f8d	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea16592b	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec46364e	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef765abc	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf29228e8	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf43fcfaa	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4d15e71	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffdb40ac	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xf96d2506	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xeb748956	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x0d369505	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0bd5ead2	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x190c1e60	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x37a6c269	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5a7e1dce	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6565bebb	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x73b6b7c7	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x84c0aa56	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8521717f	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c11c2c4	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe9667dc4	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2ff39f4e	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x352ab224	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x662c3458	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf6e75768	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfc772cd9	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x14edae00	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x880ba963	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x25f9486e	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4d238df3	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f73e1d4	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x55e544a4	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5a2fdecf	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x694cfe9f	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x85171cd7	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa38e8acb	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa5a20598	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb2cf9e3f	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbc465791	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd5738eca	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd9177e9c	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x5d0fb852	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x08b3ce62	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xd9a19a18	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x11d0b1e3	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2ca708a5	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x31fd4690	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3206369c	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd2d62f1	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xffc764e6	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x2b6ddae7	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00e670c9	xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00ed9de5	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x079fc68a	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x27217415	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3c210540	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4153d00f	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x520303a8	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5edb12c8	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x75f99b90	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaaa91a4c	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf77545e	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc36e92b5	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf63d8c9	xt_hook_link
+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 0x0280ff86	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x04abe0ea	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x074d4897	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x12fee079	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x28de8a1c	rds_message_addref
+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 0x3b4fc0fc	rds_page_remainder_alloc
+EXPORT_SYMBOL_GPL net/rds/rds 0x4b807291	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x57ecece5	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x6054c423	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8030e4d9	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x82649006	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x82832d46	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x85a7c72c	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x89b15c66	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x8aa10237	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x928810f2	rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x94970408	rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x98d3050d	rds_atomic_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc4b3eca6	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xcc8c1107	rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0xdcce618c	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xe1b913ac	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xf144ecb5	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xf5cb6e98	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4458ccd4	rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xae770759	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 0x14c8ce09	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1ca0c4c1	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2dce509a	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36bc9a29	gss_mech_list_pseudoflavors
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3de57cca	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3f5295da	gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4389348b	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6c906150	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8021d611	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x864a206a	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8b108dd0	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 0x950134bc	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xec88d382	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00fe18df	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01c7cc71	svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x050b1ffd	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9	xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06367364	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1	xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07b04216	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a6fa41d	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a858677	svc_auth_register
+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 0x1268a9e8	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x126d52ce	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x135121a2	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1467d8d3	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x147f4528	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15b46e68	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e63b20	xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1966ebd2	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b7d41c2	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c516a51	rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cec85ab	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ef556b0	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f45bd0f	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f89ba4b	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24523f03	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2636b32d	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26d918f1	svc_process
+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 0x2919b156	xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d6b80	rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a5e630f	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a91452b	xprt_alloc_slot
+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 0x31175b2c	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x329d52f8	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32a99ee9	xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b11811	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38c71ea9	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e179178	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e4764d4	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9f2d8f	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4143d0fb	xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c596d0	svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4767317b	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49c86bf4	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49f9043b	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a7a7fb4	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07	rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506714d5	rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d3896e	xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5106293b	rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51482c7e	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51b9e99a	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b38d0d	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x533950e7	rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53e7e382	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x589815f4	xdr_set_scratch_buffer
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x596cc7f3	rpcauth_create
+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 0x5ee76977	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc3c1f6	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60b4ef6f	xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61726344	svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618bdbd6	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618be34b	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6361cfa3	svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x637c3b3d	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65b0cb45	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c1cc82	xdr_terminate_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65eedeeb	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67136889	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67451f1a	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x688f4baa	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69eed9ae	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b7c0b60	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d	svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7037474e	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a	cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72179e3c	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ca6351	xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74814281	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b654faa	cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d2cb375	rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067	rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de70cf5	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x852c9b3f	rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8952cef3	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a89266e	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8abdcb70	svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bf34ca7	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d9a0544	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e93d325	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f88e3b1	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x935f153d	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9712d22c	sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x971be2a3	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9864dc5a	svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a044ee4	xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b5be120	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b8acb21	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cba1638	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cba732d	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eac387c	xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2b27462	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7e2b4eb	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa85a5592	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8fb9e47	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaca7ab8c	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xade9f609	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef	nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb16a4d4e	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3ef3443	rpc_bind_new_program
+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 0xc27d291d	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3172156	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc491d5c9	svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc539a5e2	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5fc402c	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6c611fa	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc71f8b82	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c603ed	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9bc3b15	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca42ebb3	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc373342	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc6d7bf2	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd86c9ba	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce7fbe92	rpc_put_task_async
+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 0xd0a961d7	svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2cb5750	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7b6823a	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd99a0133	xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda0f77a1	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda36632b	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda830040	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc61d85c	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddf0b70a	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeaf0aa1	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4d4303b	xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe567ee15	rpc_peeraddr2str
+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 0xe60d7041	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5	qword_get
+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 0xf41ded63	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45556f2	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4cdbe35	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74f743b	rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf822440c	svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf84d16c9	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf91948ed	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf94b6e82	rpc_call_sync
+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 0xfc0a4ef0	xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd4b5dc5	rpc_call_async
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x44601ade	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x585b8ffa	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5958c774	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x68266cf7	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x68889166	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x86af3ba2	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xae27a401	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbab6860e	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc900eba	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2d75868	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe665b4ab	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf09e939a	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf0d8a26a	wimax_state_get
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1e461614	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23284efe	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a3ea195	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2c0d7331	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x35e9ebfc	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3e7df697	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4b01ba28	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e38bd68	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5f116d11	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb6d34a01	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf61de0d1	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x30795ec5	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb7cc6f0c	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc5e6a12d	ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd7b47150	ipcomp_input
+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 0x0974373e	snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a8db072	snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b3c8a7f	snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d582808	snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0dda4f84	snd_hda_codec_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e9faffd	snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ec917eb	snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11fee5f5	snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16e95870	snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a4a15f7	snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b999fe1	snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1be5c3a0	snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c4422a9	snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d72ee9e	snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x204ee196	snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21e437a3	snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x235dc9ae	snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x260f2e63	snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28f120a5	snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x295b96e1	snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be92f8c	snd_hda_jack_add_kctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x342b1f42	snd_hda_jack_detect_enable
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3727e0cf	snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5	snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3802cfec	snd_hda_override_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39dc4290	snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a4cf31f	snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ba8367a	snd_hda_power_down
+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 0x4442be20	snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b7a3b8b	query_amp_caps
+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 0x4f97fb39	snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x517ed125	snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x577b9425	__snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a0a873f	snd_hda_codec_set_power_to_all
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bfe1841	snd_hda_jack_add_kctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x604c095a	snd_hda_query_supported_pcm
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aecd25e	snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b3bebfc	snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ecb214d	hda_get_autocfg_input_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7167bff9	snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7317fb22	snd_hda_codec_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76e1f793	snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x781f919e	snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78be600c	snd_hda_get_conn_index
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d425938	snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f65e887	snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84b3fb9a	snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ce69ab	snd_hda_jack_report_sync
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84d35e4e	snd_hda_spdif_ctls_unassign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8517895e	snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85871216	snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8616f323	snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x892b183c	snd_hda_jack_tbl_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x899c3b30	snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8aae2572	snd_hda_mixer_amp_switch_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 0x92ecff36	snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92ff44a5	snd_hda_get_pin_label
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877	snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9abae095	snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bd8da35	snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ecdd120	snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f13c9a4	snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76	snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae0235b7	snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaee1d1c6	snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf071a37	snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaff2f1ad	snd_hda_spdif_out_of_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb23ef04a	snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb388e01c	snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3c7c683	snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4a8378b	snd_hda_codec_amp_read
+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 0xba73e459	snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb8ef310	snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbbef666	snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc995ed6	snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc	snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf979e13	snd_hda_get_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69	snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc79ae0ed	snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8b3d789	snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc964ee2b	snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca78620e	snd_hda_parse_pin_defcfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcaf3ebc1	snd_hda_spdif_ctls_assign
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e	snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcca99a22	snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdd80ba7	snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde0ac44	snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75b2c33	snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda101dc1	snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdac935ad	snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1aa7cb2	snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe40ab54a	snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e4cae0	snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6e44d33	snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7873e87	snd_hda_override_conn_list
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb399a3d	snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecc9a83a	snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721	snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef02b62d	snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1f9bcf1	snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf67dec8e	snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf77c8eb1	snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7b0bcdb	snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa3490ef	snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb0ac623	snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffcaf862	snd_hda_codec_set_pincfg
+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 0x0440588f	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b41bc49	snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c82864f	snd_soc_jack_get_type
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0caf1268	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1032086f	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1198a648	snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x119d5587	snd_soc_set_runtime_hwparams
+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 0x16a09605	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x178c0977	snd_soc_platform_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7f467e	dapm_mark_dirty
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bf25f43	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c8052c9	snd_soc_info_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dcf3ba3	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e522e6b	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20590352	snd_soc_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21f18c6f	snd_soc_put_volsw_2r_sx
+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 0x29cc472a	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fd19c0c	snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37f7365a	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x400f5e02	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43819dcf	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439df157	snd_soc_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x466b75ab	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d6fcf3d	snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d80e37c	snd_soc_resume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x527a633b	snd_soc_cache_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5358455d	snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x552d2b6a	snd_soc_info_volsw_ext
+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 0x6292d0d2	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62d3a7ff	snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6348a592	snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x670ee251	snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67a514c5	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c713766	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c9bc6e6	snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e3e4b32	snd_soc_dai_set_tdm_slot
+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 0x74f85f62	snd_soc_add_platform_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b3f50b1	snd_soc_poweroff
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ba817e5	snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d165ec0	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130	snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f325da3	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81bacce5	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81cef8a6	snd_soc_dapm_get_pin_status
+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 0x93681863	snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9695fd94	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97aa2024	snd_soc_dapm_weak_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b06185e	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b7055f7	snd_soc_put_enum_double
+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 0x9cb3576d	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d2fb429	snd_soc_platform_read
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa61f9bd6	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaab3d1f7	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3b72dd7	snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb539de10	snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb66546d3	snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6b818f4	snd_soc_codec_set_pll
+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 0xbe6cd941	snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1ca3a08	snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3c118d5	snd_soc_dai_set_clkdiv
+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 0xc9756551	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb3a93ed	snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb72997e	snd_soc_write
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xceff8673	snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf1693bb	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0e3ed7c	snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd168efdc	snd_soc_default_readable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd24a47e5	snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5698707	snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd87c3a0e	snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd97413c8	snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc27a6ce	snd_soc_info_volsw_s8
+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 0xe5a9ebfc	snd_soc_register_card
+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 0xe7e54557	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeafd776c	snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7	snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec60b7ba	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0747955	snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf67571ca	snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfca5bb02	snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd137649	snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL vmlinux 0x005aa26f	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x00632780	work_busy
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75	ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006b76b4	find_module
+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 0x01156ee3	crypto_ahash_digest
+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 0x01db6e1f	shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de	kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x0212b4f0	rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x026211e2	memory_failure_queue
+EXPORT_SYMBOL_GPL vmlinux 0x02697871	dw_spi_remove_host
+EXPORT_SYMBOL_GPL vmlinux 0x026c335c	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x028f671e	tps6586x_update
+EXPORT_SYMBOL_GPL vmlinux 0x02cdd854	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0x0330c6d3	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x03448461	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x03a880e4	usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x03b74ca3	xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0x03c530b1	__put_task_struct
+EXPORT_SYMBOL_GPL vmlinux 0x03c88e56	cgroup_add_file
+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 0x04bf26af	ioremap_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1	gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04ce988c	netdev_rx_handler_register
+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 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 0x06717539	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x0673e573	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x06750010	tcp_unregister_congestion_control
+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 0x0737dc59	crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x074d6a47	spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x0756e9fa	aead_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 0x0a665ad4	replace_page_cache_page
+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 0x0b14a8aa	__scsi_get_command
+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 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 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c3ca568	elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0c6d7ce9	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93	clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cb4831d	key_type_trusted
+EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f	crypto_it_tab
+EXPORT_SYMBOL_GPL vmlinux 0x0ce15b0a	dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x0ce4c184	spi_bus_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x0d165b79	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x0d1daceb	attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x0d4607c4	fuse_abort_conn
+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 0x0df1efa1	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x0df66d4c	da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0e06c5e1	mnt_clone_write
+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 0x0e6094ab	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x0e6b7d4d	device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0e81bdd7	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x0e9ed92b	blkdev_aio_write
+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 0x0fef510f	locks_release_private
+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 0x1077b222	xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x109182bb	usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x10b3bf8e	usb_alloc_streams
+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 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 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 0x1269aee1	bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x12866951	sysdev_class_remove_file
+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 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 0x146306a9	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1483853b	user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x14af3f3f	pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x14bcbe24	regulator_unregister
+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 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 0x170a686c	unregister_pernet_device
+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 0x17374233	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x17456a48	dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3	apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x17677632	xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x1775b0bd	skb_tstamp_tx
+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 0x181868bd	proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x18316153	skb_cow_data
+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 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 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 0x192cb5dc	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x192cef22	unregister_ftrace_function
+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 0x19642ca6	blk_rq_err_bytes
+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 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 0x1a790211	xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0x1a847b48	ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x1a958f66	wm831x_device_shutdown
+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 0x1b0df375	task_active_pid_ns
+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 0x1bcb5c18	gpio_export_link
+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 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 0x1dc17285	crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x1dd3640d	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x1ddc1b84	crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x1e0e82d0	pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1e0fe041	add_to_page_cache_lru
+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 0x1e86efe1	xattr_getsecurity
+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 0x1f50db45	crypto_register_shash
+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 0x205c5ffb	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x209b417b	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x20b38162	xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470	orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x211cc96f	pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x215f10bd	__srcu_notifier_call_chain
+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 0x222bbed3	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x226755ef	debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x2281a11b	tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x228b93ae	tc3589x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d	crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22c319f7	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x22ca5a5f	scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x22e85e41	hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x23026fa8	nf_register_afinfo
+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 0x240580a9	xenbus_probe
+EXPORT_SYMBOL_GPL vmlinux 0x2431dd93	yield_to
+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 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 0x252c828b	skb_partial_csum_set
+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 0x254b0969	shash_free_instance
+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 0x25c67935	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x25da53bf	pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x25da9e3f	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x260c7f25	xen_register_device_domain_owner
+EXPORT_SYMBOL_GPL vmlinux 0x262f20a8	local_clock
+EXPORT_SYMBOL_GPL vmlinux 0x264f9c86	adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x265eb446	ata_msleep
+EXPORT_SYMBOL_GPL vmlinux 0x2665c916	regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x2678e95d	init_pid_ns
+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 0x270542ee	skb_morph
+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 0x27f4f029	ftrace_set_global_filter
+EXPORT_SYMBOL_GPL vmlinux 0x282657e6	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x283ee1a3	pci_disable_ats
+EXPORT_SYMBOL_GPL vmlinux 0x2882566d	dev_attr_em_message
+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 0x28d40edd	crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff	__raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28df040c	unregister_efivars
+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 0x291354ef	crypto_attr_alg2
+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 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 0x2a8b0bf2	blk_trace_startstop
+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 0x2b34a4f7	skcipher_geniv_alloc
+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 0x2c1a0e37	crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607	power_supply_is_system_supplied
+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 0x2c7e4dc6	tun_get_socket
+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 0x2d0d1652	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x2d3385d3	system_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d4bb98a	init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954	edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3	sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2df5ae1a	crypto_shash_finup
+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 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 0x2e5a94d6	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x2e98ac4c	free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x2ea00b62	pm_generic_thaw_noirq
+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 0x2fa23fdd	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x2fbf58b8	net_ns_type_operations
+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 0x2ff9835a	__blk_put_request
+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 0x30a43278	relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca	bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30b1f292	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x30b464f8	__rio_local_write_config_32
+EXPORT_SYMBOL_GPL vmlinux 0x30f08833	regulator_get
+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 0x328f8750	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x329006f1	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x32924a4d	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x32969bd0	sync_filesystem
+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 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 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 0x34bc8606	wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x34cdebec	class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x34d76c42	__class_create
+EXPORT_SYMBOL_GPL vmlinux 0x34f0644d	usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x35155f66	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x352fc949	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x3557e31f	pci_configure_slot
+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 0x35ccfe09	pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x35d7c252	ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x35e75663	blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x35f3ead3	usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x3604f4da	exportfs_encode_fh
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc	save_stack_trace
+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 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 0x37ddd4ae	task_xstate_cachep
+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 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 0x3927648a	crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x394483d9	rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x395e0958	acpi_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x396b7fae	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x39a3176a	ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x39ae6b54	sysfs_create_file
+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 0x3a214373	crypto_tfm_in_queue
+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 0x3ab8d3bd	tcp_get_info
+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 0x3af9f489	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3b05f0c3	xen_swiotlb_map_sg
+EXPORT_SYMBOL_GPL vmlinux 0x3b1746c1	dev_pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x3b1a26a5	regulator_get_exclusive
+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 0x3bc5688e	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c	usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c5dba15	regcache_cache_only
+EXPORT_SYMBOL_GPL vmlinux 0x3c832673	inet_ctl_sock_create
+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 0x3cdf5155	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3ce0b92a	crypto_unregister_template
+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 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 0x3de9cae1	crypto_remove_final
+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 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 0x3f54548c	wakeup_source_create
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9	gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f86a43e	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x3f9e94f9	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x3fbc0463	max8997_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x3fdb16ab	debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x3fe38920	tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x3fed8b54	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x402e5db5	pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40607537	fib_rules_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 0x41999699	rtnl_af_register
+EXPORT_SYMBOL_GPL vmlinux 0x41b53d75	ip_route_output_flow
+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 0x423bed47	dev_forward_skb
+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 0x42de2f6c	dev_change_net_namespace
+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 0x448305e2	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4	wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44976b99	clone_private_mount
+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 0x45314b4f	regmap_init
+EXPORT_SYMBOL_GPL vmlinux 0x453379ed	pm_generic_suspend_noirq
+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 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 0x466f2431	wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b	__crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46944434	tty_ldisc_deref
+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 0x4717590d	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c	gpio_request
+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 0x4865f9b3	inet_getpeer
+EXPORT_SYMBOL_GPL vmlinux 0x48682db9	perf_guest_get_msrs
+EXPORT_SYMBOL_GPL vmlinux 0x4873aaa9	i2c_unlock_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x4889f2f0	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x489044fb	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0	sysctl_tcp_cookie_size
+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 0x49c7dc1e	__sock_recv_ts_and_drops
+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 0x4a3bc13e	get_net_ns_by_pid
+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 0x4b386538	tcp_twsk_destructor
+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 0x4bc62a81	audit_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4bdbbdf3	usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x4c0a9779	md_trim_bio
+EXPORT_SYMBOL_GPL vmlinux 0x4c26889c	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0	ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x4c55a559	device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4cb4a7bb	agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x4cd07ac8	crypto_alloc_base
+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 0x4d371303	xfrm_audit_state_replay_overflow
+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 0x4db74f95	regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x4dc0683b	crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x4de56218	crypto_alg_lookup
+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 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 0x4f6c6df8	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x4f6f4770	regulator_get_init_drvdata
+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 0x5057b534	regmap_exit
+EXPORT_SYMBOL_GPL vmlinux 0x5064c210	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a	alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508c5f96	iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0x508e726b	cgroup_path
+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 0x50c08440	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23	__alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a	__i2c_first_dynamic_bus_num
+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 0x5160707f	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b	xen_store_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6	hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5212685a	__pneigh_lookup
+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 0x52bf38c3	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x52c50479	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x52c5aee2	class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x52d7b5d2	module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x52dba066	devres_release_group
+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 0x54318eea	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x5451fcc5	__pm_stay_awake
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef	handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54a64b80	rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x551619fd	driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x552567c0	inet_putpeer
+EXPORT_SYMBOL_GPL vmlinux 0x55418d82	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x55526907	xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55748a5b	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x557500c7	perf_event_refresh
+EXPORT_SYMBOL_GPL vmlinux 0x557f3954	led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x55abbd61	usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x5603071b	scsi_nl_sock
+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 0x56965a59	nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x56a1290a	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x56b63670	lzo1x_1_compress
+EXPORT_SYMBOL_GPL vmlinux 0x56c35117	crypto_init_spawn2
+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 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 0x581ad785	sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x584119bb	da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x58635df1	crypto_givcipher_type
+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 0x5889199e	gpiochip_is_requested
+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 0x5996139a	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x599fca01	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x59a136a3	cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x59b864cc	mmc_app_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x59c779e4	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0x59eae699	ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x5a1dc483	tpm_gen_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x5a20104e	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67	gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+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 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 0x5bb906a7	wait_rcu_gp
+EXPORT_SYMBOL_GPL vmlinux 0x5bccfa85	kobject_uevent
+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 0x5d0bc22b	put_driver
+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 0x5d7f0de5	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067	register_acpi_bus_notifier
+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 0x5df493fc	raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x5e0120a8	ring_buffer_oldest_event_ts
+EXPORT_SYMBOL_GPL vmlinux 0x5e01fcdb	sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5e94d3bf	__pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f	ahci_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x5eddf62c	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x5ee3a942	pci_disable_pasid
+EXPORT_SYMBOL_GPL vmlinux 0x5f12311d	user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x5f1e3dfe	inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x5f248f72	set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4	check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f38d42c	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x5f3cd55d	usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x5f7791b5	crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x5f8afd65	xfrm_audit_state_add
+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 0x6035a516	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x604f7a33	cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0x60506751	unmap_kernel_range_noflush
+EXPORT_SYMBOL_GPL vmlinux 0x60515d25	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x60524e06	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x606932fb	scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x607eb1d6	get_task_comm
+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 0x61d0a165	usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x61ebbde1	rio_local_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x6202c9ff	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6238261a	usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406	hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x624c50dd	mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x6267cae2	rio_request_outb_dbell
+EXPORT_SYMBOL_GPL vmlinux 0x627b5a0e	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x62cc2f2a	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x62eef303	pm_schedule_suspend
+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 0x642404d3	sched_setscheduler
+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 0x648feda9	pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x64c0e96a	md_stop
+EXPORT_SYMBOL_GPL vmlinux 0x64cfbd8f	get_dcookie
+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 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 0x65d6d0f0	gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65e990c8	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65f5c591	raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x65fa533b	usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x660ae3b7	register_net_sysctl_rotable
+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 0x664d63f8	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x6658e0e7	wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x66778069	usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x667be86e	crypto_hash_walk_first
+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 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 0x6763cffc	aead_geniv_free
+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 0x67c5636c	posix_clock_register
+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 0x6872fda6	find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x6882e0bc	inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c	unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68951de2	ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x68cd2df4	blkiocg_update_timeslice_used
+EXPORT_SYMBOL_GPL vmlinux 0x68eff5d4	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x6901f843	usb_disable_xhci_ports
+EXPORT_SYMBOL_GPL vmlinux 0x6923ce63	irq_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x69447467	ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x694ac7dd	proc_net_fops_create
+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 0x6a36d5ab	crypto_aes_set_key
+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 0x6a8441be	cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6aa884ed	kick_process
+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 0x6b0b0e42	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa	ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b4746d0	sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f	gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b853542	ip6_local_out
+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 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 0x6d362e88	do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x6d4668b0	wm8350_reg_lock
+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 0x6e0da60b	alloc_page_buffers
+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 0x6f36f38f	mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x6f37c92e	relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x6f44133f	blk_add_request_payload
+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 0x6fc98630	get_task_mm
+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 0x70cf032f	usb_hcd_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7109d015	relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x713c5702	ata_wait_register
+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 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 0x7236bb9b	rdev_get_id
+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 0x72adbfe3	usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x72b212ff	regulator_bulk_enable
+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 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 0x74336723	register_efivars
+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 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 0x74deb10c	used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e5d3bc	inet_twsk_schedule
+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 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 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75eb88b8	i2c_probe_func_quick_read
+EXPORT_SYMBOL_GPL vmlinux 0x75fbb7b3	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x760872be	dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd	dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x76397985	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x765bbf09	sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x7694b822	register_mce_write_callback
+EXPORT_SYMBOL_GPL vmlinux 0x76967905	usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x76a1a1f0	regmap_update_bits
+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 0x77ba76f3	hrtimer_init_sleeper
+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 0x78a44b7b	__netpoll_cleanup
+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 0x796931fb	blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x796c2d48	dm_get_md
+EXPORT_SYMBOL_GPL vmlinux 0x79903610	regmap_raw_write
+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 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 0x7a4c1438	pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a4faeda	inet_csk_route_req
+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 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 0x7b6e8358	__mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x7b7f1818	usb_is_intel_switchable_xhci
+EXPORT_SYMBOL_GPL vmlinux 0x7b831c8a	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9	bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x7baeafb1	pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x7be0965a	dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x7bef6b01	ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7c110132	set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x7c29d4a5	usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7c357d59	sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x7c94a551	usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x7cd0bde4	srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7cef4d6a	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0x7cf2de25	inet6_destroy_sock
+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 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 0x7e2258d4	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8	scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e356be0	blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x7e39c737	aead_geniv_alloc
+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 0x7ef6a85d	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x7f04e593	xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x7f33243e	regcache_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f45ea30	md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x7f6c529b	usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7f907862	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x7f9205b4	hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x7fb8f4b5	firmware_kobj
+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 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 0x80c19ca2	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x80f3268f	__trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0x81101ab7	xen_swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x815ec7e7	sysfs_unmerge_group
+EXPORT_SYMBOL_GPL vmlinux 0x816ddc97	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x81760c2a	stmpe_set_altfunc
+EXPORT_SYMBOL_GPL vmlinux 0x81ef8b1f	spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x82239268	blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f	__gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x823a0d56	blk_queue_flush_queueable
+EXPORT_SYMBOL_GPL vmlinux 0x824219dc	cgroup_unload_subsys
+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 0x834ca35a	tcp_reno_min_cwnd
+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 0x83bd80d4	sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x83ce82eb	get_monotonic_boottime
+EXPORT_SYMBOL_GPL vmlinux 0x841a2c09	wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x841df206	xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x842186ed	netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef	acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x8453fdaa	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x84ab042c	spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x84b106be	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x84b596c7	usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x84bece77	ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x85050965	__irq_alloc_descs
+EXPORT_SYMBOL_GPL vmlinux 0x85283c37	tcp_register_congestion_control
+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 0x85811351	ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x85b0cb05	tcp_reno_ssthresh
+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 0x85d7d4c8	scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd	hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x85dfdb16	unregister_pernet_subsys
+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 0x86a51007	gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6	klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x86b1378a	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d	synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x870e16b7	xen_test_irq_shared
+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 0x886a4204	perf_event_read_value
+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 0x88dc0e9e	rdev_get_drvdata
+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 0x89b41c73	pstore_register
+EXPORT_SYMBOL_GPL vmlinux 0x89b59810	class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf	usb_usual_check_type
+EXPORT_SYMBOL_GPL vmlinux 0x89f0db4c	dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x89ff43f6	init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8a1be19a	crypto_init_shash_spawn
+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 0x8a9d95c9	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x8abacc47	get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x8ac17c7e	part_round_stats
+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 0x8af69a68	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8b04668e	bind_interdomain_evtchn_to_irqhandler
+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 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 0x8c613710	__rtnl_af_register
+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 0x8d15f646	debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x8d500491	ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x8d72b33c	rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8d77bdd5	raw_seq_stop
+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 0x8e3ba9c7	inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x8e3e4356	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x8e44578e	xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8e61bfd3	md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x8e6d498c	ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x8e7155b9	unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8e88ace2	usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8ed09c39	cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x8edfc605	acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0x8ef50ca5	blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x8ef660c1	srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8eff6f73	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0x8f14beb9	ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8f3a2688	pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x8f3ea366	tcp_init_congestion_ops
+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 0x8ff7bc7c	rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8ffe7499	device_init_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a	acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x900bee0f	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x905528ec	user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x9062c322	ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x9095c716	swiotlb_tbl_map_single
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a	crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90c9d8e8	register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x90d1e20c	crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x90ffb8f2	skb_pull_rcsum
+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 0x9159b9d6	profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x91734bb3	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x918ad429	ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x91ce465c	usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x91da3d4e	ip6_sk_dst_lookup_flow
+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 0x9310b133	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x933a4e98	usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x933a52be	uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d	snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d96403	blk_insert_cloned_request
+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 0x94ef4d05	cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952570e4	rtnl_register
+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 0x957f2fb3	ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x95b01681	rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x95b9ac04	regmap_write
+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 0x96861d91	ata_sff_qc_fill_rtf
+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 0x97353746	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0x975a4c47	use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x977d3aa6	pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x978178ec	rtnl_af_unregister
+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 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 0x993bbbae	css_id
+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 0x9a0dbff1	__init_kthread_worker
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a2a4eea	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x9a2d12c6	__rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a4ba814	cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x9a5c54c8	pid_vnr
+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 0x9adae3bc	ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87	ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9b09ad65	rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x9b405d9e	crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9b4ba368	ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x9b71077b	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x9b8d5af2	dm_path_uevent
+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 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 0x9c9dd81f	ablkcipher_walk_phys
+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 0x9d04b013	eventfd_fget
+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 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 0x9e4ddb57	perf_event_create_kernel_counter
+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 0xa14523d0	register_user_hw_breakpoint
+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 0xa163ef42	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0xa18e49f9	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0xa1d34365	crypto_destroy_tfm
+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 0xa2b0a3ed	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08	acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa304c686	cred_to_ucred
+EXPORT_SYMBOL_GPL vmlinux 0xa30b6825	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xa30c5f99	xenbus_map_ring
+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 0xa3b8d4dc	virtqueue_enable_cb_delayed
+EXPORT_SYMBOL_GPL vmlinux 0xa3bb9dec	blkcg_get_weight
+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 0xa48196c8	kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4932a0b	add_page_wait_queue
+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 0xa51fd9d7	unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xa529bc5b	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0xa5448856	sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0xa54e9b4d	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xa566e805	preempt_notifier_register
+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 0xa5c8d7b6	xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c	async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa5f475f1	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xa61d9a4c	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xa63022d8	da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xa6932b04	event_storage_mutex
+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 0xa7c9e39e	synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xa7f92105	add_uevent_var
+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 0xa85d8235	inet6_csk_search_req
+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 0xa8b82a53	xen_destroy_contiguous_region
+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 0xa999d867	crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xa9a1b357	rtnl_put_cacheinfo
+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 0xaa1f1fe2	crypto_shash_update
+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 0xaaadfb77	ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xaaafee3c	wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xaab06297	lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xaacc5a3f	inet_hash
+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 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab88f153	user_match
+EXPORT_SYMBOL_GPL vmlinux 0xabc47f60	atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xabf9d714	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xac0723b9	rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xac0b82c6	__ip_route_output_key
+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 0xacc6dec4	rtnl_link_register
+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 0xacfdcbd0	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xad183db5	__sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0xad4b2783	register_pernet_subsys
+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 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 0xae7c5411	ms_hyperv
+EXPORT_SYMBOL_GPL vmlinux 0xae9a2f7c	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xae9f851f	xenbus_probe_node
+EXPORT_SYMBOL_GPL vmlinux 0xaeea3073	xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xaef0a96f	vfs_kern_mount
+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 0xafdc0a37	netdev_rx_handler_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xafe110f2	pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0xb00150ec	scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xb0663978	power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb06d6fe6	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb0ae5977	ftrace_set_notrace
+EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47	ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xb0c999dc	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc	cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb1145213	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb125155e	ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0xb129f576	tcp_done
+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 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 0xb224d69c	shash_attr_alg
+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 0xb29bddf5	posix_clock_unregister
+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 0xb30be7af	cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xb30ffe7b	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0xb315f6b6	i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb3177a47	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9	hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb331a451	crypto_ahash_setkey
+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 0xb3db2ef7	vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb3e2de12	kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xb3eb5ae5	tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0xb40428c3	pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xb41f6414	__put_net
+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 0xb4f3609e	filter_current_check_discard
+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 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 0xb5e0aea8	__trace_note_message
+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 0xb685d687	usb_free_coherent
+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 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 0xb84e8008	css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xb86ba71c	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb	klist_next
+EXPORT_SYMBOL_GPL vmlinux 0xb885ae2f	xen_swiotlb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xb8c1e758	skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xb9010c76	power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c	scatterwalk_map_and_copy
+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 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 0xb9f7a7bb	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xba6134a4	fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xbaa5be01	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xbaaeb90e	led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbab0c5e0	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27	scsi_nl_remove_transport
+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 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 0xbd164066	rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xbd2f89b3	evm_verifyxattr
+EXPORT_SYMBOL_GPL vmlinux 0xbd3b02f3	usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46	unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbda04d99	xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xbdbc6182	__xenbus_register_backend
+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 0xbddfe5fb	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xbde2c210	vfs_getxattr
+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 0xbe16cb81	crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4	ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3f5298	ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbeac3749	transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xbebd39e1	find_symbol
+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 0xbf677c8e	modify_user_hw_breakpoint
+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 0xc0097236	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xc020c541	class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xc03ab504	setup_deferrable_timer_on_stack_key
+EXPORT_SYMBOL_GPL vmlinux 0xc04b8581	cgroup_attach_task_all
+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 0xc13ff524	regmap_bulk_read
+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 0xc189a987	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xc1a42661	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xc1e5c3b8	usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091	vm_unmap_aliases
+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 0xc2abaf9f	__class_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2c8cc97	usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2ccce3f	crypto_register_template
+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 0xc33ed1d8	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xc340b85e	seq_open_net
+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 0xc3daa34f	sk_setup_caps
+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 0xc492476e	register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc4b0fd7d	__tracepoint_rpm_return_int
+EXPORT_SYMBOL_GPL vmlinux 0xc50478ef	usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xc51c3373	inet_csk_route_child_sock
+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 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 0xc6d5c6da	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc6d96772	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xc716dcf8	register_net_sysctl_table
+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 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 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 0xc970bda6	ahci_shost_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xc9755afb	vfs_listxattr
+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 0xca957e33	crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb022c55	tcp_is_cwnd_limited
+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 0xcbaac648	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2	get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbef9643	crypto_init_spawn
+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 0xcc53d8d3	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305	is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc91a0fe	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xccbf1e58	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa	sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcce29e02	sysdev_store_ulong
+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 0xcd8c1f36	inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcd910a81	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9	usb_usual_set_present
+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 0xd018c53d	scsi_nl_add_driver
+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 0xd0d0e998	posix_timer_event
+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 0xd1c7f390	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xd1e2644e	nf_unregister_afinfo
+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 0xd2293387	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xd23cf296	rio_release_inb_pwrite
+EXPORT_SYMBOL_GPL vmlinux 0xd2409466	sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0xd254379b	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xd2624587	inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xd26c8304	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1	__round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27a9d32	gnttab_map_refs
+EXPORT_SYMBOL_GPL vmlinux 0xd28fdc52	vfs_setxattr
+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 0xd32a7a79	mmput
+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 0xd45dbe31	crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xd4693fe3	ahci_pmp_retry_srst_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd4bae535	crypto_register_instance
+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 0xd5514295	blk_rq_prep_clone
+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 0xd65157a9	pci_load_and_free_saved_state
+EXPORT_SYMBOL_GPL vmlinux 0xd67364f7	eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xd69b423f	handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd6d95b05	crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd6e09cd2	__pm_runtime_idle
+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 0xd713975e	ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xd72feba2	xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xd753c937	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0xd75a9061	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd75f93ba	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd76505e8	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985	regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77af3de	sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8	klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7907357	skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xd79f420c	crypto_alloc_instance
+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 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 0xd8b854a7	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xd8e37b34	sdio_release_host
+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 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 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 0xda8faed1	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xdac03d4b	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xdad6009d	inode_dio_wait
+EXPORT_SYMBOL_GPL vmlinux 0xdadb8618	ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xdae4e22b	sk_clone
+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 0xdb66e470	mnt_drop_write
+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 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 0xdc564602	skcipher_geniv_exit
+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 0xdd2a7aaf	xen_swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xdd48f1f3	sk_detach_filter
+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 0xde10f3b8	ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xde163f8f	usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xde337dc9	inet_csk_get_port
+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 0xde7677ce	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xdf5d79ea	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdf616470	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06	klist_iter_init_node
+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 0xe03adad2	vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe03b872a	blk_trace_setup
+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 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 0xe14de0f3	tpm_write
+EXPORT_SYMBOL_GPL vmlinux 0xe1506c5d	spi_bus_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe1793671	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe184ea3a	simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xe1bd6f0c	xfrm_inner_extract_output
+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 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 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 0xe30e2c43	set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xe351277f	kern_mount_data
+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 0xe4067f42	inet_csk_listen_start
+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 0xe44cd564	ftrace_event_reg
+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 0xe4cd0556	get_user_pages_fast
+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 0xe56da222	platform_device_add_data
+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 0xe6765ff5	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xe6a7fd7a	pm_generic_restore_noirq
+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 0xe78a6b8b	pm_generic_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xe78be098	xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0xe7d1c5ab	ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877	pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe807d01f	pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xe822e2f3	inet_csk_reqsk_queue_hash_add
+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 0xe8897695	ipv6_find_tlv
+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 0xe97a91da	usb_driver_claim_interface
+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 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 0xeb12439b	unregister_hw_breakpoint
+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 0xec7402ff	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xeca84d1c	setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xecb9b31d	iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xecce90e3	__get_user_pages_fast
+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 0xed66784d	br_fdb_test_addr_hook
+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 0xee7ed427	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xee8f538b	blkcipher_walk_phys
+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 0xef4166ac	regmap_init_spi
+EXPORT_SYMBOL_GPL vmlinux 0xef48d254	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xef4bf506	shash_register_instance
+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 0xf076b177	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xf0a9d664	bio_alloc_mddev
+EXPORT_SYMBOL_GPL vmlinux 0xf0be1ecd	rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf0ff1cec	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0xf11257d2	find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xf1268a7c	irq_remove_generic_chip
+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 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL vmlinux 0xf1b44803	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9	ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xf1b8d96c	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0xf1e0df1b	ahci_reset_controller
+EXPORT_SYMBOL_GPL vmlinux 0xf1e1e077	tcp_reno_cong_avoid
+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 0xf25ae5c2	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xf25f1531	put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf263092b	debugfs_create_u8
+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 0xf331faf7	xfrm_audit_state_replay
+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 0xf38eaea8	sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca	kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97	cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3c5bfe3	usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d	regulator_set_voltage_time
+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 0xf499fdb2	rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4cdced8	xenbus_dev_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xf4d292f5	exportfs_decode_fh
+EXPORT_SYMBOL_GPL vmlinux 0xf4d40fb9	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xf4d59c17	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c	__ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf5095ace	fsstack_copy_attr_all
+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 0xf5f953b6	crypto_ahash_finup
+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 0xf6cc6e71	platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf6e04730	event_storage
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5	ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf6f6e7d8	ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530	xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf7051e04	xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf710fc84	crypto_drop_spawn
+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 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 0xf95c4af8	platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833	dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0	set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf977ad05	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xf979ef84	blk_queue_bio
+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 0xf9af515f	each_symbol_section
+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 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662	scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa240e32	ata_port_schedule_eh
+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 0xfac15cd0	__audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xfac9f9b6	swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0xfad369a1	driver_find
+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 0xfb4c2745	sk_attach_filter
+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 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 0xfc865e9b	blk_unprep_request
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b	apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfca3eb87	blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xfcb4d904	inet_csk_reqsk_queue_prune
+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 0xfd6eb3bb	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xfd7100d2	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7	erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c	crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe4a4b78	inet_twsk_put
+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 0xfeaef59d	crypto_larval_kill
+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 0xff249a21	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xff3f3aad	console_drivers
+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 0xffbf7c34	tps6586x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xffc186b3	ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xffd6b775	preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xffeecc36	__pci_complete_power_transition
--- linux-3.2.0.orig/debian.master/abi/3.2.0-36.57/i386/generic.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/i386/generic.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_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
+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
+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
+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
+uas
+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-36.57/armel/omap.modules
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armel/omap.modules
@@ -0,0 +1,2285 @@
+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
+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
+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
+uas
+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-36.57/armel/omap
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armel/omap
@@ -0,0 +1,9740 @@
+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 0x14f2aa5a	capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x18536321	detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1b3f134c	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 0x2cba2e64	capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4	capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3adf3ebc	capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51	capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x483b766e	capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4	capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5896bf60	capi_ctr_suspend_output
+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 0x6ae887b8	capi_ctr_down
+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 0x8f699913	capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278	register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa6e66681	capi20_release
+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 0xe912e770	capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xeca5b5cb	capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606	capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce	hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99	FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x4e195a14	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/i4l/isdn 0x5060a89b	isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x792182e0	register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc95a22a0	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 0x02a83c58	recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x07ac6edc	recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x204d3d97	recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c	mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3080a32f	create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x468eb0f7	mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4a72c515	queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c1ea345	recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c	mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51a8ab80	mISDN_freedchannel
+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 0x7462d2eb	get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8aac6d6b	mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324	mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x99362e2b	bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ae1c318	recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xad02ec6c	mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7c5148d	confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb9212bc9	mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729	mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc44596fc	mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f	mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151	mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd9c70815	mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde9a7dca	mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe24da5fa	get_next_dframe
+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 0xf15b3035	dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf82018dd	mISDN_unregister_device
+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 0x0cbb512a	dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x75597866	dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x9ac0fcc7	dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0xf6325bfd	dm_dirty_log_type_register
+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 0x5ed9f3f7	dm_exception_store_create
+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/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 0x2a2cd886	flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2e57278c	flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x313b6ca1	flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3671f004	flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x49f39b9b	flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x50fd9204	flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6070cb1d	flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x68d5ebac	flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7d2e7814	flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa33a1049	flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaecb41f4	flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb13b157f	flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda5a055c	flexcop_device_initialize
+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 0x4f079217	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 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 0x92333b2c	dvb_net_release
+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 0x2748af05	dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x65fc1843	dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6fb82ec8	dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x7c59eac6	dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x88c71a78	dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa5bbe930	usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd0fe01fc	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 0xab629af7	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 0x13b6a70c	dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x69dc84d1	dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x763bcb74	dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7f2ed339	dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x83e7b3db	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 0xd4765f67	dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd638325f	dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdac52724	dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe152c905	dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf7100e60	dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf9242378	dibusb_read_eeprom_byte
+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 0x6ea9af67	videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9622ac35	videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xf5e21a18	videobuf_dvb_get_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 0x271a711c	hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x594ed404	hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x803301d0	hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x84619196	hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8e765e1c	hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1a2a98c0	irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3090cfc9	sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4309a780	sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x589e8b5d	sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5cc04325	irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc477c14a	sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcc387656	sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdcf85a69	sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf01955e8	sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf46783d4	sirdev_raw_read
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x07e46eb9	free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd4877ddd	alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x3049df57	pppox_ioctl
+EXPORT_SYMBOL drivers/net/ppp/pppox 0x68069be2	register_pppox_proto
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xc720f093	pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18	unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x08ba7cd2	hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x144a690e	hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x178ed88e	hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3ab49526	alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5c8edcde	attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x870efeba	unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x939e0cbd	register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa6b8242f	detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd432a610	hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xdb9f0343	hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe51b4be5	unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00f1dbaa	ath_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0ccde9a3	ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x13c53d38	ath_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x23fe8b8e	ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026	ath_is_49ghz_allowed
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4533d2e3	ath_regd_init
+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 0x98aa075a	ath_hw_get_listen_time
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1a9f65b	ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xabcb8f6e	ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdbed4944	ath_hw_cycle_counters_update
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf3e9810c	ath_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40d3a2e4	ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4acf9b94	ath9k_cmn_init_crypto
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5b75d33b	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 0xf59eadf3	ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfa82d706	ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfbc25258	ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x050c73ef	ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bef0918	ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1006f663	ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b6af668	ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f36b1bf	ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22fb188b	ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24b2e1e1	ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2792509f	ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29064632	ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a8e02cb	ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dea2759	ar9003_hw_bb_watchdog_dbg_info
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f28875d	ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a5bce5	ar9003_paprd_is_done
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x340e7ffa	ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35599f0d	ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x384c066b	ath9k_hw_enable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x387e1d49	ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a7f4064	ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c701062	ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x443ebb55	ar9003_hw_disable_phy_restart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44c07e8f	ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ff06867	ath9k_hw_btcoex_bt_stomp
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53ef44a8	ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5456c84e	ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x554cc084	ar9003_paprd_populate_single_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55ad986b	ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57338df5	ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c615667	ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dfb734f	ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e42255c	ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66ef1257	ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x673ca75e	ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68ab56dd	ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a1c11d9	ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ed263a4	ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fd93f7b	ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72384be6	ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7245002a	ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x788674d6	ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d078a18	ath9k_hw_disable_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8526a8	ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x816a9b1b	ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a8d8823	ar9003_paprd_init_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c96bc04	ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f2271ba	ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91d96beb	ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x926b4cbf	ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94b48f6d	ath9k_hw_abort_tx_dma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bc1946d	ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d64cefd	ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d9779b7	ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dd60d2a	ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1a72e97	ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa998a02b	ath9k_hw_bstuck_nfcal
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac4aa87b	ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac6e556e	ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb69fb4f8	ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb83c8886	ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb2d48cc	ar9003_paprd_create_curve
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbae147f	ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbeb6623a	ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbef501b9	ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1f8c9af	ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc77c8337	ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb7d2e2b	ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce7b9dd3	ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd202669e	ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3262835	ath9k_hw_stop_dma_queue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd795d3ea	ath9k_hw_getnf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8b5bb3a	ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb2614a4	ar9003_get_pll_sqsum_dvc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde19afe6	ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeb4a02c	ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1895738	ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2af4d7a	ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe615844b	ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe788853d	ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8c18e92	ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea561a1c	ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaa7f2c3	ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec83d5a0	ath9k_hw_proc_mib_event
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed1723ca	ath9k_hw_disable_mib_counters
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeec6cdfb	ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3cb8169	ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3e9ef48	ar9003_paprd_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf769bb10	ar9003_paprd_setup_gain_table
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa0a17f3	ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeff1fd8	ath_gen_timer_isr
+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 0x03d7d671	brcmu_pktq_pflush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x239ba756	brcmu_pkttotlen
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2be6dff9	brcmu_pktq_init
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4101df72	brcmu_pktq_mdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x49cb08fe	brcmu_pktq_flush
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x79308a19	brcmu_pktq_penq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x80e387fc	brcmu_pkt_buf_get_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8ee2a48c	brcmu_pktq_peek_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x92ce735f	brcmu_pktq_pdeq
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9be01704	brcmu_pktfrombuf
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb01387bf	brcmu_pktq_penq_head
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb8c240a1	brcmu_pktq_pdeq_tail
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcb478d86	brcmu_pkt_buf_free_skb
+EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe0e19033	brcmu_pktq_mlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602	hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c1eba0a	hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12ecd615	hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21821cd9	hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2415d042	hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x26066130	prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a695e4	hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c9c9862	hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41a819c9	hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46ce1f61	hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4adbb4fb	hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4ebfa856	hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5baf914d	hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x605e4dfd	hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x71e25e75	hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8fc756dd	hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b5eddb1	hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f	hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb0b4e1f4	hostap_set_hostapd_sta
+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 0xb631fcc3	hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc53a31b4	hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8862a47	hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd373f4d0	hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8d72ea0	hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd9e041f7	hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdb9a5083	hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed7b2ff6	hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10615e32	rtl92c_dm_init_edca_turbo
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10b9a5eb	rtl92c_dm_init_rate_adaptive_mask
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x12b12b75	rtl92c_dm_bt_coexist
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1bca3230	rtl92c_phy_lc_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1df5d7d5	rtl92c_dm_init
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f74f3d6	rtl92c_phy_sw_chnl
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4100d90a	rtl92c_dm_write_dig
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x49afbe74	rtl92c_phy_set_io
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a8a27b1	_rtl92c_phy_fw_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ef5bc83	_rtl92c_phy_bb8192c_config_parafile
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4f4bca79	rtl92c_phy_query_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5dfce6ec	_rtl92c_phy_set_rf_sleep
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61d437aa	rtl92c_phy_sw_chnl_callback
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6489be2c	_rtl92c_store_pwrIndex_diffrate_offset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x663d2a03	rtl92c_phy_set_bw_mode
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6cba1de8	_rtl92c_phy_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70f1fab1	rtl92c_download_fw
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x78ee9b35	rtl92c_dm_watchdog
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7cba7a14	rtl92c_dm_check_txpower_tracking
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7eb54648	rtl92c_dm_rf_saving
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x81a4cb82	rtl92c_fill_h2c_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9b2b510b	_rtl92c_phy_dbm_to_txpwr_Idx
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa2f263e2	rtl92c_phy_set_io_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa92c689a	rtl92c_set_fw_rsvdpagepkt
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9d16f60	rtl92c_phy_scan_operation_backup
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab57399b	rtl92c_phy_iq_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac2e21b3	_rtl92c_phy_init_bb_rf_register_definition
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaf046df0	rtl92c_phy_set_txpower_level
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb04ef98e	rtl92c_phy_rf_config
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb21b70e6	rtl92c_phy_set_rfpath_switch
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48	_rtl92c_phy_calculate_bit_shift
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd03fb727	rtl92c_firmware_selfreset
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd1fe2562	_rtl92c_phy_fw_rf_serial_read
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd642e247	rtl92c_phy_set_bb_reg
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf38d176	rtl8192_phy_check_is_legal_rfpath
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe8563aa5	_rtl92c_phy_rf_serial_write
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeec25cde	rtl92c_phy_ap_calibrate
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf138298a	rtl92c_phy_update_txpower_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf2acd66e	_rtl92c_phy_txpwr_idx_to_dbm
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf3c1ec7b	rtl92ce_phy_set_rf_on
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa6f9b9b	rtl92c_set_fw_joinbss_report_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfe12f96a	rtl92c_bt_rssi_state_change
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfeb40af4	rtl92c_set_fw_pwrmode_cmd
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01553960	rtl_cam_add_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x088b285a	rtl_get_tcb_desc
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0ed8aaab	rtl_usb_disconnect
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1ab466fe	rtl_cam_delete_one_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x21476795	rtl_cam_mark_invalid
+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 0x4a8fe397	rtl_cam_empty_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x55014bce	rtl_ps_enable_nic
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x69c1370e	rtl_usb_probe
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6dcec310	rtl_cam_reset_all_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6f7631ba	efuse_read_1byte
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b510169	rtl_cam_get_free_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bf48895	rtl_efuse_shadow_map_update
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7db3b54d	rtlwifi_rate_mapping
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb558da08	rtl_ps_set_rf_state
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7d89f2c	rtl_cam_del_entry
+EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf8a3e170	rtl_ps_disable_nic
+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 0x86561400	pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x8694ec8f	pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0x97cddec8	pps_unregister_source
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x21cc6513	fcoe_transport_detach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3b83a5cd	fcoe_transport_attach
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4549b250	fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x53336f61	fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b544b92	fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9166fb83	fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb6571079	fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcdc37e09	fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xced10e42	fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00271e22	fc_fill_reply_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00858cf7	fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b2b4a65	fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d82f11d	fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1118783b	fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x161eeb63	fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17376065	fc_exch_mgr_list_clone
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986	fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2339c5df	fc_fc4_register_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x256a790e	fc_lport_set_local_id
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26da240c	fc_frame_alloc_fill
+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 0x31dfbfff	fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf	fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b4ad157	fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e05fe25	fc_vport_id_lookup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4282dad5	fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x429fb755	libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4595c405	fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47109e3e	fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e9ea95a	fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5df9180f	fc_lport_iterate
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69a48ac3	fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d29aefa	fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70bb5bf5	fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74f26213	fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ca3d059	fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e2443d2	fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94d976e0	fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x964284b4	fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b841320	fc_fc4_deregister_provider
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fdc2ba6	fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7c1f678	fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1594947	fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb164449e	fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1ec219b	fc_fill_hdr
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb318c78a	fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb84f69e3	fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc06e41	fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2dcf40	fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf82cf7a	fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5a4eeb9	fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5efb6bc	fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5294704	fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe493a882	fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7afe8b1	fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9df3710	fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea186a8c	_fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed5404a2	fc_lport_destroy
+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 0x043cd034	transport_wait_for_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0x04bdf48f	target_get_task_cdb
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0782e701	sas_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x08939c6c	transport_kmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x0ebee16e	target_wait_for_sess_cmds
+EXPORT_SYMBOL drivers/target/target_core_mod 0x10385a95	target_fabric_configfs_init
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1246a121	fc_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1bf9b791	__transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x1d0217a0	transport_free_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x258181c9	transport_do_task_sg_chain
+EXPORT_SYMBOL drivers/target/target_core_mod 0x2f63d43d	core_tpg_check_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0x30e051f6	transport_deregister_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x3fa6db5e	transport_generic_process_write
+EXPORT_SYMBOL drivers/target/target_core_mod 0x40a99cda	transport_lookup_cmd_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0x40b63f4b	transport_generic_free_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x49755bd2	fc_parse_pr_out_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x4fea654c	transport_release_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x5a6dd249	iscsi_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x62672212	transport_complete_task
+EXPORT_SYMBOL drivers/target/target_core_mod 0x639a614e	transport_generic_handle_data
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6717c2cc	iscsi_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0x68428fbe	transport_init_se_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x697bf208	core_tpg_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6b5dd90d	transport_kunmap_data_sg
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6c559895	transport_register_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0x6f3191fb	target_splice_sess_cmd_list
+EXPORT_SYMBOL drivers/target/target_core_mod 0x75948787	core_tpg_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0x79ab9c9b	fc_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0x7daae976	iscsi_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 0x7e026b9f	transport_generic_new_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8488a09e	transport_subsystem_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c	transport_set_vpd_assoc
+EXPORT_SYMBOL drivers/target/target_core_mod 0x87027c9b	target_fabric_configfs_register
+EXPORT_SYMBOL drivers/target/target_core_mod 0x87a48884	transport_generic_handle_cdb_map
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8ad86fed	core_tmr_alloc_req
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8b225257	target_fabric_configfs_free
+EXPORT_SYMBOL drivers/target/target_core_mod 0x8bb55e3c	transport_deregister_session_configfs
+EXPORT_SYMBOL drivers/target/target_core_mod 0x98b9918a	transport_init_queue_obj
+EXPORT_SYMBOL drivers/target/target_core_mod 0x9b31d3ca	transport_complete_sync_cache
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa143bf98	core_alua_check_nonop_delay
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa26b0b2a	transport_generic_map_mem_to_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa2bf3baa	transport_init_session
+EXPORT_SYMBOL drivers/target/target_core_mod 0xa463643b	transport_handle_cdb_direct
+EXPORT_SYMBOL drivers/target/target_core_mod 0xaa15ca2c	core_tpg_del_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xaa8957d0	target_put_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xad4e8d0a	transport_generic_handle_tmr
+EXPORT_SYMBOL drivers/target/target_core_mod 0xade9594b	core_tpg_clear_object_luns
+EXPORT_SYMBOL drivers/target/target_core_mod 0xafc8c055	target_get_sess_cmd
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb28967aa	fc_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb40042f1	target_fabric_configfs_deregister
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb5185dba	transport_subsystem_release
+EXPORT_SYMBOL drivers/target/target_core_mod 0xb5a8d92d	transport_lookup_tmr_lun
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbd0ca3ab	transport_generic_allocate_tasks
+EXPORT_SYMBOL drivers/target/target_core_mod 0xbf36192b	transport_check_aborted_status
+EXPORT_SYMBOL drivers/target/target_core_mod 0xc5a91bcb	core_tpg_add_initiator_node_acl
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd61dfe37	core_tpg_set_initiator_node_queue_depth
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd659c1b5	sas_get_pr_transport_id_len
+EXPORT_SYMBOL drivers/target/target_core_mod 0xd676f8af	sas_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xdf72314d	iscsi_get_fabric_proto_ident
+EXPORT_SYMBOL drivers/target/target_core_mod 0xe4c9372f	sas_get_pr_transport_id
+EXPORT_SYMBOL drivers/target/target_core_mod 0xefba7ffe	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 0xface73be	transport_send_check_condition_and_sense
+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 0x0cd84faa	usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x10316e28	usb_wwan_startup
+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 0x5178d5e6	usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x54222084	usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5fbfae01	usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6671e784	usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x77505d6a	usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d35ef07	usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa586b759	usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc138d839	usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd643f269	usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf527fe6e	usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf88c39fd	usb_wwan_write
+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 0x67677b0b	w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc0b2598a	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 0x009c51a2	unregister_8022_client
+EXPORT_SYMBOL net/802/p8022 0x6a547dad	register_8022_client
+EXPORT_SYMBOL net/802/p8023 0x033d7376	destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x96e22d45	make_8023_client
+EXPORT_SYMBOL net/802/psnap 0x3a143b52	register_snap_client
+EXPORT_SYMBOL net/802/psnap 0x7f39dbf1	unregister_snap_client
+EXPORT_SYMBOL net/9p/9pnet 0x0b92b024	p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x118b767d	p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9	p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x1a841e4c	p9_client_getlock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x1afc1716	v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x1f2bb700	p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x21de58a9	p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x22b90756	p9dirent_read
+EXPORT_SYMBOL net/9p/9pnet 0x2b664cff	p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e	p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3774655c	p9_client_create_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x37a1712f	p9_client_getattr_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x37a478c9	p9_client_mkdir_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797	p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x3ebaabce	p9_client_fsync
+EXPORT_SYMBOL net/9p/9pnet 0x46009490	p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x4687bde7	p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x4f7d16c3	p9_client_mknod_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x5bb4a87e	p9_release_pages
+EXPORT_SYMBOL net/9p/9pnet 0x670eedce	v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x68821749	p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x6d9f5901	p9_client_setattr
+EXPORT_SYMBOL net/9p/9pnet 0x6f31e2fa	p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x6f5a74d1	p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x73563a1a	p9_client_unlinkat
+EXPORT_SYMBOL net/9p/9pnet 0x78660dbd	p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x85cf5501	p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x892ae802	p9_client_readlink
+EXPORT_SYMBOL net/9p/9pnet 0x89ea3e63	v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x8e04a057	p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x977a0030	p9_nr_pages
+EXPORT_SYMBOL net/9p/9pnet 0x98d00a85	p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743	p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9d104135	p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x9d722cf0	p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x9e2f7593	p9_payload_gup
+EXPORT_SYMBOL net/9p/9pnet 0xa7768130	p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xa9cb418d	p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0xb00228a0	p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xb42145f6	p9_client_symlink
+EXPORT_SYMBOL net/9p/9pnet 0xb645da19	p9_client_readdir
+EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9	p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc786d2ac	p9_client_renameat
+EXPORT_SYMBOL net/9p/9pnet 0xd5b31e66	p9_client_lock_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xd7630812	p9_client_link
+EXPORT_SYMBOL net/9p/9pnet 0xdb478d17	p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0xdd965fd1	v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360	p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe8a95ba9	p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8	p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xf84f2022	p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d	p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0x0e6083a0	aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x387b8466	atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5295a6a1	atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xd46fa05f	alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x0f731f9e	atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x1220dca6	atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x254a13ed	vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d	vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x415a8a2f	vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x4d92cbb0	register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x4dd4cfbc	atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x656293ad	atm_charge
+EXPORT_SYMBOL net/atm/atm 0x6ad916d0	atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x7f0c1d59	atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287	sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146	sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb288d748	deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xbb473f79	atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xda99e15e	atm_dev_signal_change
+EXPORT_SYMBOL net/atm/atm 0xe8461945	atm_dev_release_vccs
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a	atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf5eab1ab	vcc_sklist_lock
+EXPORT_SYMBOL net/ax25/ax25 0x026c1368	ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x1bed00a8	ax25_hard_header
+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 0x5be0a979	ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x65f23202	ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8c991410	ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26	ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946	ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xcf72149a	ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xd028fe34	ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1	null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xe4204d4d	ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xe6ffcb2c	ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xfaf21703	ax25_header_ops
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0643c685	hci_le_ltk_reply
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ceda160	hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d1b4371	bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d9ae9e6	hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1dad06b2	hci_find_link_key_type
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3333b749	hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x39b4dd00	hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3a0137fe	bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b6b2a33	hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x412de683	bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x413cd587	bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x43674689	bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b599289	bt_printk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5758b824	hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x57e17204	hci_le_conn_update
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b8cf210	hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e5a21e3	bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f1d3d5c	hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x721dc31c	hci_recv_stream_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x874a0585	bt_sock_stream_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c4a71e6	hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x900083bd	hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325	bt_to_errno
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x949f9a3a	hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9899230f	hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x997b4ab3	hci_le_start_enc
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa45ed612	hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8ebc1e8	bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xadc0f441	hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3455006	bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd6b4574	hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf58cd52	hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0ec10c3	bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0	batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8375231	hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551	baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd386bdef	hci_find_ltk
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8797b17	hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8b53ca1	hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdbed133b	hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdfd1ec69	bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe277c23d	hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xed88208d	hci_conn_check_secure
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db	bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa0fb73d	hci_unregister_cb
+EXPORT_SYMBOL net/bridge/bridge 0x3df8d61a	br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x593e0d83	ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc69d19ca	ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xde834eb8	ebt_unregister_table
+EXPORT_SYMBOL net/caif/caif 0x2a09f713	cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x35b49017	caif_client_register_refcnt
+EXPORT_SYMBOL net/caif/caif 0x3cb284e4	caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x407100d2	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 0x74b3763a	get_cfcnfg
+EXPORT_SYMBOL net/caif/caif 0xf738f3ee	cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/can/can 0x1f9cfc72	can_ioctl
+EXPORT_SYMBOL net/can/can 0x30ebfc26	can_send
+EXPORT_SYMBOL net/can/can 0x4d7bdc7c	can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x601dc0a4	can_proto_register
+EXPORT_SYMBOL net/can/can 0x74874621	can_rx_register
+EXPORT_SYMBOL net/can/can 0xfedfbf79	can_proto_unregister
+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 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 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 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 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 0x58eedc2d	ceph_msg_dump
+EXPORT_SYMBOL net/ceph/libceph 0x5eab30e8	ceph_con_open
+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 0x65315616	ceph_messenger_create
+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 0x6f1001c6	ceph_con_send
+EXPORT_SYMBOL net/ceph/libceph 0x74daee66	ceph_calc_pg_primary
+EXPORT_SYMBOL net/ceph/libceph 0x76129d4c	ceph_client_id
+EXPORT_SYMBOL net/ceph/libceph 0x76995ff0	ceph_con_keepalive
+EXPORT_SYMBOL net/ceph/libceph 0x77692acb	ceph_msg_last_put
+EXPORT_SYMBOL net/ceph/libceph 0x7a84e770	ceph_msg_new
+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 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 0xa1f6b455	ceph_con_close
+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 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 0xd01b645a	ceph_parse_options
+EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb	ceph_flags_to_mode
+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 0xe802e132	ceph_messenger_destroy
+EXPORT_SYMBOL net/ceph/libceph 0xf15a18e8	ceph_monc_do_statfs
+EXPORT_SYMBOL net/ceph/libceph 0xf440012d	ceph_con_init
+EXPORT_SYMBOL net/ceph/libceph 0xf7289efd	ceph_osdc_start_request
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0e17589e	wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x123c4b54	ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3bd57156	wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5dad1d99	wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x73015f59	wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7a25944a	wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7c98a691	wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x94cda132	ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcd1a7fb5	ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcfa14561	ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe324fa50	ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe5f36eaa	ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf37435db	ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x171cb2bb	arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5e0025c6	arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdbbb9170	arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4d52f5bf	ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x87296555	ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc439dff7	ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2a61fb78	__nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x37ae2503	nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5ca6bbee	nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5d02d725	nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x62e10519	nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x90557884	nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcc5746ee	nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x85dd0363	xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xe8092bf4	xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x36eab75f	ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x565ba5b9	ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8b4f0336	ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33	ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf5a739dc	ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x06ea5ac9	xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0xbb00641a	xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4852c834	xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xfedcdc8e	xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0384ccca	ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x92e7dbb0	ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9f06b8d1	ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb603577c	ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf410fbe	ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xdb454ec8	ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf3305c60	ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfba311d3	ircomm_disconnect_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 0x1fad6d36	irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x2036ad06	irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x22caf86e	hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x2a44048c	irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x2a6d1d69	irlap_open
+EXPORT_SYMBOL net/irda/irda 0x2d3765bc	hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x31b27bb5	irlap_close
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b	irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3a6a2307	irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x41f86f03	irttp_data_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 0x4737e10b	irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x4a98a434	async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x4b7af9c7	irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x4dc95278	iriap_open
+EXPORT_SYMBOL net/irda/irda 0x50d0fb4b	iriap_close
+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 0x6422168a	irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x650d6536	irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x6a4770c2	iriap_getvaluebyclass_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 0x74c6eb16	hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x751b4e33	irlmp_connect_request
+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 0x7e288b33	alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x80da7829	irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x8ba14307	irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x8fc5caf0	irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x91815586	irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x993ad14b	irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9bdaf05a	async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x9d7948ee	irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xaa1d9bd0	irttp_disconnect_request
+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 0xce9b0fa7	irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xd79aa072	irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c	irlmp_service_to_hint
+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 0xf308c44b	irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xf5ab845c	irttp_flow_request
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xca7c1701	l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x3815aee2	lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x43f6575a	lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x4ac37e28	lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x8b5a161f	lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x91842417	lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xaf9da45c	lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xd7cc6579	lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xf6d99741	lapb_disconnect_request
+EXPORT_SYMBOL net/llc/llc 0x2919df90	llc_sap_find
+EXPORT_SYMBOL net/llc/llc 0x38b92846	llc_remove_pack
+EXPORT_SYMBOL net/llc/llc 0x52d7b2fd	llc_sap_list
+EXPORT_SYMBOL net/llc/llc 0x56ff995c	llc_add_pack
+EXPORT_SYMBOL net/llc/llc 0x75299779	llc_set_station_handler
+EXPORT_SYMBOL net/llc/llc 0x9656f8a0	llc_sap_list_lock
+EXPORT_SYMBOL net/llc/llc 0xae3c63dd	llc_build_and_send_ui_pkt
+EXPORT_SYMBOL net/llc/llc 0xc02134b1	llc_sap_close
+EXPORT_SYMBOL net/llc/llc 0xcc8867fa	llc_mac_hdr_init
+EXPORT_SYMBOL net/llc/llc 0xeccceda0	llc_sap_open
+EXPORT_SYMBOL net/mac80211/mac80211 0x035986b5	ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x05c64753	ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x08371df4	ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x10b95a6f	ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x115f8052	ieee80211_alloc_hw
+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 0x203f20c7	ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x295a2550	ieee80211_sched_scan_results
+EXPORT_SYMBOL net/mac80211/mac80211 0x2ec66c42	ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x307bdd72	ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x3269fbb5	ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x37dbf153	rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x38da4307	wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c4bdf89	ieee80211_enable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x3d0df72a	ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x465fce4c	ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4674a4a0	ieee80211_stop_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 0x691b4d70	ieee80211_napi_schedule
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a131db0	ieee80211_disable_dyn_ps
+EXPORT_SYMBOL net/mac80211/mac80211 0x6c5850e1	ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f02cfd1	ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x6fc8d888	ieee80211_napi_complete
+EXPORT_SYMBOL net/mac80211/mac80211 0x73f7d5cb	ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x73ffb060	ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x75379bef	ieee80211_sta_set_buffered
+EXPORT_SYMBOL net/mac80211/mac80211 0x759458f4	ieee80211_ap_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x82297f2f	ieee80211_stop_rx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x83c91425	ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x8bbcb8bf	ieee80211_sched_scan_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x8cfd35ea	ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x9094eeb3	ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x918e3fc7	__ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x98d823d0	ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b4a59b3	ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0x9f1ab023	__ieee80211_create_tpt_led_trigger
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4241970	ieee80211_sta_ps_transition
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4fe9a70	ieee80211_iter_keys
+EXPORT_SYMBOL net/mac80211/mac80211 0xa84a86fb	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 0xac18e10e	ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xac4788d5	ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb4ffa625	__ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb801a741	__ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb618557	ieee80211_disable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xc06602ac	ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xc70fe0f3	ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7b800cd	ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e	ieee80211_get_key_tx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xc9fed125	ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xd3e6aa80	ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xdd0c7d53	ieee80211_get_tkip_p2k
+EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52	ieee80211_get_key_rx_seq
+EXPORT_SYMBOL net/mac80211/mac80211 0xddecaea4	ieee80211_beacon_get_tim
+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 0xe91f2989	ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xeba14d72	ieee80211_enable_rssi_reports
+EXPORT_SYMBOL net/mac80211/mac80211 0xed9f73e6	__ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xf97e0b0b	ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb3e00e4	ieee80211_send_bar
+EXPORT_SYMBOL net/mac80211/mac80211 0xfda6f67e	ieee80211_nullfunc_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x118ce3a8	ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x30352cc3	ip_vs_scheduler_err
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37f06e86	ip_vs_proto_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3e7843df	ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44a18dae	ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6a49462f	register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x76f7d33e	unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7d9341d5	ip_vs_proto_data_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x859a3e75	ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c86f1bd	ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8	ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0cd701a	unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd38b49b3	ip_vs_nfct_expect_related
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe264be9a	register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf1bf416a	register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8db048f4	__nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x914786ca	__nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb4f427a3	nf_conntrack_untracked
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xd9942d10	nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7	xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x174fbc25	xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x19b0a753	xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x2dfb8864	xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x532f0500	xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x5dd23ed5	xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x90565bf4	xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1	xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb48bd6fc	xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xc84e097f	xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xeba6eb20	xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf1831b27	xt_register_match
+EXPORT_SYMBOL net/nfc/nci/nci 0x1e32e9e3	nci_free_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x5530975f	nci_allocate_device
+EXPORT_SYMBOL net/nfc/nci/nci 0x806a7ee8	nci_unregister_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xba490602	nci_to_errno
+EXPORT_SYMBOL net/nfc/nci/nci 0xe5b9c0ff	nci_register_device
+EXPORT_SYMBOL net/nfc/nci/nci 0xe6c71198	nci_recv_frame
+EXPORT_SYMBOL net/nfc/nfc 0x2cf1913e	nfc_printk
+EXPORT_SYMBOL net/nfc/nfc 0x32a9bf72	nfc_register_device
+EXPORT_SYMBOL net/nfc/nfc 0x6a51043b	nfc_proto_unregister
+EXPORT_SYMBOL net/nfc/nfc 0x8e774f7b	nfc_unregister_device
+EXPORT_SYMBOL net/nfc/nfc 0x9f7167dc	nfc_class
+EXPORT_SYMBOL net/nfc/nfc 0xc8869285	nfc_proto_register
+EXPORT_SYMBOL net/nfc/nfc 0xccd65494	nfc_alloc_skb
+EXPORT_SYMBOL net/nfc/nfc 0xda933302	nfc_allocate_device
+EXPORT_SYMBOL net/nfc/nfc 0xefe32ba9	nfc_targets_found
+EXPORT_SYMBOL net/phonet/phonet 0x169cf792	phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x2ba3116a	pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x673d0c5d	phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x678ec1c3	pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x712d4e5d	phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xa8e88e2c	pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xd3947207	pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xd6d775ea	phonet_header_ops
+EXPORT_SYMBOL net/rds/rds 0x5031b8c5	rds_str_array
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00bba762	rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02530afe	rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1bcc6e84	rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1c9b5236	rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2cd97d75	rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x47b74e56	rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5203930f	rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c02b754	rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b98e67d	rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaac43fc1	rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbf4a819a	rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc51304f7	rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd4492874	rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeadc8a7d	rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf3ea8067	key_type_rxrpc
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xb50b27d9	svc_pool_stats_open
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0b2790ba	register_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1	unregister_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x62ddb919	wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xb84c48ac	wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x04e3b8a4	cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x0767c295	wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x0879cde7	cfg80211_pmksa_candidate_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd	ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0b3fc365	cfg80211_rx_mgmt
+EXPORT_SYMBOL net/wireless/cfg80211 0x0bd5695e	wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x0d4f8086	cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x103e4eb1	cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x10411a86	ieee802_11_parse_elems_crc
+EXPORT_SYMBOL net/wireless/cfg80211 0x16a4b95e	cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x170fd699	__cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd	bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x19ecc7ec	ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x27f40ad8	cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c3c2e57	cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x2edf7d69	ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0x304da22f	cfg80211_mgmt_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x3859c7fd	cfg80211_gtk_rekey_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x3d92ce56	cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x3fad95f4	freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x46d1c6c4	cfg80211_send_unprot_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x485c81aa	cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x4fbbeff4	ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x553c3f8b	cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x5755ce00	cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x5a3952e9	ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x611d76c8	cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x6169c938	cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x64ffbad5	wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x65ea122b	cfg80211_send_unprot_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x68595b2c	cfg80211_cqm_pktloss_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43	rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ae97baf	ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ebac9c3	wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7513e94e	ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0x758d232b	__cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823	ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403	cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8529d1d7	regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x85b968c7	ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x86971aa3	wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x86fbdb30	cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x94577a38	__ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x9702ecf4	__cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d	ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9dd31238	cfg80211_sched_scan_stopped
+EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff	ieee80211_get_mesh_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0xa77cac94	cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xae9ede77	cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xaec841e5	cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xb650e0fb	wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb7234f81	cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0xba75e87b	cfg80211_del_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xc06df17d	cfg80211_sched_scan_results
+EXPORT_SYMBOL net/wireless/cfg80211 0xc52d1469	cfg80211_notify_new_peer_candidate
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81	ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xd3f4ab60	cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xd7779230	cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd9e3bc17	cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xe09e9f2a	cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xe502491e	wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xefcab131	cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf14574fb	wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591	cfg80211_find_vendor_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xff0c962f	cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x0ff9ed14	lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5	print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x4bea2590	lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x6c935f84	lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x7ce2b2be	lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb67b4ac1	lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc2a53e89	lib80211_crypt_info_free
+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 0x0015ff52	da903x_query_status
+EXPORT_SYMBOL vmlinux 0x00249b2d	igrab
+EXPORT_SYMBOL vmlinux 0x002de09c	vfsmount_lock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x0044ec88	xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x00801678	flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0081030e	omap_vram_reserve
+EXPORT_SYMBOL vmlinux 0x0084e86d	unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x008a014b	gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x008f1e24	amba_release_regions
+EXPORT_SYMBOL vmlinux 0x009a18dc	__bforget
+EXPORT_SYMBOL vmlinux 0x00cdd1f9	jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x00d3eb63	fsnotify_destroy_mark
+EXPORT_SYMBOL vmlinux 0x00e76046	ethtool_op_set_tx_hw_csum
+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 0x00f56976	nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x00f86489	simple_rename
+EXPORT_SYMBOL vmlinux 0x01000e51	schedule
+EXPORT_SYMBOL vmlinux 0x01139ffc	max_mapnr
+EXPORT_SYMBOL vmlinux 0x013e8b6c	sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x01424f59	sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x01902adf	netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a3d310	omap_set_dma_channel_mode
+EXPORT_SYMBOL vmlinux 0x01bb89db	blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x02124474	ip_send_check
+EXPORT_SYMBOL vmlinux 0x02138d01	genl_register_ops
+EXPORT_SYMBOL vmlinux 0x02196324	__aeabi_idiv
+EXPORT_SYMBOL vmlinux 0x0219d085	dcb_ieee_getapp_mask
+EXPORT_SYMBOL vmlinux 0x021dc488	i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x023a50ab	proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0x0242eeb5	netif_skb_features
+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 0x02a59932	nf_log_register
+EXPORT_SYMBOL vmlinux 0x02a6ce5a	crc16_table
+EXPORT_SYMBOL vmlinux 0x02c1eaa7	locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x02e0422a	jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x02ee26c1	free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02fe47b5	dma_set_mask
+EXPORT_SYMBOL vmlinux 0x0302c48b	idr_destroy
+EXPORT_SYMBOL vmlinux 0x03034b21	xfrm_input
+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 0x034714f9	block_commit_write
+EXPORT_SYMBOL vmlinux 0x034f9e73	param_ops_byte
+EXPORT_SYMBOL vmlinux 0x03502941	ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x03592ea0	security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0x03662bae	mmc_set_blocklen
+EXPORT_SYMBOL vmlinux 0x037a0cba	kfree
+EXPORT_SYMBOL vmlinux 0x03c06156	bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03da4ed3	tcp_child_process
+EXPORT_SYMBOL vmlinux 0x03fd2571	vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0407796c	nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x040c93db	xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x04141f80	__tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x04161db0	blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x0422fe4a	inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x04247cfe	tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x042616f8	splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x042f35bf	cdrom_release
+EXPORT_SYMBOL vmlinux 0x044f47ee	aio_put_req
+EXPORT_SYMBOL vmlinux 0x045fa0f6	grab_cache_page_write_begin
+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 0x049dcc62	gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x04bf3866	loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x04cda566	snd_interval_refine
+EXPORT_SYMBOL vmlinux 0x04d1848d	tty_devnum
+EXPORT_SYMBOL vmlinux 0x04ea56f9	_kstrtol
+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 0x0521b2ee	set_current_groups
+EXPORT_SYMBOL vmlinux 0x054434d6	radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x057ce975	hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x0584ceba	ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x058db3f5	up_read
+EXPORT_SYMBOL vmlinux 0x05a01a65	dcb_ieee_setapp
+EXPORT_SYMBOL vmlinux 0x05a141dd	filp_close
+EXPORT_SYMBOL vmlinux 0x05b24740	blk_complete_request
+EXPORT_SYMBOL vmlinux 0x05baaba0	wait_for_completion
+EXPORT_SYMBOL vmlinux 0x05c58087	skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x05e05fea	new_inode
+EXPORT_SYMBOL vmlinux 0x05e7e565	skb_queue_head
+EXPORT_SYMBOL vmlinux 0x05e8fc72	tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x05f19b34	setup_new_exec
+EXPORT_SYMBOL vmlinux 0x05f981a6	call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x061651be	strcat
+EXPORT_SYMBOL vmlinux 0x06259949	blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x062f131d	dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x0634100a	bitmap_parselist_user
+EXPORT_SYMBOL vmlinux 0x06436034	generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x06448ddc	nand_unlock
+EXPORT_SYMBOL vmlinux 0x067d8d35	security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068146fa	blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x06a6d86f	dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x06aae600	nand_scan_ident
+EXPORT_SYMBOL vmlinux 0x06b092c2	jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x06ecb141	ata_print_version
+EXPORT_SYMBOL vmlinux 0x06f9b93d	block_write_end
+EXPORT_SYMBOL vmlinux 0x06fe3b14	default_grn
+EXPORT_SYMBOL vmlinux 0x07051ea6	register_sound_midi
+EXPORT_SYMBOL vmlinux 0x07237a36	blk_start_queue
+EXPORT_SYMBOL vmlinux 0x074d4525	tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x07545c8c	load_nls_default
+EXPORT_SYMBOL vmlinux 0x075d5ad6	elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x076d634e	kthread_create_on_node
+EXPORT_SYMBOL vmlinux 0x0781bbb9	of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x0784a461	scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x07997b3e	scsi_cmd_get_serial
+EXPORT_SYMBOL vmlinux 0x0799aca4	local_bh_enable
+EXPORT_SYMBOL vmlinux 0x07a5f503	omap_readw
+EXPORT_SYMBOL vmlinux 0x07a890c8	fb_alloc_cmap
+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 0x07e331b7	pipe_unlock
+EXPORT_SYMBOL vmlinux 0x07fc211e	netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x08281eb7	__scm_destroy
+EXPORT_SYMBOL vmlinux 0x083eb21c	rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x08518f41	ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x089604bd	__xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x08a4c534	omap_mcbsp_get_rx_delay
+EXPORT_SYMBOL vmlinux 0x08ded414	ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x092bf6e2	netdev_change_features
+EXPORT_SYMBOL vmlinux 0x0948cde9	num_physpages
+EXPORT_SYMBOL vmlinux 0x09570cd9	xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x09775cdc	kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6	fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09a7f7b7	kdb_current_task
+EXPORT_SYMBOL vmlinux 0x09bca098	ip6_route_output
+EXPORT_SYMBOL vmlinux 0x09c55cec	schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55	font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09cb12db	tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x09dbf8a6	lock_super
+EXPORT_SYMBOL vmlinux 0x09e8070d	__sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x0a08ab03	d_validate
+EXPORT_SYMBOL vmlinux 0x0a163c8b	bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x0a23eec8	log_wait_commit
+EXPORT_SYMBOL vmlinux 0x0a2487e0	unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3131f6	strnchr
+EXPORT_SYMBOL vmlinux 0x0a34d668	is_bad_inode
+EXPORT_SYMBOL vmlinux 0x0a469d23	mfd_clone_cell
+EXPORT_SYMBOL vmlinux 0x0a588477	__skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x0a8ec7e9	dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x0aa13d05	__raw_readsw
+EXPORT_SYMBOL vmlinux 0x0aa55873	skb_checksum
+EXPORT_SYMBOL vmlinux 0x0ab573f5	clip_tbl_hook
+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 0x0af90468	mdiobus_free
+EXPORT_SYMBOL vmlinux 0x0b0d888b	icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31	vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b251506	phy_attach
+EXPORT_SYMBOL vmlinux 0x0b2c5450	read_cache_pages
+EXPORT_SYMBOL vmlinux 0x0b351ada	mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b35978f	register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x0b48677a	__kfifo_init
+EXPORT_SYMBOL vmlinux 0x0b5e36c6	tcf_hash_check
+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 0x0b939a13	journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x0badd926	xfrm_state_lookup_byaddr
+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 0x0c2b9606	jbd2__journal_restart
+EXPORT_SYMBOL vmlinux 0x0c2ed147	scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x0c35f2c6	sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c42098e	__free_pages
+EXPORT_SYMBOL vmlinux 0x0c45ab31	mark_page_accessed
+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 0x0cdbdef5	tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x0cdd158d	sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x0cfdbfdb	tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x0d011e7b	of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x0d16b7e5	omap_dss_get_overlay_manager
+EXPORT_SYMBOL vmlinux 0x0d3f3a71	put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x0d3f57a2	_find_next_bit_le
+EXPORT_SYMBOL vmlinux 0x0d542439	__ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d8c382d	tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x0da10ec3	security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0da5f552	generic_writepages
+EXPORT_SYMBOL vmlinux 0x0db3877d	___dma_single_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x0dcbbbac	brioctl_set
+EXPORT_SYMBOL vmlinux 0x0dce6c69	snd_pcm_mmap_data
+EXPORT_SYMBOL vmlinux 0x0dd2aa90	kobject_init
+EXPORT_SYMBOL vmlinux 0x0ddec58c	jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x0dec4823	jbd2_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x0deee859	i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x0e250c83	scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x0e313ab6	__getblk
+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 0x0e9812c9	block_write_begin
+EXPORT_SYMBOL vmlinux 0x0e9c5c9b	netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x0eb6408d	jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x0ebfd927	tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x0ec98808	ida_init
+EXPORT_SYMBOL vmlinux 0x0efe1a23	journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x0f1e5326	sock_rfree
+EXPORT_SYMBOL vmlinux 0x0f31425c	clk_add_alias
+EXPORT_SYMBOL vmlinux 0x0f48e2a6	f_setown
+EXPORT_SYMBOL vmlinux 0x0f59f197	param_array_ops
+EXPORT_SYMBOL vmlinux 0x0f64769f	nand_scan_bbt
+EXPORT_SYMBOL vmlinux 0x0f78a7e1	snd_device_free
+EXPORT_SYMBOL vmlinux 0x0f8276f6	journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x0f9adf81	register_sysctl_table
+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 0x0fb98747	phy_connect
+EXPORT_SYMBOL vmlinux 0x0fbf47df	__scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x0fcb0e19	address_space_init_once
+EXPORT_SYMBOL vmlinux 0x0ff0a064	journal_start_commit
+EXPORT_SYMBOL vmlinux 0x0ff0f9dd	bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x0ff14704	inet_ioctl
+EXPORT_SYMBOL vmlinux 0x0ff178f6	__aeabi_idivmod
+EXPORT_SYMBOL vmlinux 0x0ff2b602	slhc_compress
+EXPORT_SYMBOL vmlinux 0x0ffa8302	_atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x101390d9	gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x10144567	free_buffer_head
+EXPORT_SYMBOL vmlinux 0x1037dfc4	inet_bind
+EXPORT_SYMBOL vmlinux 0x1072a394	csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1073a962	phy_device_free
+EXPORT_SYMBOL vmlinux 0x1074c970	clk_disable
+EXPORT_SYMBOL vmlinux 0x10790299	security_path_truncate
+EXPORT_SYMBOL vmlinux 0x1079265c	give_up_console
+EXPORT_SYMBOL vmlinux 0x107dafab	xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x10af0223	dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x10b5da89	register_key_type
+EXPORT_SYMBOL vmlinux 0x10c2f00b	ip6_dst_hoplimit
+EXPORT_SYMBOL vmlinux 0x10c80014	dma_pool_create
+EXPORT_SYMBOL vmlinux 0x10d9d048	icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb	default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7	_ctype
+EXPORT_SYMBOL vmlinux 0x110bc6f4	arp_send
+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 0x113420c3	max8998_update_reg
+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 0x117ecc96	xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x119b50e7	elf_check_arch
+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 0x11eeec25	get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x11f7ed4c	hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1214076e	netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x121a425b	i2c_transfer
+EXPORT_SYMBOL vmlinux 0x12530356	omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL vmlinux 0x125dc412	find_get_page
+EXPORT_SYMBOL vmlinux 0x127f1cf8	vfs_lstat
+EXPORT_SYMBOL vmlinux 0x128b5a57	fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x128fa778	bio_map_kern
+EXPORT_SYMBOL vmlinux 0x12a38747	usleep_range
+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 0x12f99022	inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x13117dca	qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x1332f4d0	bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x134f5e10	skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x13590878	blk_run_queue
+EXPORT_SYMBOL vmlinux 0x136a627c	skb_make_writable
+EXPORT_SYMBOL vmlinux 0x136aa7bd	snd_pcm_kernel_ioctl
+EXPORT_SYMBOL vmlinux 0x13cf0691	simple_empty
+EXPORT_SYMBOL vmlinux 0x13d0adf7	__kfifo_out
+EXPORT_SYMBOL vmlinux 0x13d6e3be	clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x13ec80f3	param_set_short
+EXPORT_SYMBOL vmlinux 0x13f3d4ef	ipv4_specific
+EXPORT_SYMBOL vmlinux 0x13fc00d1	ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x14129f00	snd_jack_set_parent
+EXPORT_SYMBOL vmlinux 0x1420b379	kstrtou16_from_user
+EXPORT_SYMBOL vmlinux 0x143ce5e1	module_layout
+EXPORT_SYMBOL vmlinux 0x143ea27b	abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x1449fb73	register_netdev
+EXPORT_SYMBOL vmlinux 0x145a275f	blk_init_queue
+EXPORT_SYMBOL vmlinux 0x146230d0	generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x148c7a2d	alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x148c95f5	serio_interrupt
+EXPORT_SYMBOL vmlinux 0x1495a07f	netdev_err
+EXPORT_SYMBOL vmlinux 0x149a1e9c	fget
+EXPORT_SYMBOL vmlinux 0x14d4a9c5	_change_bit
+EXPORT_SYMBOL vmlinux 0x14de9de2	proc_mkdir
+EXPORT_SYMBOL vmlinux 0x14f28bcb	dev_uc_init
+EXPORT_SYMBOL vmlinux 0x1524e020	__inet6_hash
+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 0x158daf27	pfifo_fast_ops
+EXPORT_SYMBOL vmlinux 0x159581ab	key_put
+EXPORT_SYMBOL vmlinux 0x159a561a	lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x159ea64d	input_reset_device
+EXPORT_SYMBOL vmlinux 0x159eb623	tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x15ad7a88	key_reject_and_link
+EXPORT_SYMBOL vmlinux 0x15aec70a	bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x1627ed72	register_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x16305289	warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16514b8c	tty_shutdown
+EXPORT_SYMBOL vmlinux 0x1678d76f	scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x1689c636	cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x16c42197	init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x16c80b5a	blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x173ca64b	of_device_unregister
+EXPORT_SYMBOL vmlinux 0x175236f4	omap_mcbsp_start
+EXPORT_SYMBOL vmlinux 0x1756e279	cdev_init
+EXPORT_SYMBOL vmlinux 0x17658f4f	dput
+EXPORT_SYMBOL vmlinux 0x17696ebe	get_phy_device
+EXPORT_SYMBOL vmlinux 0x1770d4f5	file_remove_suid
+EXPORT_SYMBOL vmlinux 0x17a142df	__copy_from_user
+EXPORT_SYMBOL vmlinux 0x17b06a64	unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x17b90450	skb_recycle
+EXPORT_SYMBOL vmlinux 0x17b9b06b	arp_tbl
+EXPORT_SYMBOL vmlinux 0x17c73b2b	pl330_chan_ctrl
+EXPORT_SYMBOL vmlinux 0x17dab555	skb_dequeue
+EXPORT_SYMBOL vmlinux 0x17df17bc	sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e5390b	tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x180b392f	phy_stop
+EXPORT_SYMBOL vmlinux 0x181f1753	current_fs_time
+EXPORT_SYMBOL vmlinux 0x183fa88b	mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x18445b5e	nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x18474694	d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x184b82fb	mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184be39a	dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x184e6c85	radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x1860d488	scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x189868d7	get_random_bytes_arch
+EXPORT_SYMBOL vmlinux 0x18b62855	rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x18be1507	napi_gro_flush
+EXPORT_SYMBOL vmlinux 0x18d2635b	nla_reserve
+EXPORT_SYMBOL vmlinux 0x190c1312	mmc_erase
+EXPORT_SYMBOL vmlinux 0x190c794a	jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x19380bc7	__generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x193bf15b	dev_get_by_index_rcu
+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 0x196b40ef	generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x19779737	dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x197dc3b3	omap_set_dma_src_burst_mode
+EXPORT_SYMBOL vmlinux 0x19812f18	vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x198788b4	snd_lookup_oss_minor_data
+EXPORT_SYMBOL vmlinux 0x199dc1da	input_mt_report_pointer_emulation
+EXPORT_SYMBOL vmlinux 0x199ed0cd	net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19ba4dbe	follow_up
+EXPORT_SYMBOL vmlinux 0x19bd383b	security_secmark_refcount_dec
+EXPORT_SYMBOL vmlinux 0x19befc7c	test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x19e08f84	tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x19f1cf31	__tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0x19feb2b2	phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x1a0a2432	snd_ctl_new1
+EXPORT_SYMBOL vmlinux 0x1a0e49fc	__dquot_transfer
+EXPORT_SYMBOL vmlinux 0x1a105f1f	tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x1a11453c	nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x1a3e3d46	tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x1a47a2ab	devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1a6024f5	__cleancache_flush_page
+EXPORT_SYMBOL vmlinux 0x1a61702f	xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x1a65f4ad	__arm_ioremap_pfn
+EXPORT_SYMBOL vmlinux 0x1a7f8f06	xfrm_user_policy
+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 0x1b015d25	bitmap_parselist
+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 0x1b737b9f	sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1	scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1ba9908a	neigh_update
+EXPORT_SYMBOL vmlinux 0x1babe60e	omap_st_set_chgain
+EXPORT_SYMBOL vmlinux 0x1bad1918	udp_seq_open
+EXPORT_SYMBOL vmlinux 0x1bc4b0b2	tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x1bd46e31	neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x1bd72663	kobject_get
+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 0x1caa1474	single_release
+EXPORT_SYMBOL vmlinux 0x1cb8b1f7	kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x1cc6719a	register_reboot_notifier
+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 0x1d05f322	inet_release
+EXPORT_SYMBOL vmlinux 0x1d190b5b	nobh_writepage
+EXPORT_SYMBOL vmlinux 0x1d2e87c6	do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3865da	param_get_invbool
+EXPORT_SYMBOL vmlinux 0x1d43d57c	seq_putc
+EXPORT_SYMBOL vmlinux 0x1d7120f1	sock_no_listen
+EXPORT_SYMBOL vmlinux 0x1d87dda1	tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x1db7dc40	pgprot_kernel
+EXPORT_SYMBOL vmlinux 0x1dc36131	fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6	fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de7357d	netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x1ded2451	search_binary_handler
+EXPORT_SYMBOL vmlinux 0x1dfddf9d	tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x1e047854	warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x1e0813f6	blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x1e26be3b	get_anon_bdev
+EXPORT_SYMBOL vmlinux 0x1e30c9af	inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x1e341134	neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x1e53369b	ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x1e5464fb	page_readlink
+EXPORT_SYMBOL vmlinux 0x1e68acb6	__blk_run_queue
+EXPORT_SYMBOL vmlinux 0x1e6d26a8	strstr
+EXPORT_SYMBOL vmlinux 0x1e7fed9d	netif_device_attach
+EXPORT_SYMBOL vmlinux 0x1e9054f4	tcf_em_unregister
+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 0x1ec46f2d	udp_poll
+EXPORT_SYMBOL vmlinux 0x1ec4eb34	flex_array_prealloc
+EXPORT_SYMBOL vmlinux 0x1ec77787	tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x1ec7c5c5	generic_pipe_buf_get
+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 0x1f55167b	dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x1f579f1d	writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x1f704784	call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x1f7e807f	kstrtoint_from_user
+EXPORT_SYMBOL vmlinux 0x1fcd5c17	vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x1fd07fff	kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fe735d6	tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x1fe78ad0	poll_freewait
+EXPORT_SYMBOL vmlinux 0x20000329	simple_strtoul
+EXPORT_SYMBOL vmlinux 0x203f35af	input_mt_destroy_slots
+EXPORT_SYMBOL vmlinux 0x2041df22	ihold
+EXPORT_SYMBOL vmlinux 0x205ec8de	omap_dispc_register_isr
+EXPORT_SYMBOL vmlinux 0x2072ee9b	request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x208221a4	bio_endio
+EXPORT_SYMBOL vmlinux 0x20945c36	con_is_bound
+EXPORT_SYMBOL vmlinux 0x20a4b33e	inet_addr_type
+EXPORT_SYMBOL vmlinux 0x20a789ac	irq_set_chip_data
+EXPORT_SYMBOL vmlinux 0x20ad76db	tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x20c23f6d	start_tty
+EXPORT_SYMBOL vmlinux 0x20c7d90a	seq_path
+EXPORT_SYMBOL vmlinux 0x20d8d7dd	netdev_emerg
+EXPORT_SYMBOL vmlinux 0x20e289ab	devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x211331fa	__divsi3
+EXPORT_SYMBOL vmlinux 0x211d1d85	nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x212ba383	dma_alloc_writecombine
+EXPORT_SYMBOL vmlinux 0x21369be5	inode_change_ok
+EXPORT_SYMBOL vmlinux 0x213c18e7	napi_complete
+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 0x21c98974	ethtool_invalid_flags
+EXPORT_SYMBOL vmlinux 0x21d99bc4	inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x21ded506	__cleancache_get_page
+EXPORT_SYMBOL vmlinux 0x21f678b9	clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x220fde61	blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x221dfde0	idr_pre_get
+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 0x225e909e	schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x2276db98	kstrtoint
+EXPORT_SYMBOL vmlinux 0x2288378f	system_state
+EXPORT_SYMBOL vmlinux 0x2289ac57	kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x228d55de	rt6_lookup
+EXPORT_SYMBOL vmlinux 0x22b325d5	kd_mksound
+EXPORT_SYMBOL vmlinux 0x22d31d88	block_read_full_page
+EXPORT_SYMBOL vmlinux 0x22e7e48a	km_state_expired
+EXPORT_SYMBOL vmlinux 0x22f9f9d0	linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x2309173c	sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x230dda52	unlock_buffer
+EXPORT_SYMBOL vmlinux 0x231d4001	fb_edid_add_monspecs
+EXPORT_SYMBOL vmlinux 0x23532c4d	ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2373293a	lookup_one_len
+EXPORT_SYMBOL vmlinux 0x23869fa6	cdev_del
+EXPORT_SYMBOL vmlinux 0x238ea37e	seq_read
+EXPORT_SYMBOL vmlinux 0x239adda2	ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x23a574fd	security_secmark_relabel_packet
+EXPORT_SYMBOL vmlinux 0x23c8f257	slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23fd3028	vmalloc_node
+EXPORT_SYMBOL vmlinux 0x23fed213	write_cache_pages
+EXPORT_SYMBOL vmlinux 0x242818f0	elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x2447fe1e	tcf_register_action
+EXPORT_SYMBOL vmlinux 0x2459bbcc	console_set_on_cmdline
+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 0x24c3bdfa	led_brightness_set
+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 0x252d7640	panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x252df2aa	read_cache_page
+EXPORT_SYMBOL vmlinux 0x256680f2	inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x25820c64	fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4	fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258fcc48	__napi_schedule
+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 0x25c677c4	mac_pton
+EXPORT_SYMBOL vmlinux 0x25f2d911	tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x2617b0d9	inode_init_always
+EXPORT_SYMBOL vmlinux 0x263beb75	ecryptfs_get_versions
+EXPORT_SYMBOL vmlinux 0x2653e90a	tty_set_operations
+EXPORT_SYMBOL vmlinux 0x26911e4d	gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26bb950b	__kfifo_from_user_r
+EXPORT_SYMBOL vmlinux 0x26d3bf31	cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x26d74882	blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x26e6a291	snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL vmlinux 0x26e76fb8	sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x2700b38a	mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x27068603	simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x275e6932	blk_put_request
+EXPORT_SYMBOL vmlinux 0x276db34f	nand_bch_init
+EXPORT_SYMBOL vmlinux 0x27841224	tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x27864d57	memparse
+EXPORT_SYMBOL vmlinux 0x2790554d	abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x2798814a	security_path_chown
+EXPORT_SYMBOL vmlinux 0x27bbf221	disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27e1a049	printk
+EXPORT_SYMBOL vmlinux 0x28118cb6	__get_user_1
+EXPORT_SYMBOL vmlinux 0x281823c5	__kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x28248a8e	sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x2830fee2	idr_get_next
+EXPORT_SYMBOL vmlinux 0x2837e98f	devm_ioremap
+EXPORT_SYMBOL vmlinux 0x2843be75	mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x286a2d3d	bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x286bc31f	scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x2886ab12	splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x2897fc48	omap_cfg_reg
+EXPORT_SYMBOL vmlinux 0x28a2ed02	scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28d6861d	__vmalloc
+EXPORT_SYMBOL vmlinux 0x28ee2b33	of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x28f6b2c5	snd_seq_root
+EXPORT_SYMBOL vmlinux 0x2918afc6	blk_get_queue
+EXPORT_SYMBOL vmlinux 0x29372d97	of_phy_connect
+EXPORT_SYMBOL vmlinux 0x294dc421	snd_ctl_free_one
+EXPORT_SYMBOL vmlinux 0x29537c9e	alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2958f236	vfs_mknod
+EXPORT_SYMBOL vmlinux 0x295dcf74	inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x29688964	skb_split
+EXPORT_SYMBOL vmlinux 0x29757b5c	mmc_interrupt_hpi
+EXPORT_SYMBOL vmlinux 0x2989a2cc	dev_addr_add_multiple
+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 0x29c78967	inet6_getname
+EXPORT_SYMBOL vmlinux 0x29dedb2e	user_path_at
+EXPORT_SYMBOL vmlinux 0x29e25333	input_release_device
+EXPORT_SYMBOL vmlinux 0x29e395c5	jbd2_journal_stop
+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 0x2a4219da	inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x2a4ec9b7	xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x2a6e9db6	irq_set_chip
+EXPORT_SYMBOL vmlinux 0x2a79ac13	clkdev_add
+EXPORT_SYMBOL vmlinux 0x2a94d825	dump_seek
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc	strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa69e6e	tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x2aaa9dde	xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x2ac6193b	__kfifo_dma_out_prepare_r
+EXPORT_SYMBOL vmlinux 0x2adc13ad	d_rehash
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0	scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2ce78b	kstrtos8
+EXPORT_SYMBOL vmlinux 0x2b378f89	abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x2b43eb49	__find_get_block
+EXPORT_SYMBOL vmlinux 0x2b58dedb	cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x2b688622	complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b90cdaa	mempool_create
+EXPORT_SYMBOL vmlinux 0x2b964090	jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2b9da7a4	genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba5ec7c	inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x2ba707a8	sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bac4a99	genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x2bcde565	journal_update_format
+EXPORT_SYMBOL vmlinux 0x2bdbbec1	snd_ctl_register_ioctl
+EXPORT_SYMBOL vmlinux 0x2bdd6e28	node_states
+EXPORT_SYMBOL vmlinux 0x2bfcb3a3	destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x2bfedcc3	register_nls
+EXPORT_SYMBOL vmlinux 0x2c0343b2	__block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x2c14323a	kstrtol_from_user
+EXPORT_SYMBOL vmlinux 0x2c1fae77	find_or_create_page
+EXPORT_SYMBOL vmlinux 0x2c256e1f	input_scancode_to_scalar
+EXPORT_SYMBOL vmlinux 0x2c3f5970	xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x2c4743ff	phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x2c47fbcd	xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x2c6ac338	dev_trans_start
+EXPORT_SYMBOL vmlinux 0x2c7e100e	netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x2c8db4bd	udp_sendmsg
+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 0x2d10c73a	get_write_access
+EXPORT_SYMBOL vmlinux 0x2d140a58	genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1e0380	jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x2d34a1b4	dq_data_lock
+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 0x2dc82168	d_clear_need_lookup
+EXPORT_SYMBOL vmlinux 0x2dd5b59a	thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x2e1524c4	writeback_inodes_sb_if_idle
+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 0x2e97a9e5	__sk_dst_check
+EXPORT_SYMBOL vmlinux 0x2eb9bb21	proc_dostring
+EXPORT_SYMBOL vmlinux 0x2ec524ad	__kfifo_in_r
+EXPORT_SYMBOL vmlinux 0x2ee1cf4b	scsi_allocate_command
+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 0x2f6e9f39	snd_register_oss_device
+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 0x3006e61a	inode_sb_list_lock
+EXPORT_SYMBOL vmlinux 0x300eecb9	snd_ctl_rename_id
+EXPORT_SYMBOL vmlinux 0x301a989e	udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x303034c5	htc_egpio_get_wakeup_irq
+EXPORT_SYMBOL vmlinux 0x30390bd5	xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x30525158	ethtool_op_get_tx_csum
+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 0x309fc052	neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x30a80826	__kfifo_from_user
+EXPORT_SYMBOL vmlinux 0x30b3a90e	of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0x30b93f98	__tcf_em_tree_match
+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 0x311bc3c0	of_match_node
+EXPORT_SYMBOL vmlinux 0x311fd6af	nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x31274ab0	__cleancache_flush_inode
+EXPORT_SYMBOL vmlinux 0x3132ee65	__nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x3147857d	default_red
+EXPORT_SYMBOL vmlinux 0x31587f05	neigh_for_each
+EXPORT_SYMBOL vmlinux 0x3166e03b	genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x316dd1cd	__wait_on_bit
+EXPORT_SYMBOL vmlinux 0x318aa665	md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x318f5ee6	task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x3191f109	__krealloc
+EXPORT_SYMBOL vmlinux 0x31a28a1d	led_blink_set
+EXPORT_SYMBOL vmlinux 0x31b31f5c	csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31e32aa3	md_check_recovery
+EXPORT_SYMBOL vmlinux 0x3202158c	twl6040_get_pll
+EXPORT_SYMBOL vmlinux 0x323a69c3	__ip_dev_find
+EXPORT_SYMBOL vmlinux 0x3240c65b	files_lglock_global_lock_online
+EXPORT_SYMBOL vmlinux 0x324dc7ab	sock_no_accept
+EXPORT_SYMBOL vmlinux 0x32512ece	__tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x326727f3	write_inode_now
+EXPORT_SYMBOL vmlinux 0x328a05f1	strncpy
+EXPORT_SYMBOL vmlinux 0x32d590bd	tc6393xb_lcd_set_power
+EXPORT_SYMBOL vmlinux 0x32d5eb64	dpi_check_timings
+EXPORT_SYMBOL vmlinux 0x32e3cd41	genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x32e97873	end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x3344256d	nobh_write_end
+EXPORT_SYMBOL vmlinux 0x33475ed8	tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x335de676	kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x3361c11e	bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x336923a5	request_key_async
+EXPORT_SYMBOL vmlinux 0x336a4465	bdevname
+EXPORT_SYMBOL vmlinux 0x336b9b2d	tcp_create_openreq_child
+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 0x34048014	ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x34137794	wake_up_process
+EXPORT_SYMBOL vmlinux 0x3438db2f	inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x344e0fe5	seq_write
+EXPORT_SYMBOL vmlinux 0x34687a8b	__locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x347013de	nla_validate
+EXPORT_SYMBOL vmlinux 0x348ca90a	ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x34908c14	print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85	strchr
+EXPORT_SYMBOL vmlinux 0x34aa2c90	kblockd_schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x34ae686b	sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x34c4ca28	i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x34da0ddf	make_bad_inode
+EXPORT_SYMBOL vmlinux 0x351d9408	dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x352c6698	nla_put
+EXPORT_SYMBOL vmlinux 0x353e3fa5	__get_user_4
+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 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 0x36142eb2	filemap_fault
+EXPORT_SYMBOL vmlinux 0x361bce60	proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x36275b8f	xfrm_lookup
+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 0x36b06bff	max8998_bulk_read
+EXPORT_SYMBOL vmlinux 0x36b3ddf6	dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x36d704bc	__blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x36e360e3	__hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x3718f00e	snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL vmlinux 0x3725a439	ping_prot
+EXPORT_SYMBOL vmlinux 0x372f95ac	ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x3744cf36	vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x3747cbee	d_genocide
+EXPORT_SYMBOL vmlinux 0x3752c43d	xfrm_state_walk
+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 0x379f5837	param_set_invbool
+EXPORT_SYMBOL vmlinux 0x37befc70	jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e1ea85	dev_graft_qdisc
+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 0x38184c68	omapdss_sdi_display_enable
+EXPORT_SYMBOL vmlinux 0x3826879a	ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x383c3e7b	skb_recycle_check
+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 0x389e8f02	nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x38bf7469	bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x38d023f8	rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x38db1927	abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x38fb4e53	__kfree_skb
+EXPORT_SYMBOL vmlinux 0x3900f657	eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x392cadc3	simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x3939f8f0	rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x393ccd87	serio_rescan
+EXPORT_SYMBOL vmlinux 0x394cf98b	iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x395833ac	journal_stop
+EXPORT_SYMBOL vmlinux 0x3971b4df	snd_ecards_limit
+EXPORT_SYMBOL vmlinux 0x39725d76	xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3980aac1	unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x39acc8e9	register_sound_special
+EXPORT_SYMBOL vmlinux 0x39b66c84	dquot_commit
+EXPORT_SYMBOL vmlinux 0x39bf9301	_snd_pcm_hw_param_setempty
+EXPORT_SYMBOL vmlinux 0x39c6bc69	phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x39cc331f	dget_parent
+EXPORT_SYMBOL vmlinux 0x3a0416ef	netdev_update_features
+EXPORT_SYMBOL vmlinux 0x3a0d7a1c	kobject_set_name
+EXPORT_SYMBOL vmlinux 0x3a2204c6	security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a29323e	snd_timer_close
+EXPORT_SYMBOL vmlinux 0x3a3f132a	d_instantiate
+EXPORT_SYMBOL vmlinux 0x3a6a8628	__skb_checksum_complete_head
+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 0x3a9b6fb9	blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9cfde8	of_node_put
+EXPORT_SYMBOL vmlinux 0x3aa2eb19	blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x3b1b75bc	sync_blockdev
+EXPORT_SYMBOL vmlinux 0x3b1bc58b	lock_may_write
+EXPORT_SYMBOL vmlinux 0x3b1c8441	serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x3b3016d3	cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b41c87c	netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x3b6da7f1	iget_locked
+EXPORT_SYMBOL vmlinux 0x3b84b3c8	vm_map_ram
+EXPORT_SYMBOL vmlinux 0x3b91f3af	snd_free_pages
+EXPORT_SYMBOL vmlinux 0x3b9419d5	pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x3b9ecb78	eth_header
+EXPORT_SYMBOL vmlinux 0x3bb1b59c	task_nice
+EXPORT_SYMBOL vmlinux 0x3bbf46ea	vga_base
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6	msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bfdd364	neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x3c1ef7c7	down_read_trylock
+EXPORT_SYMBOL vmlinux 0x3c3a48bb	lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x3c4918e3	__splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x3c54f880	phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x3c56afbc	bdget
+EXPORT_SYMBOL vmlinux 0x3c6d9f3b	dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x3c80c06c	kstrtoull
+EXPORT_SYMBOL vmlinux 0x3c813072	km_query
+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 0x3ce4ca6f	disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf63f19	__tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0x3d0bab57	scsi_unregister
+EXPORT_SYMBOL vmlinux 0x3d0bae3c	flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x3d332163	thaw_super
+EXPORT_SYMBOL vmlinux 0x3d3c540f	elf_hwcap
+EXPORT_SYMBOL vmlinux 0x3d469564	fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x3d536453	jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x3d93ee61	posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0x3d9cc726	ll_rw_block
+EXPORT_SYMBOL vmlinux 0x3da269b4	dm_register_target
+EXPORT_SYMBOL vmlinux 0x3da52c3e	tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x3dadd275	filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x3daeffc3	snd_ctl_remove_id
+EXPORT_SYMBOL vmlinux 0x3dc41435	blk_init_queue_node
+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 0x3e0e9023	param_set_long
+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 0x3e5511a4	ip6_xmit
+EXPORT_SYMBOL vmlinux 0x3e884f4b	vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3e9110fa	__hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e937d2f	ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x3ea4adaf	iget_failed
+EXPORT_SYMBOL vmlinux 0x3ea709de	skb_seq_read
+EXPORT_SYMBOL vmlinux 0x3ec4768d	sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x3ec57396	scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x3ec8886f	param_ops_int
+EXPORT_SYMBOL vmlinux 0x3ecd5bf4	ip_mc_rejoin_groups
+EXPORT_SYMBOL vmlinux 0x3ed63055	zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3efa2034	qdisc_reset
+EXPORT_SYMBOL vmlinux 0x3f1975e7	mnt_unpin
+EXPORT_SYMBOL vmlinux 0x3f1ded68	neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x3f375a6b	request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x3f4547a7	put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f5097d1	napi_get_frags
+EXPORT_SYMBOL vmlinux 0x3f589898	mmc_can_trim
+EXPORT_SYMBOL vmlinux 0x3f67000e	mmc_fixup_device
+EXPORT_SYMBOL vmlinux 0x3f916323	pl330_update
+EXPORT_SYMBOL vmlinux 0x3fd69310	__f_setown
+EXPORT_SYMBOL vmlinux 0x3fd74c58	register_gifconf
+EXPORT_SYMBOL vmlinux 0x3fd78fc6	unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x3fd9682c	dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x3fe0c149	sk_free
+EXPORT_SYMBOL vmlinux 0x3ff3acc0	tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x3ff62317	local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffd1d48	sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x400ed337	blk_queue_unprep_rq
+EXPORT_SYMBOL vmlinux 0x4028094d	qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x4029d238	param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4029d76e	inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x402b8281	__request_module
+EXPORT_SYMBOL vmlinux 0x4036ae10	ps2_drain
+EXPORT_SYMBOL vmlinux 0x4052d8fd	generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x4056ea61	sk_wait_data
+EXPORT_SYMBOL vmlinux 0x4059792f	print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144	get_seconds
+EXPORT_SYMBOL vmlinux 0x406f8d85	poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x407136b1	__put_user_8
+EXPORT_SYMBOL vmlinux 0x407a3275	omap_start_dma
+EXPORT_SYMBOL vmlinux 0x407d7b27	kill_fasync
+EXPORT_SYMBOL vmlinux 0x408a71d8	tcp_disconnect
+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 0x40b12d11	udplite_prot
+EXPORT_SYMBOL vmlinux 0x40bf582c	snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL vmlinux 0x40d04664	console_trylock
+EXPORT_SYMBOL vmlinux 0x40f07981	__ashldi3
+EXPORT_SYMBOL vmlinux 0x4106d7aa	journal_init_inode
+EXPORT_SYMBOL vmlinux 0x4108e69a	fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410a65a3	kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x4118b4b3	scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x411d9e78	del_gendisk
+EXPORT_SYMBOL vmlinux 0x4133ff23	kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x4134b10c	inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x41482d8b	strndup_user
+EXPORT_SYMBOL vmlinux 0x4163a15e	snd_cards
+EXPORT_SYMBOL vmlinux 0x41742292	noop_llseek
+EXPORT_SYMBOL vmlinux 0x4188d439	neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41aaa5b7	tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x41bfba0b	dev_alert
+EXPORT_SYMBOL vmlinux 0x41bfc910	ida_simple_remove
+EXPORT_SYMBOL vmlinux 0x41cb0f34	scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x41d94781	journal_flush
+EXPORT_SYMBOL vmlinux 0x41e90df9	generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x4211c3c1	zlib_inflateInit2
+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 0x427c9e77	inet6_release
+EXPORT_SYMBOL vmlinux 0x428f2241	_dev_info
+EXPORT_SYMBOL vmlinux 0x42977ad4	__hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a6d27b	sg_miter_next
+EXPORT_SYMBOL vmlinux 0x42ad5b31	kill_pgrp
+EXPORT_SYMBOL vmlinux 0x42c475db	input_open_device
+EXPORT_SYMBOL vmlinux 0x42e80fd9	sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x42f8c514	dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x4302d0eb	free_pages
+EXPORT_SYMBOL vmlinux 0x43087892	inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x432bfa0f	jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x4347b971	idr_init
+EXPORT_SYMBOL vmlinux 0x437ec363	proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x43832171	blk_init_tags
+EXPORT_SYMBOL vmlinux 0x439b0518	simple_fill_super
+EXPORT_SYMBOL vmlinux 0x43a0458b	blk_start_plug
+EXPORT_SYMBOL vmlinux 0x43f23311	dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x4400ca88	vfs_link
+EXPORT_SYMBOL vmlinux 0x440e3424	journal_lock_updates
+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 0x44643b93	__aeabi_lmul
+EXPORT_SYMBOL vmlinux 0x44b911c3	rb_replace_node
+EXPORT_SYMBOL vmlinux 0x44bbd333	blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x44be2af8	iterate_mounts
+EXPORT_SYMBOL vmlinux 0x44d02b78	blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x44da5d0f	__csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x44e9a829	match_token
+EXPORT_SYMBOL vmlinux 0x452604f7	block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x453c1737	skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x456f88d9	inet_getname
+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 0x45b7ea85	set_create_files_as
+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 0x45f560f8	sock_kmalloc
+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 0x46242420	dev_alloc_skb
+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 0x4656eafa	unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x467178a5	touch_atime
+EXPORT_SYMBOL vmlinux 0x467c18a3	bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x46ae5028	generic_permission
+EXPORT_SYMBOL vmlinux 0x46b83274	create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x46c4b962	mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x46d3b28c	__div0
+EXPORT_SYMBOL vmlinux 0x46feb099	dm_read_arg
+EXPORT_SYMBOL vmlinux 0x47030d70	path_put
+EXPORT_SYMBOL vmlinux 0x471611a1	do_splice_direct
+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 0x476a30ed	generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x47939e0d	__tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x47ab093b	__generic_block_fiemap
+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 0x47d5ccb5	km_new_mapping
+EXPORT_SYMBOL vmlinux 0x47d7b354	deactivate_super
+EXPORT_SYMBOL vmlinux 0x47dc583b	seq_open
+EXPORT_SYMBOL vmlinux 0x47e2b187	__cleancache_put_page
+EXPORT_SYMBOL vmlinux 0x47f757de	elf_platform
+EXPORT_SYMBOL vmlinux 0x47fade5d	journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x480c8ad5	dm_put_device
+EXPORT_SYMBOL vmlinux 0x48284556	contig_page_data
+EXPORT_SYMBOL vmlinux 0x483b631a	ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x483ec199	__cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4859b8bb	rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4870874e	kstat
+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 0x49296c62	gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x49301839	dcbnl_ieee_notify
+EXPORT_SYMBOL vmlinux 0x4933a79e	noop_fsync
+EXPORT_SYMBOL vmlinux 0x4934d313	invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x493aa7e9	inetdev_by_index
+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 0x49928114	tcp_seq_open
+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 0x49d1af6a	skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x49e0f780	alloc_etherdev_mqs
+EXPORT_SYMBOL vmlinux 0x49ebacbd	_clear_bit
+EXPORT_SYMBOL vmlinux 0x49edc225	scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x49f648a3	sock_release
+EXPORT_SYMBOL vmlinux 0x4a0774c6	inet_listen
+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 0x4a5a3cda	sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x4aa1d5dc	simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x4aaab2b1	groups_alloc
+EXPORT_SYMBOL vmlinux 0x4abdb61c	seq_printf
+EXPORT_SYMBOL vmlinux 0x4ac76bb6	__skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x4ad9966a	mount_single
+EXPORT_SYMBOL vmlinux 0x4aef74a2	nf_afinfo
+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 0x4b2c49c7	d_drop
+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 0x4b90abca	filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x4ba2ddee	do_sync_write
+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 0x4cbbd171	__bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cc42235	ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x4d025d04	vfs_stat
+EXPORT_SYMBOL vmlinux 0x4d0d163d	copy_page
+EXPORT_SYMBOL vmlinux 0x4d104131	xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x4d3c153f	sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d45d89e	udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x4d5b0697	generic_file_open
+EXPORT_SYMBOL vmlinux 0x4d974b9c	register_sysrq_key
+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 0x4dbadb49	km_state_notify
+EXPORT_SYMBOL vmlinux 0x4dc45be9	nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dec6038	memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa	__bitmap_parse
+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 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 0x4e7fd1e0	softnet_data
+EXPORT_SYMBOL vmlinux 0x4e830a3e	strnicmp
+EXPORT_SYMBOL vmlinux 0x4e87363a	tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x4e9e0c68	try_to_release_page
+EXPORT_SYMBOL vmlinux 0x4ebefdb0	neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x4ed07232	__alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x4f0bf2f7	inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x4f0c5e98	vc_resize
+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 0x4f87d4c6	tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x4f88d4b4	phy_scan_fixups
+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 0x4fccc687	kick_iocb
+EXPORT_SYMBOL vmlinux 0x4fd3f2d7	scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x4fd8cd6a	snd_pcm_new
+EXPORT_SYMBOL vmlinux 0x4ff1c9bc	populate_rootfs_wait
+EXPORT_SYMBOL vmlinux 0x5008bbbb	genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x50211ee3	tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x506746b6	getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506d97f5	omap_readl
+EXPORT_SYMBOL vmlinux 0x50aa2f38	dev_addr_del
+EXPORT_SYMBOL vmlinux 0x50ab4c6d	files_lglock_global_lock
+EXPORT_SYMBOL vmlinux 0x50b068eb	dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x50bf3e84	kernel_getsockname
+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 0x50fb0531	shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x5103b63d	vfs_write
+EXPORT_SYMBOL vmlinux 0x51102a96	bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x511719e7	iget5_locked
+EXPORT_SYMBOL vmlinux 0x511746c1	dump_fpu
+EXPORT_SYMBOL vmlinux 0x5118c382	secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x5139cd73	dcb_ieee_delapp
+EXPORT_SYMBOL vmlinux 0x515c4bae	jbd2__journal_start
+EXPORT_SYMBOL vmlinux 0x5169161d	omap_free_dma_chain
+EXPORT_SYMBOL vmlinux 0x5179dd50	kset_unregister
+EXPORT_SYMBOL vmlinux 0x51908eb8	__raw_writesl
+EXPORT_SYMBOL vmlinux 0x5191e0db	proto_unregister
+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 0x51e35580	gnet_stats_start_copy_compat
+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 0x5250a491	sock_i_ino
+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 0x52ebf701	cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x52efd766	__kfifo_dma_in_prepare
+EXPORT_SYMBOL vmlinux 0x530b1e98	pm_suspend
+EXPORT_SYMBOL vmlinux 0x5323826a	sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x53294c94	pm860x_reg_read
+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 0x534e3119	__blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x5356ad0a	block_write_full_page
+EXPORT_SYMBOL vmlinux 0x5356f4da	scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x5369609b	page_symlink
+EXPORT_SYMBOL vmlinux 0x537686bc	xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x538383c0	unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x539627de	input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x5397f2d3	posix_acl_init
+EXPORT_SYMBOL vmlinux 0x53ae0f38	omap_st_enable
+EXPORT_SYMBOL vmlinux 0x53ba4e7c	up_write
+EXPORT_SYMBOL vmlinux 0x53bafee7	do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x53cca6ab	snd_card_file_remove
+EXPORT_SYMBOL vmlinux 0x53e448ec	__scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x53f645c5	___dma_page_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x54068ece	jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x5430ebf8	kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x543ef284	seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544740a8	tag_pages_for_writeback
+EXPORT_SYMBOL vmlinux 0x544bd89c	generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x546586ef	jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x549e406a	mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x54a9db5f	_kstrtoul
+EXPORT_SYMBOL vmlinux 0x54b17331	uart_register_driver
+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 0x552ec1ad	mmc_cache_ctrl
+EXPORT_SYMBOL vmlinux 0x553355cc	inode_permission
+EXPORT_SYMBOL vmlinux 0x554a4afa	bio_put
+EXPORT_SYMBOL vmlinux 0x554c11dc	snd_pcm_set_ops
+EXPORT_SYMBOL vmlinux 0x55537aa6	netdev_features_change
+EXPORT_SYMBOL vmlinux 0x557a5ff7	ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x5581b2c2	generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x5594be03	bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55ad8a12	unregister_nls
+EXPORT_SYMBOL vmlinux 0x55b12de8	update_region
+EXPORT_SYMBOL vmlinux 0x55c40fbd	ip_fragment
+EXPORT_SYMBOL vmlinux 0x55d9e14a	get_super
+EXPORT_SYMBOL vmlinux 0x55e6eb76	mem_map
+EXPORT_SYMBOL vmlinux 0x55e965ae	journal_ack_err
+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 0x5635a60a	vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5642793a	radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0x5669ec47	call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x56789ac5	omap_set_dma_color_mode
+EXPORT_SYMBOL vmlinux 0x5683342d	cad_pid
+EXPORT_SYMBOL vmlinux 0x5691abde	xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x56c8799d	scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56f23c96	mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x5724bf36	dev_get_by_flags_rcu
+EXPORT_SYMBOL vmlinux 0x57253d13	keyring_clear
+EXPORT_SYMBOL vmlinux 0x572e85d4	blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57575f08	dmaengine_put
+EXPORT_SYMBOL vmlinux 0x5761ceb5	bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x57674fd7	__sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57983446	ata_scsi_cmd_error_handler
+EXPORT_SYMBOL vmlinux 0x579d9a58	generic_removexattr
+EXPORT_SYMBOL vmlinux 0x57a215c8	sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x57a2d56b	scsi_device_get
+EXPORT_SYMBOL vmlinux 0x57ae4f2a	max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x57b57ebe	jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242	mangle_path
+EXPORT_SYMBOL vmlinux 0x57dd99fb	release_sock
+EXPORT_SYMBOL vmlinux 0x57df0fce	of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x581b1502	tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x582a24f1	snd_timer_notify
+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 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 0x590fa5af	vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x591d8452	blk_start_request
+EXPORT_SYMBOL vmlinux 0x592d3745	redraw_screen
+EXPORT_SYMBOL vmlinux 0x5934392b	fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b	ioport_map
+EXPORT_SYMBOL vmlinux 0x594e1317	__modsi3
+EXPORT_SYMBOL vmlinux 0x594fd546	omap_prcm_get_reset_sources
+EXPORT_SYMBOL vmlinux 0x59a4adc1	dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x59b5955b	inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x59d696b6	register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a	ioport_resource
+EXPORT_SYMBOL vmlinux 0x59dd9e10	uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x59e04922	of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x59e5070d	__do_div64
+EXPORT_SYMBOL vmlinux 0x59e70f93	__send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x59f47966	mpage_writepage
+EXPORT_SYMBOL vmlinux 0x5a46b6e5	amba_device_unregister
+EXPORT_SYMBOL vmlinux 0x5a4e6071	dev_get_stats
+EXPORT_SYMBOL vmlinux 0x5a6123e1	blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x5a6635c2	mmc_can_discard
+EXPORT_SYMBOL vmlinux 0x5a744b86	netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a746d0d	of_dev_get
+EXPORT_SYMBOL vmlinux 0x5b101ee6	udp_prot
+EXPORT_SYMBOL vmlinux 0x5b19634d	div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b2daf4a	find_inode_number
+EXPORT_SYMBOL vmlinux 0x5b334156	down_killable
+EXPORT_SYMBOL vmlinux 0x5b39f539	of_match_device
+EXPORT_SYMBOL vmlinux 0x5b67257a	tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x5b6803fe	__skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x5b7c67f2	phy_device_register
+EXPORT_SYMBOL vmlinux 0x5bf4a1eb	sg_last
+EXPORT_SYMBOL vmlinux 0x5c5ac054	____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x5c64429d	ifla_policy
+EXPORT_SYMBOL vmlinux 0x5c7c39b5	xfrm_init_replay
+EXPORT_SYMBOL vmlinux 0x5c8e8b0d	directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x5c9284a0	processor_id
+EXPORT_SYMBOL vmlinux 0x5ca354de	__sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x5cbd5f8e	backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x5cca1341	snd_jack_new
+EXPORT_SYMBOL vmlinux 0x5cd7a997	d_move
+EXPORT_SYMBOL vmlinux 0x5cec394e	xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x5cf9e323	jbd2_journal_try_to_free_buffers
+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 0x5d51ba9d	dev_getbyhwaddr_rcu
+EXPORT_SYMBOL vmlinux 0x5d5b5a16	radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x5d5e6b4a	tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x5d602499	dst_cow_metrics_generic
+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 0x5daa7637	napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x5dafad2e	ata_link_printk
+EXPORT_SYMBOL vmlinux 0x5dc08a38	skb_clone
+EXPORT_SYMBOL vmlinux 0x5dc38337	inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x5dc92ee3	fget_raw
+EXPORT_SYMBOL vmlinux 0x5dd8434f	ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x5de9b8c5	tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x5e09aaba	set_disk_ro
+EXPORT_SYMBOL vmlinux 0x5e218047	serio_close
+EXPORT_SYMBOL vmlinux 0x5e32e794	__wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x5e378783	tcp_v4_tw_get_peer
+EXPORT_SYMBOL vmlinux 0x5e39292b	jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x5e4640c6	unlock_page
+EXPORT_SYMBOL vmlinux 0x5e60eb27	omap_dma_unlink_lch
+EXPORT_SYMBOL vmlinux 0x5e66864b	sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x5e6947f7	unregister_dcbevent_notifier
+EXPORT_SYMBOL vmlinux 0x5e729392	framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x5e7f4920	snd_pcm_format_set_silence
+EXPORT_SYMBOL vmlinux 0x5e95b1cd	current_umask
+EXPORT_SYMBOL vmlinux 0x5eb24829	dm_shift_arg
+EXPORT_SYMBOL vmlinux 0x5ed040b0	pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed0cfa2	inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x5edd0762	bin2bcd
+EXPORT_SYMBOL vmlinux 0x5edf6f6d	dcbnl_cee_notify
+EXPORT_SYMBOL vmlinux 0x5ef4d861	seq_bitmap
+EXPORT_SYMBOL vmlinux 0x5f005368	kstrtou8
+EXPORT_SYMBOL vmlinux 0x5f052ed2	__ps2_command
+EXPORT_SYMBOL vmlinux 0x5f29074b	security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x5f58f676	flex_array_get_ptr
+EXPORT_SYMBOL vmlinux 0x5f59e0c9	blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x5f5a3525	in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x5f6a831e	kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x5f6e42ef	tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x5f754e5a	memset
+EXPORT_SYMBOL vmlinux 0x5f831a03	genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x5f9c1533	dma_free_coherent
+EXPORT_SYMBOL vmlinux 0x5fa17c73	sk_filter_release_rcu
+EXPORT_SYMBOL vmlinux 0x5fbea730	lock_fb_info
+EXPORT_SYMBOL vmlinux 0x5fc09fd6	ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x5fc27e5d	dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x5fd03c19	fb_pan_display
+EXPORT_SYMBOL vmlinux 0x5fd1b3b1	netif_set_real_num_tx_queues
+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 0x600ec187	ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x60138ea7	skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x601f5c95	generic_write_checks
+EXPORT_SYMBOL vmlinux 0x601f665f	dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x601fca18	d_add_ci
+EXPORT_SYMBOL vmlinux 0x60271ceb	netif_napi_del
+EXPORT_SYMBOL vmlinux 0x602c96f0	copy_to_user_fromio
+EXPORT_SYMBOL vmlinux 0x603dad0f	module_put
+EXPORT_SYMBOL vmlinux 0x6043801d	mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x604674b2	tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x60487727	ip_getsockopt
+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 0x60582f52	copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x6059820a	netdev_printk
+EXPORT_SYMBOL vmlinux 0x606d0b09	secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x6076537b	crypto_sha1_update
+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 0x60c5dc6a	setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x60cdf3e8	__inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x60e05e90	dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x60ed5f43	dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x60f71cfa	complete
+EXPORT_SYMBOL vmlinux 0x610027e2	init_net
+EXPORT_SYMBOL vmlinux 0x61023171	sock_no_bind
+EXPORT_SYMBOL vmlinux 0x6114ecb7	snd_timer_global_register
+EXPORT_SYMBOL vmlinux 0x61172dd3	register_console
+EXPORT_SYMBOL vmlinux 0x612390ad	netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc	__printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61585b1d	snd_card_file_add
+EXPORT_SYMBOL vmlinux 0x6168d2b0	dev_warn
+EXPORT_SYMBOL vmlinux 0x6193117c	ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x6193a942	dqget
+EXPORT_SYMBOL vmlinux 0x61a79f08	__irq_regs
+EXPORT_SYMBOL vmlinux 0x61b7b126	simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61daf60f	kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x61e7e615	snd_mixer_oss_notify_callback
+EXPORT_SYMBOL vmlinux 0x61f5f1ac	ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x61f64350	dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x6206ab09	journal_forget
+EXPORT_SYMBOL vmlinux 0x6215d8c9	path_is_under
+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 0x62299383	bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x62465745	max8998_read_reg
+EXPORT_SYMBOL vmlinux 0x62566d2e	register_netdevice
+EXPORT_SYMBOL vmlinux 0x62737e1d	sock_unregister
+EXPORT_SYMBOL vmlinux 0x6278b4df	inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x62827bec	security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x628573a4	udp_lib_rehash
+EXPORT_SYMBOL vmlinux 0x6294d10e	dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x629f1e5f	dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x62b72b0d	mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62ba6216	pipe_lock
+EXPORT_SYMBOL vmlinux 0x62cc569e	cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62fcce9d	dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x6301b72c	_snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0x6314d9ea	__lock_page
+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 0x636967ab	cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x636b3461	omap_dss_get_num_overlays
+EXPORT_SYMBOL vmlinux 0x637328b2	should_remove_suid
+EXPORT_SYMBOL vmlinux 0x637566ec	find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x639328b9	bioset_create
+EXPORT_SYMBOL vmlinux 0x639ac75a	do_sync_read
+EXPORT_SYMBOL vmlinux 0x63a4680c	skb_kill_datagram
+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 0x63fbe5a4	mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x6403e338	tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6408dde9	set_user_nice
+EXPORT_SYMBOL vmlinux 0x641882e0	mem_cgroup_count_vm_event
+EXPORT_SYMBOL vmlinux 0x643aafac	jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x643eaec8	param_get_string
+EXPORT_SYMBOL vmlinux 0x64445846	snd_pcm_hw_refine
+EXPORT_SYMBOL vmlinux 0x64598cc1	vfs_rename
+EXPORT_SYMBOL vmlinux 0x6472ef5a	sched_autogroup_create_attach
+EXPORT_SYMBOL vmlinux 0x6493a3c9	scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x64999478	congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a788f3	jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x64bad850	snd_jack_set_key
+EXPORT_SYMBOL vmlinux 0x64bef2f6	default_llseek
+EXPORT_SYMBOL vmlinux 0x64c1d549	fb_set_var
+EXPORT_SYMBOL vmlinux 0x64c56e7f	netif_rx
+EXPORT_SYMBOL vmlinux 0x64cc4079	tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x64d233c8	ioremap_page
+EXPORT_SYMBOL vmlinux 0x64ec9c9b	sync_inode
+EXPORT_SYMBOL vmlinux 0x6500311c	netif_notify_peers
+EXPORT_SYMBOL vmlinux 0x650f8603	snd_pcm_format_silence_64
+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 0x656b5bd9	ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x65737692	lease_modify
+EXPORT_SYMBOL vmlinux 0x6573a40d	tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x6585e310	alloc_pages_exact_nid
+EXPORT_SYMBOL vmlinux 0x6589bd9f	xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x65c638b1	mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x65cad784	dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x65d72dd2	genl_register_family
+EXPORT_SYMBOL vmlinux 0x65dccf13	xz_dec_end
+EXPORT_SYMBOL vmlinux 0x65eb26d2	dump_write
+EXPORT_SYMBOL vmlinux 0x65ff7eeb	invalidate_inode_buffers
+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 0x663ffa0b	sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x6642fd43	generic_setlease
+EXPORT_SYMBOL vmlinux 0x664b72ee	netdev_notice
+EXPORT_SYMBOL vmlinux 0x665b6cba	d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x66719719	scm_detach_fds
+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 0x66dc871c	neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x67053080	current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670530d4	kernel_listen
+EXPORT_SYMBOL vmlinux 0x673bc5cc	unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x674bbfe7	snd_ctl_find_id
+EXPORT_SYMBOL vmlinux 0x675c3f3c	nand_scan
+EXPORT_SYMBOL vmlinux 0x67650abe	dquot_file_open
+EXPORT_SYMBOL vmlinux 0x676aae97	__xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x676bbc0f	_set_bit
+EXPORT_SYMBOL vmlinux 0x67714010	sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x6772d25a	amba_device_register
+EXPORT_SYMBOL vmlinux 0x678ba972	textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x67b27ec1	tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b4ed8c	tcp_v4_get_peer
+EXPORT_SYMBOL vmlinux 0x67b78eb3	seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d	cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67dd181a	generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x67fb4a06	snd_timer_new
+EXPORT_SYMBOL vmlinux 0x68078806	fb_find_mode
+EXPORT_SYMBOL vmlinux 0x6872fd3d	rawv6_mh_filter_register
+EXPORT_SYMBOL vmlinux 0x687473b6	scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x687740d3	call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x687b6a16	kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688fbadf	flush_dcache_page
+EXPORT_SYMBOL vmlinux 0x68a24153	snd_pcm_format_physical_width
+EXPORT_SYMBOL vmlinux 0x68b0587b	ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x68e2c9c6	sk_common_release
+EXPORT_SYMBOL vmlinux 0x691774c4	cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x691d6c90	__block_write_begin
+EXPORT_SYMBOL vmlinux 0x694e2f3c	generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x6958bb5e	names_cachep
+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 0x69d38ed9	__scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a	bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69f1d3b3	inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x69f4af54	ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6a01194c	__mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x6a037cf1	mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a0e3965	nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x6a2190a0	consume_skb
+EXPORT_SYMBOL vmlinux 0x6a3a4e6b	sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x6a559116	rtc_lock
+EXPORT_SYMBOL vmlinux 0x6a76f3ac	blk_iopoll_enable
+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 0x6ac490f5	user_path_create
+EXPORT_SYMBOL vmlinux 0x6adef502	skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x6aff2ac2	of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0x6b062d60	mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6b1b67d3	__bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060	dump_stack
+EXPORT_SYMBOL vmlinux 0x6b5a7057	ida_destroy
+EXPORT_SYMBOL vmlinux 0x6b9e155f	skb_copy_datagram_iovec
+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 0x6bd32099	pneigh_enqueue
+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 0x6c02ced8	clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce	strcspn
+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 0x6c7860ec	nand_correct_data
+EXPORT_SYMBOL vmlinux 0x6c94c71d	free_task
+EXPORT_SYMBOL vmlinux 0x6c96a401	inet_csk_init_xmit_timers
+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 0x6d06ee4f	journal_set_features
+EXPORT_SYMBOL vmlinux 0x6d09de1b	unlock_rename
+EXPORT_SYMBOL vmlinux 0x6d0f1f89	dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x6d0fce2b	netlink_kernel_release
+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 0x6d35cb9b	xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x6d43cbe7	ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x6d5a5fd2	md_done_sync
+EXPORT_SYMBOL vmlinux 0x6d5defde	mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x6d662533	_find_first_bit_le
+EXPORT_SYMBOL vmlinux 0x6d6783d2	simple_statfs
+EXPORT_SYMBOL vmlinux 0x6d6cbadc	rb_last
+EXPORT_SYMBOL vmlinux 0x6d733d4f	register_exec_domain
+EXPORT_SYMBOL vmlinux 0x6daa875d	scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6dad6bb0	otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x6dc5e39f	d_lookup
+EXPORT_SYMBOL vmlinux 0x6ddafe87	tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x6de7249b	fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x6def2db2	half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e06b083	dentry_update_name_case
+EXPORT_SYMBOL vmlinux 0x6e37c0ee	n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x6e501448	journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6e5b3f42	inet6_bind
+EXPORT_SYMBOL vmlinux 0x6e6b0799	tcp_connect
+EXPORT_SYMBOL vmlinux 0x6e720ff2	rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e742bc2	security_file_permission
+EXPORT_SYMBOL vmlinux 0x6e9dd606	__symbol_put
+EXPORT_SYMBOL vmlinux 0x6eb29a5d	__dev_get_by_index
+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 0x6ef03a4c	tcp_valid_rtt_meas
+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 0x6f4475ac	pm860x_page_reg_read
+EXPORT_SYMBOL vmlinux 0x6f4a880d	blkdev_put
+EXPORT_SYMBOL vmlinux 0x6f581045	snd_unregister_device
+EXPORT_SYMBOL vmlinux 0x6f6f267d	dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x6f73a4fb	proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x6f7efd45	bh_submit_read
+EXPORT_SYMBOL vmlinux 0x6fa37775	qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x6fbc6239	skb_insert
+EXPORT_SYMBOL vmlinux 0x6fc281de	skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x6fcb87a1	touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdacc68	register_md_personality
+EXPORT_SYMBOL vmlinux 0x6ff833f5	jbd2_journal_clear_features
+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 0x701629c1	tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x7023ad84	call_netdevice_notifiers
+EXPORT_SYMBOL vmlinux 0x70523a7a	__cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x708b3913	create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x7093b5f7	iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x70b024bf	jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x70b2845a	scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x70bc17d7	inode_wait
+EXPORT_SYMBOL vmlinux 0x70c7089a	__napi_complete
+EXPORT_SYMBOL vmlinux 0x70d053fd	try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x70d3292a	journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x70dd1a12	gpmc_cs_configure
+EXPORT_SYMBOL vmlinux 0x71003efd	devm_iounmap
+EXPORT_SYMBOL vmlinux 0x710854c9	sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x711f806c	datagram_poll
+EXPORT_SYMBOL vmlinux 0x7129e5f8	hex_asc
+EXPORT_SYMBOL vmlinux 0x713e1dd2	tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x714db585	__dev_printk
+EXPORT_SYMBOL vmlinux 0x714e2246	__netif_schedule
+EXPORT_SYMBOL vmlinux 0x7156cb7e	kernel_bind
+EXPORT_SYMBOL vmlinux 0x71632fc6	read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x7169b3e4	ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x7171121c	overflowgid
+EXPORT_SYMBOL vmlinux 0x718b2255	vfs_statfs
+EXPORT_SYMBOL vmlinux 0x719160ed	textsearch_register
+EXPORT_SYMBOL vmlinux 0x71a50dbc	register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a672ef	dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71ba8cb8	snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL vmlinux 0x71c90087	memcmp
+EXPORT_SYMBOL vmlinux 0x7203f331	in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x720d9b87	pskb_copy
+EXPORT_SYMBOL vmlinux 0x721af3c8	get_gendisk
+EXPORT_SYMBOL vmlinux 0x7222ba25	ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x723353fd	__xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x7234265f	bdi_destroy
+EXPORT_SYMBOL vmlinux 0x7234eafb	otg_state_string
+EXPORT_SYMBOL vmlinux 0x72492c59	ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x7251d82e	scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x7258431b	kobject_del
+EXPORT_SYMBOL vmlinux 0x7289de19	lookup_hash
+EXPORT_SYMBOL vmlinux 0x72a2f162	inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x72aa82c6	param_ops_charp
+EXPORT_SYMBOL vmlinux 0x72b547f0	block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x72c02b5f	jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x72d58de9	kstrtou8_from_user
+EXPORT_SYMBOL vmlinux 0x72e0e922	netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x72e50086	vm_stat
+EXPORT_SYMBOL vmlinux 0x72ea7b2d	scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72ee3de1	udp_lib_unhash
+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 0x73916018	register_qdisc
+EXPORT_SYMBOL vmlinux 0x739e8f0b	kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x73a903c4	vfsmount_lock_local_lock
+EXPORT_SYMBOL vmlinux 0x73be2898	dev_addr_init
+EXPORT_SYMBOL vmlinux 0x73e20c1c	strlcpy
+EXPORT_SYMBOL vmlinux 0x73fb8a7e	nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x743052fb	security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x74482728	dma_supported
+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 0x74c134b9	__sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c4254f	scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x74c9291d	tty_free_termios
+EXPORT_SYMBOL vmlinux 0x74ea1901	fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x74f040da	inet_select_addr
+EXPORT_SYMBOL vmlinux 0x74f20f34	unregister_console
+EXPORT_SYMBOL vmlinux 0x7505bdef	memchr_inv
+EXPORT_SYMBOL vmlinux 0x750ff2fc	sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x751b2247	param_get_bool
+EXPORT_SYMBOL vmlinux 0x7562caf1	__starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x75686dc3	ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x75699252	posix_test_lock
+EXPORT_SYMBOL vmlinux 0x757a08f8	__tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x757a6954	xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x7593d385	div64_s64
+EXPORT_SYMBOL vmlinux 0x759e6dca	truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x75a17bed	prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75ad7518	vfs_writev
+EXPORT_SYMBOL vmlinux 0x75b617ad	mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x75bc2dc2	__nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x75bda77a	seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75f0e04c	complete_request_key
+EXPORT_SYMBOL vmlinux 0x75f17fc9	simple_link
+EXPORT_SYMBOL vmlinux 0x75f236ed	inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x75fee7fd	__raw_writesb
+EXPORT_SYMBOL vmlinux 0x760a0f4f	yield
+EXPORT_SYMBOL vmlinux 0x760b437a	unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761fde5e	input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x76363644	tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x7637e167	__netdev_printk
+EXPORT_SYMBOL vmlinux 0x763ba62f	ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x7645a1b3	netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x7647726c	handle_sysrq
+EXPORT_SYMBOL vmlinux 0x7649bede	find_vma
+EXPORT_SYMBOL vmlinux 0x76694591	omap_mcbsp_get_max_tx_threshold
+EXPORT_SYMBOL vmlinux 0x766ed98f	path_get
+EXPORT_SYMBOL vmlinux 0x76881360	leds_event
+EXPORT_SYMBOL vmlinux 0x768f170f	snd_dma_reserve_buf
+EXPORT_SYMBOL vmlinux 0x76946c0c	journal_start
+EXPORT_SYMBOL vmlinux 0x76b42da1	snd_timer_continue
+EXPORT_SYMBOL vmlinux 0x76bf656d	__bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c7f5d1	blk_end_request
+EXPORT_SYMBOL vmlinux 0x76cf47f6	__aeabi_llsl
+EXPORT_SYMBOL vmlinux 0x76d3cd60	laptop_mode
+EXPORT_SYMBOL vmlinux 0x76eb53d5	__rta_fill
+EXPORT_SYMBOL vmlinux 0x773a9c94	blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x77870ad5	jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x77879f94	snd_dma_free_pages
+EXPORT_SYMBOL vmlinux 0x778fa82d	splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x779a18af	kstrtoll
+EXPORT_SYMBOL vmlinux 0x779dc422	snd_card_register
+EXPORT_SYMBOL vmlinux 0x77b9bae1	netdev_refcnt_read
+EXPORT_SYMBOL vmlinux 0x77bc13a0	strim
+EXPORT_SYMBOL vmlinux 0x77c924d7	uart_match_port
+EXPORT_SYMBOL vmlinux 0x77c96f71	generic_setxattr
+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 0x7803404d	ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x78167c43	jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x781c5407	dcb_getapp
+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 0x789d1db9	qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x78a0b928	netpoll_setup
+EXPORT_SYMBOL vmlinux 0x78aac4c2	__lru_cache_add
+EXPORT_SYMBOL vmlinux 0x78b4b053	xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x78e096e2	md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x78e52bf7	netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x78ec8fd1	thaw_process
+EXPORT_SYMBOL vmlinux 0x78f67038	dev_mc_add
+EXPORT_SYMBOL vmlinux 0x79333617	dev_mc_del
+EXPORT_SYMBOL vmlinux 0x7939ae03	simple_readpage
+EXPORT_SYMBOL vmlinux 0x793d794a	skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x794487ee	disable_hlt
+EXPORT_SYMBOL vmlinux 0x79488a31	writeback_inodes_sb_nr
+EXPORT_SYMBOL vmlinux 0x796836b7	lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x796d56bd	__init_rwsem
+EXPORT_SYMBOL vmlinux 0x796fc5ce	scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7995ba44	napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x79aa04a2	get_random_bytes
+EXPORT_SYMBOL vmlinux 0x7a1390f7	param_set_bool
+EXPORT_SYMBOL vmlinux 0x7a1e4fc4	pl330_del
+EXPORT_SYMBOL vmlinux 0x7a27c184	ewma_init
+EXPORT_SYMBOL vmlinux 0x7a4497db	kzfree
+EXPORT_SYMBOL vmlinux 0x7a50a315	files_lglock_global_unlock_online
+EXPORT_SYMBOL vmlinux 0x7a91726b	clkdev_alloc
+EXPORT_SYMBOL vmlinux 0x7aa68030	bdi_unregister
+EXPORT_SYMBOL vmlinux 0x7ab8e4a3	page_put_link
+EXPORT_SYMBOL vmlinux 0x7ad88abe	omap_dss_stop_device
+EXPORT_SYMBOL vmlinux 0x7afa89fc	vsnprintf
+EXPORT_SYMBOL vmlinux 0x7afc9d8a	unregister_sound_mixer
+EXPORT_SYMBOL vmlinux 0x7b03848a	verify_mem_not_deleted
+EXPORT_SYMBOL vmlinux 0x7b71644f	ppp_input_error
+EXPORT_SYMBOL vmlinux 0x7b7a0b22	__serio_register_driver
+EXPORT_SYMBOL vmlinux 0x7b8421c6	eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x7b9b517f	scsi_device_put
+EXPORT_SYMBOL vmlinux 0x7bac2445	i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x7bd96a2c	gpmc_prefetch_enable
+EXPORT_SYMBOL vmlinux 0x7bda4959	qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x7bf30fdc	down_write
+EXPORT_SYMBOL vmlinux 0x7c401393	unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x7c46233a	cpufreq_quick_get
+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 0x7c77c11d	submit_bh
+EXPORT_SYMBOL vmlinux 0x7c904ded	unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d	twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca787d4	inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x7caf5bb7	dev_uc_del
+EXPORT_SYMBOL vmlinux 0x7cb7bec1	snd_ctl_add
+EXPORT_SYMBOL vmlinux 0x7cbd31bf	generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x7cc035a7	__ucmpdi2
+EXPORT_SYMBOL vmlinux 0x7cc0873f	rawv6_mh_filter_unregister
+EXPORT_SYMBOL vmlinux 0x7ce0ae7c	param_get_long
+EXPORT_SYMBOL vmlinux 0x7ced573e	genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x7cf56d2f	vfs_path_lookup
+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 0x7d22c884	dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x7d2c7a96	mmc_erase_group_aligned
+EXPORT_SYMBOL vmlinux 0x7d2f8943	vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x7d3cfed9	rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x7d48ade7	snd_device_register
+EXPORT_SYMBOL vmlinux 0x7d534f33	xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x7d6a1d98	dev_uc_add
+EXPORT_SYMBOL vmlinux 0x7db46938	blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x7dc3c998	check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x7dca01a7	xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x7dd502d0	__break_lease
+EXPORT_SYMBOL vmlinux 0x7de0a78b	tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7deff673	dm_consume_args
+EXPORT_SYMBOL vmlinux 0x7e08dae3	dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x7e097639	mii_check_link
+EXPORT_SYMBOL vmlinux 0x7e1be402	uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x7e394c4e	sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3bb05c	scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7e4ec7ab	__register_binfmt
+EXPORT_SYMBOL vmlinux 0x7e5012a8	sg_miter_start
+EXPORT_SYMBOL vmlinux 0x7e512d51	journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x7e8e7cd9	simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x7e9ebb05	kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ec6ce5c	iunique
+EXPORT_SYMBOL vmlinux 0x7ed32829	inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x7ed566d2	__scsi_add_device
+EXPORT_SYMBOL vmlinux 0x7eeed8cb	mnt_pin
+EXPORT_SYMBOL vmlinux 0x7efff39e	blk_get_request
+EXPORT_SYMBOL vmlinux 0x7f1e111b	d_alloc_name
+EXPORT_SYMBOL vmlinux 0x7f24de73	jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f33a63b	omap_get_dma_chain_dst_pos
+EXPORT_SYMBOL vmlinux 0x7f5ba868	iterate_supers_type
+EXPORT_SYMBOL vmlinux 0x7f63b31e	_memcpy_toio
+EXPORT_SYMBOL vmlinux 0x7f83dbbb	wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x7fbaf2a9	snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL vmlinux 0x7fe28636	kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x7ff532e3	set_blocksize
+EXPORT_SYMBOL vmlinux 0x7ff60de6	arp_find
+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 0x804fc9ca	omap_mcbsp_free
+EXPORT_SYMBOL vmlinux 0x8057dffb	simple_rmdir
+EXPORT_SYMBOL vmlinux 0x80644878	keyring_search
+EXPORT_SYMBOL vmlinux 0x80a7facb	neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x80ae0eb4	nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x80c2447c	mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x80d726a3	generic_getxattr
+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 0x816bc2f4	dev_open
+EXPORT_SYMBOL vmlinux 0x8179d5f9	mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x8180a2db	mfd_cell_enable
+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 0x820e73ed	i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x821e8d91	gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x8224f42d	freeze_bdev
+EXPORT_SYMBOL vmlinux 0x8243200b	genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x824a4367	tmio_core_mmc_pwr
+EXPORT_SYMBOL vmlinux 0x8251bcc3	bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82604583	d_path
+EXPORT_SYMBOL vmlinux 0x8260686f	bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b	tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x826e648d	__task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x826e9d75	bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x82934770	icmp_send
+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 0x8320bea8	__umodsi3
+EXPORT_SYMBOL vmlinux 0x8330e981	dpi_set_timings
+EXPORT_SYMBOL vmlinux 0x834420b0	tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x836bdb72	nand_flash_ids
+EXPORT_SYMBOL vmlinux 0x8371daff	sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x837ffc3e	journal_dirty_data
+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 0x83b6e326	jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x83b920a0	dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x83cdff7d	inet_put_port
+EXPORT_SYMBOL vmlinux 0x83d25c38	__wake_up_bit
+EXPORT_SYMBOL vmlinux 0x83e55830	snd_ctl_unregister_ioctl
+EXPORT_SYMBOL vmlinux 0x83ea01df	mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x83eb5971	mapping_tagged
+EXPORT_SYMBOL vmlinux 0x8400afe0	delete_from_page_cache
+EXPORT_SYMBOL vmlinux 0x84208119	udp_proc_register
+EXPORT_SYMBOL vmlinux 0x8430e613	may_umount
+EXPORT_SYMBOL vmlinux 0x8436f8e3	param_ops_ushort
+EXPORT_SYMBOL vmlinux 0x846bcc01	dm_table_get
+EXPORT_SYMBOL vmlinux 0x8478b5aa	skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x847c8bd6	snd_pcm_hw_param_first
+EXPORT_SYMBOL vmlinux 0x848152f4	unregister_netdev
+EXPORT_SYMBOL vmlinux 0x84915d15	generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x84b183ae	strncmp
+EXPORT_SYMBOL vmlinux 0x84b86069	ip_defrag
+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 0x84db4b6e	wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x84e02c17	cdrom_check_events
+EXPORT_SYMBOL vmlinux 0x84f3b5cb	tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x854bb677	xfrm_state_delete
+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 0x858ecece	ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x85907337	bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x85b18a12	seq_release_private
+EXPORT_SYMBOL vmlinux 0x85b5e625	rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x85b689be	jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x85c30435	nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x85c9612b	mntput
+EXPORT_SYMBOL vmlinux 0x85d16c8d	thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x85d44d46	account_page_dirtied
+EXPORT_SYMBOL vmlinux 0x85df9b6c	strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2	iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x8610cc93	tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x862718fa	framebuffer_release
+EXPORT_SYMBOL vmlinux 0x863b9ed3	ppp_input
+EXPORT_SYMBOL vmlinux 0x865029ac	__hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e	cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x867b7a62	netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x86869074	mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x868acba5	get_options
+EXPORT_SYMBOL vmlinux 0x86a4889a	kmalloc_order_trace
+EXPORT_SYMBOL vmlinux 0x86a87571	__dquot_free_space
+EXPORT_SYMBOL vmlinux 0x86c0baa5	__dst_free
+EXPORT_SYMBOL vmlinux 0x86d86a2d	bio_free
+EXPORT_SYMBOL vmlinux 0x86debcd1	blk_rq_init
+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 0x8710d90a	__xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x8714ac20	alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x871c0a7e	fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872932cc	serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x872a8a6b	tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x873357ed	kthread_bind
+EXPORT_SYMBOL vmlinux 0x877a4709	ata_port_printk
+EXPORT_SYMBOL vmlinux 0x878ab3ce	sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87ab0635	install_exec_creds
+EXPORT_SYMBOL vmlinux 0x87c0700e	input_get_keycode
+EXPORT_SYMBOL vmlinux 0x87dbba14	ida_get_new
+EXPORT_SYMBOL vmlinux 0x87e494b1	thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x881039d0	zlib_inflate
+EXPORT_SYMBOL vmlinux 0x881fa0fb	inode_owner_or_capable
+EXPORT_SYMBOL vmlinux 0x8834396c	mod_timer
+EXPORT_SYMBOL vmlinux 0x883b3507	load_nls
+EXPORT_SYMBOL vmlinux 0x88646272	set_anon_super
+EXPORT_SYMBOL vmlinux 0x8869f62e	key_validate
+EXPORT_SYMBOL vmlinux 0x8876fbe5	snd_ctl_find_numid
+EXPORT_SYMBOL vmlinux 0x8893fa5d	finish_wait
+EXPORT_SYMBOL vmlinux 0x88ae743f	nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x88bb551c	netdev_set_master
+EXPORT_SYMBOL vmlinux 0x88bc289b	register_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x88c59600	scsi_put_command
+EXPORT_SYMBOL vmlinux 0x88c99ae2	xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x88d8447f	tty_register_device
+EXPORT_SYMBOL vmlinux 0x88e6bec2	__skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x8907c79a	eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x8918f83d	snd_info_create_card_entry
+EXPORT_SYMBOL vmlinux 0x891f5699	phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x89291313	gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x893af426	tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x8949858b	schedule_work
+EXPORT_SYMBOL vmlinux 0x897473df	mktime
+EXPORT_SYMBOL vmlinux 0x899bdfa5	dev_add_pack
+EXPORT_SYMBOL vmlinux 0x899d3f1d	request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x89a3c4f4	omap_get_dma_chain_index
+EXPORT_SYMBOL vmlinux 0x89b12c5b	netif_napi_add
+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 0x8a0c0c59	d_find_alias
+EXPORT_SYMBOL vmlinux 0x8a11b9f0	lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x8a490c90	rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x8a4fa83b	__aeabi_llsr
+EXPORT_SYMBOL vmlinux 0x8a7d1c31	high_memory
+EXPORT_SYMBOL vmlinux 0x8a86c0fc	dquot_release
+EXPORT_SYMBOL vmlinux 0x8a99a016	mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab081d2	neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x8ab0e1b1	locks_free_lock
+EXPORT_SYMBOL vmlinux 0x8adedea9	snd_ctl_make_virtual_master
+EXPORT_SYMBOL vmlinux 0x8ae5b1a2	md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x8b1be2b5	__brelse
+EXPORT_SYMBOL vmlinux 0x8b4bb1bc	security_path_rename
+EXPORT_SYMBOL vmlinux 0x8b618d08	overflowuid
+EXPORT_SYMBOL vmlinux 0x8b7b174f	elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x8b7f03dd	tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x8bc2401d	textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x8bcc7885	tty_throttle
+EXPORT_SYMBOL vmlinux 0x8bdb6e8c	mmc_release_host
+EXPORT_SYMBOL vmlinux 0x8bdce7ef	prepare_binprm
+EXPORT_SYMBOL vmlinux 0x8be07a49	fsync_bdev
+EXPORT_SYMBOL vmlinux 0x8beadbaa	blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x8c08199c	release_firmware
+EXPORT_SYMBOL vmlinux 0x8c0c3237	take_over_console
+EXPORT_SYMBOL vmlinux 0x8c4d6523	omap_dma_chain_a_transfer
+EXPORT_SYMBOL vmlinux 0x8c505427	__scsi_put_command
+EXPORT_SYMBOL vmlinux 0x8c566f56	bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x8c6b1086	sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x8c6d2542	skb_store_bits
+EXPORT_SYMBOL vmlinux 0x8c7a3757	of_get_named_gpio_flags
+EXPORT_SYMBOL vmlinux 0x8c984d12	ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x8ca8d886	key_revoke
+EXPORT_SYMBOL vmlinux 0x8cd69ebe	d_invalidate
+EXPORT_SYMBOL vmlinux 0x8cd8c339	omap_free_dma
+EXPORT_SYMBOL vmlinux 0x8cea74a6	ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x8cf0d28d	mddev_congested
+EXPORT_SYMBOL vmlinux 0x8d16a3e2	dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x8d21c125	netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x8d2268c5	arp_xmit
+EXPORT_SYMBOL vmlinux 0x8d317a25	phy_print_status
+EXPORT_SYMBOL vmlinux 0x8d551bef	sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d61f998	posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x8d6f81b4	__div64_32
+EXPORT_SYMBOL vmlinux 0x8d839a2e	blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x8d8b011a	simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x8db770d8	redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x8df3789f	snd_oss_info_register
+EXPORT_SYMBOL vmlinux 0x8e004fb3	vfs_fsync
+EXPORT_SYMBOL vmlinux 0x8e0b7743	ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e16e5da	scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x8e4952aa	amba_find_device
+EXPORT_SYMBOL vmlinux 0x8e555738	param_get_uint
+EXPORT_SYMBOL vmlinux 0x8e60e8f3	tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x8e691c56	__devm_request_region
+EXPORT_SYMBOL vmlinux 0x8e7c694e	scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x8e8a70e8	ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x8e8ddff1	netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x8ea571d9	fb_class
+EXPORT_SYMBOL vmlinux 0x8ea7d43b	con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x8eb5a102	elv_rb_find
+EXPORT_SYMBOL vmlinux 0x8eb7df33	sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x8ee69235	timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f07205e	jbd2_inode_cache
+EXPORT_SYMBOL vmlinux 0x8f085f21	mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x8f0ae89b	tcp_prot
+EXPORT_SYMBOL vmlinux 0x8f3abaeb	dev_err
+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 0x8f97c23e	snd_pcm_lib_ioctl
+EXPORT_SYMBOL vmlinux 0x8fa4130a	omap_set_dma_callback
+EXPORT_SYMBOL vmlinux 0x8fc7f839	param_set_charp
+EXPORT_SYMBOL vmlinux 0x8fe7269d	of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x8ff66782	param_get_ushort
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8	crc16
+EXPORT_SYMBOL vmlinux 0x905ed8b3	eth_header_parse
+EXPORT_SYMBOL vmlinux 0x90aceec4	log_start_commit
+EXPORT_SYMBOL vmlinux 0x90c5e819	kstrtoll_from_user
+EXPORT_SYMBOL vmlinux 0x90e24e74	phy_disconnect
+EXPORT_SYMBOL vmlinux 0x90e83954	of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x9134c3ff	nand_bch_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x91463b1d	kstrtos16
+EXPORT_SYMBOL vmlinux 0x91621d6a	allocate_resource
+EXPORT_SYMBOL vmlinux 0x9162f164	dcb_setapp
+EXPORT_SYMBOL vmlinux 0x91715312	sprintf
+EXPORT_SYMBOL vmlinux 0x919029aa	__readwrite_bug
+EXPORT_SYMBOL vmlinux 0x91bd16be	omap_dss_get_device
+EXPORT_SYMBOL vmlinux 0x920664c8	mempool_free
+EXPORT_SYMBOL vmlinux 0x9212f95f	neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x923b1276	dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923bc9b1	starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x924273b7	lookup_bdev
+EXPORT_SYMBOL vmlinux 0x92642ce9	of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x9264365b	__cleancache_flush_fs
+EXPORT_SYMBOL vmlinux 0x929eecac	__strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x92c46e61	tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x92d272ce	vm_event_states
+EXPORT_SYMBOL vmlinux 0x9305f8e6	cpufreq_get
+EXPORT_SYMBOL vmlinux 0x930e0466	blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x931938c3	vfs_llseek
+EXPORT_SYMBOL vmlinux 0x93215e1d	__kfifo_skip_r
+EXPORT_SYMBOL vmlinux 0x9333e39d	of_dev_put
+EXPORT_SYMBOL vmlinux 0x9340ea5c	__neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x935e13da	__set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x9373a912	skb_find_text
+EXPORT_SYMBOL vmlinux 0x93a6e0b2	io_schedule
+EXPORT_SYMBOL vmlinux 0x93bc9ebd	inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x93fca811	__get_free_pages
+EXPORT_SYMBOL vmlinux 0x9400bbab	omap_mcbsp_dma_reg_params
+EXPORT_SYMBOL vmlinux 0x9401fff1	tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x94418f54	elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x94444361	mii_check_media
+EXPORT_SYMBOL vmlinux 0x946e2c58	tty_mutex
+EXPORT_SYMBOL vmlinux 0x94864c7a	wl12xx_get_platform_data
+EXPORT_SYMBOL vmlinux 0x94961283	vunmap
+EXPORT_SYMBOL vmlinux 0x94af632e	complete_all
+EXPORT_SYMBOL vmlinux 0x94b72cfb	xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x950f1186	add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x952a26a4	locks_mandatory_area
+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 0x95461f16	tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x9565c97f	__lock_buffer
+EXPORT_SYMBOL vmlinux 0x9585e489	tcp_gro_receive
+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 0x9619c3b7	generic_fillattr
+EXPORT_SYMBOL vmlinux 0x96573b80	__kfifo_dma_in_finish_r
+EXPORT_SYMBOL vmlinux 0x965f8481	inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x9664044b	ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x9665e8e3	mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x967bec11	nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x96898769	sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x969106e4	clk_set_rate
+EXPORT_SYMBOL vmlinux 0x969bd271	generic_splice_sendpage
+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 0x96c5b9f1	fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x96c6bb76	set_page_dirty
+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 0x97041123	skb_unlink
+EXPORT_SYMBOL vmlinux 0x9709b029	aio_complete
+EXPORT_SYMBOL vmlinux 0x9714cf26	sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x97255bdf	strlen
+EXPORT_SYMBOL vmlinux 0x97417a5a	mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x9744c6e4	tty_port_open
+EXPORT_SYMBOL vmlinux 0x9754ec10	radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x975ca814	snd_timer_start
+EXPORT_SYMBOL vmlinux 0x97999817	rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x97a09ad5	elv_register_queue
+EXPORT_SYMBOL vmlinux 0x97a7f9b4	blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x97d3860a	dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x97e4d19d	scsi_print_command
+EXPORT_SYMBOL vmlinux 0x97e9e5c1	neigh_direct_output
+EXPORT_SYMBOL vmlinux 0x98082893	__copy_to_user
+EXPORT_SYMBOL vmlinux 0x9820b644	warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0x982c4c57	skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x9840b41f	register_cdrom
+EXPORT_SYMBOL vmlinux 0x98596215	skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x9861b52a	iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x986e6135	fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x98b28a03	netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x98c16297	scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x98c1e903	dev_emerg
+EXPORT_SYMBOL vmlinux 0x98d880e6	mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x98fa21b0	mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x99084bc5	__dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x99101d88	netlink_ack
+EXPORT_SYMBOL vmlinux 0x9912f960	tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x99269e74	eth_type_trans
+EXPORT_SYMBOL vmlinux 0x99525e3a	vfsmount_lock_local_unlock
+EXPORT_SYMBOL vmlinux 0x99538665	seq_open_private
+EXPORT_SYMBOL vmlinux 0x99583e88	splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x995f619e	ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x9994c0ca	ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999c3148	__raw_readsb
+EXPORT_SYMBOL vmlinux 0x999e8297	vfree
+EXPORT_SYMBOL vmlinux 0x99a786b3	vfs_create
+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 0x99e3e27c	xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x99fde25f	gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x9a1dfd65	strpbrk
+EXPORT_SYMBOL vmlinux 0x9a3c87fb	xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x9a4eeb74	blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x9a63f60a	key_type_keyring
+EXPORT_SYMBOL vmlinux 0x9a85d7ab	netif_device_detach
+EXPORT_SYMBOL vmlinux 0x9a88a2c5	snd_pcm_hw_constraint_step
+EXPORT_SYMBOL vmlinux 0x9aa537af	empty_zero_page
+EXPORT_SYMBOL vmlinux 0x9ab721ef	revert_creds
+EXPORT_SYMBOL vmlinux 0x9ab8808c	param_get_charp
+EXPORT_SYMBOL vmlinux 0x9aca6792	__sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x9afa6936	register_con_driver
+EXPORT_SYMBOL vmlinux 0x9b388444	get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b4b1956	inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x9b5b5114	get_disk
+EXPORT_SYMBOL vmlinux 0x9b6eb137	ksize
+EXPORT_SYMBOL vmlinux 0x9b859421	rtnl_notify
+EXPORT_SYMBOL vmlinux 0x9b8c0808	journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x9ba7089d	argv_split
+EXPORT_SYMBOL vmlinux 0x9bcc1d3e	register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x9bcc7e8c	kern_path
+EXPORT_SYMBOL vmlinux 0x9bce482f	__release_region
+EXPORT_SYMBOL vmlinux 0x9bef1299	sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x9bf88878	mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x9c012508	fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c147d90	dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x9c277ba0	dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x9c3db728	nf_register_queue_handler
+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 0x9ca04207	clk_set_parent
+EXPORT_SYMBOL vmlinux 0x9ca5a39e	qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x9ca612c0	mmc_can_reset
+EXPORT_SYMBOL vmlinux 0x9cb96e92	qdisc_put_rtab
+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 0x9d3aa376	blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d5f128e	serial8250_do_pm
+EXPORT_SYMBOL vmlinux 0x9d6686ca	tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x9d669763	memcpy
+EXPORT_SYMBOL vmlinux 0x9d893369	seq_lseek
+EXPORT_SYMBOL vmlinux 0x9dad8435	sock_create_kern
+EXPORT_SYMBOL vmlinux 0x9dc285ef	request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x9dc9e3ea	set_security_override
+EXPORT_SYMBOL vmlinux 0x9df9358d	drop_super
+EXPORT_SYMBOL vmlinux 0x9dfd56e7	phy_start
+EXPORT_SYMBOL vmlinux 0x9e0c711d	vzalloc_node
+EXPORT_SYMBOL vmlinux 0x9e11c4ac	sock_map_fd
+EXPORT_SYMBOL vmlinux 0x9e2000a7	memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e26df99	mmc_start_req
+EXPORT_SYMBOL vmlinux 0x9e4faeef	dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x9e573544	jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x9e607910	audit_log
+EXPORT_SYMBOL vmlinux 0x9e69776c	ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x9e6d79f8	snd_info_get_str
+EXPORT_SYMBOL vmlinux 0x9e7163f6	d_delete
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0	__udelay
+EXPORT_SYMBOL vmlinux 0x9e9f1714	__bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ec2cc8c	clk_enable
+EXPORT_SYMBOL vmlinux 0x9ed685ee	iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9edd4f75	snd_pcm_lib_write
+EXPORT_SYMBOL vmlinux 0x9eecde16	do_brk
+EXPORT_SYMBOL vmlinux 0x9eef60b5	sound_class
+EXPORT_SYMBOL vmlinux 0x9f014f0e	fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x9f262d34	udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x9f2bdaac	__bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f3aeb9f	netdev_warn
+EXPORT_SYMBOL vmlinux 0x9f46ced8	__sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f491e5d	ftrace_print_symbols_seq_u64
+EXPORT_SYMBOL vmlinux 0x9f8ade83	unregister_sysctl_table
+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 0x9fbab6f8	tcf_em_register
+EXPORT_SYMBOL vmlinux 0x9fdecc31	unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe62d5d	mmc_set_data_timeout
+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 0xa04f4d4c	nand_bch_correct_data
+EXPORT_SYMBOL vmlinux 0xa0510c96	send_sig_info
+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 0xa0a9c88f	sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xa0b04675	vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0bc1200	set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xa0be8dd2	blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xa0c767b0	__ip_select_ident
+EXPORT_SYMBOL vmlinux 0xa0c888eb	key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xa0ceef51	out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d18bd0	write_one_page
+EXPORT_SYMBOL vmlinux 0xa0ebd14c	sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xa0fbac79	wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d	sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10996cb	inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xa1125a0c	blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xa11d3905	write_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xa120d33c	tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa140df00	dqput
+EXPORT_SYMBOL vmlinux 0xa1415618	twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa1477019	snd_pcm_hw_rule_noresample
+EXPORT_SYMBOL vmlinux 0xa14f3d8c	ewma_add
+EXPORT_SYMBOL vmlinux 0xa1549007	sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xa17ee298	dma_find_channel
+EXPORT_SYMBOL vmlinux 0xa181fec3	neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xa1972280	nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xa1a5afea	jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xa1b1ea3a	security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xa1b2a50e	inet_dgram_ops
+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 0xa1cb7015	jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xa1e1277e	journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xa20ce1b8	net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa22a0eea	kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xa2434452	simple_getattr
+EXPORT_SYMBOL vmlinux 0xa258a891	sock_register
+EXPORT_SYMBOL vmlinux 0xa264af0f	blk_integrity_merge_bio
+EXPORT_SYMBOL vmlinux 0xa2761c7b	bdput
+EXPORT_SYMBOL vmlinux 0xa2782629	sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xa2848c50	ecryptfs_get_auth_tok_key
+EXPORT_SYMBOL vmlinux 0xa29855c2	sync_inode_metadata
+EXPORT_SYMBOL vmlinux 0xa2a5fd77	inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2c56c31	param_ops_ulong
+EXPORT_SYMBOL vmlinux 0xa3261b92	dm_get_device
+EXPORT_SYMBOL vmlinux 0xa32629f6	dns_query
+EXPORT_SYMBOL vmlinux 0xa332cdd1	security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa336feb7	nand_manuf_ids
+EXPORT_SYMBOL vmlinux 0xa33c6a80	sock_wfree
+EXPORT_SYMBOL vmlinux 0xa34f1ef5	crc32_le
+EXPORT_SYMBOL vmlinux 0xa35de80f	ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3675a7c	inode_init_once
+EXPORT_SYMBOL vmlinux 0xa382f962	dst_alloc
+EXPORT_SYMBOL vmlinux 0xa394b67a	tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xa3a26a0e	sock_update_classid
+EXPORT_SYMBOL vmlinux 0xa3cb0c1d	serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa3f5e9e0	__tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0xa413973b	wait_iff_congested
+EXPORT_SYMBOL vmlinux 0xa4279941	ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xa42cad84	sock_i_uid
+EXPORT_SYMBOL vmlinux 0xa42d53a9	netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xa43b1297	vscnprintf
+EXPORT_SYMBOL vmlinux 0xa43b9539	memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa456f0cc	sock_wake_async
+EXPORT_SYMBOL vmlinux 0xa4610bc6	omap_rev
+EXPORT_SYMBOL vmlinux 0xa471bf2e	iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xa4897cc3	dm_kcopyd_zero
+EXPORT_SYMBOL vmlinux 0xa48f5b09	omap_dma_set_global_params
+EXPORT_SYMBOL vmlinux 0xa4b42c55	omap_set_dma_priority
+EXPORT_SYMBOL vmlinux 0xa4c29461	omap_st_is_enabled
+EXPORT_SYMBOL vmlinux 0xa4e421b1	twl6040_power
+EXPORT_SYMBOL vmlinux 0xa4eddcfe	tcp_poll
+EXPORT_SYMBOL vmlinux 0xa4ef46c4	genphy_resume
+EXPORT_SYMBOL vmlinux 0xa50858e8	omapdss_dpi_display_enable
+EXPORT_SYMBOL vmlinux 0xa51db984	thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0xa55c8052	page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa569fdf2	fasync_helper
+EXPORT_SYMBOL vmlinux 0xa56b50ba	inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa575428e	scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xa588e320	kernel_read
+EXPORT_SYMBOL vmlinux 0xa598e29c	vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a11f18	dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xa5aafd10	journal_abort
+EXPORT_SYMBOL vmlinux 0xa5cef8ad	release_resource
+EXPORT_SYMBOL vmlinux 0xa5d69124	blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xa5f284ec	vfs_open
+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 0xa65a4a2f	inet_sendpage
+EXPORT_SYMBOL vmlinux 0xa663d760	tty_register_driver
+EXPORT_SYMBOL vmlinux 0xa6658867	kern_path_create
+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 0xa6b29455	tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xa6c2b2c6	tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0xa6dcc773	rb_insert_color
+EXPORT_SYMBOL vmlinux 0xa6f0578c	dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xa6f344b9	sk_filter
+EXPORT_SYMBOL vmlinux 0xa717cd25	xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xa7217d9c	mdiobus_read
+EXPORT_SYMBOL vmlinux 0xa73da524	inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa74ee83c	xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xa7612e4e	md_write_start
+EXPORT_SYMBOL vmlinux 0xa7863d64	dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xa7b4c5ee	__neigh_event_send
+EXPORT_SYMBOL vmlinux 0xa7c58236	twl6030_mmc_card_detect
+EXPORT_SYMBOL vmlinux 0xa7ec92dd	mdiobus_register
+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 0xa83772a6	map_destroy
+EXPORT_SYMBOL vmlinux 0xa8380d34	kernel_execve
+EXPORT_SYMBOL vmlinux 0xa838133d	fsnotify_alloc_group
+EXPORT_SYMBOL vmlinux 0xa85f1a68	__alloc_skb
+EXPORT_SYMBOL vmlinux 0xa87bb6d8	kset_register
+EXPORT_SYMBOL vmlinux 0xa88b99d2	kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xa8c4dc04	module_refcount
+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 0xa93cf34a	napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xa943beca	cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xa944c5f9	scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xa9459df1	tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xa964dd13	gpmc_cs_request
+EXPORT_SYMBOL vmlinux 0xa9ba6da0	dev_set_group
+EXPORT_SYMBOL vmlinux 0xa9f825b0	vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xaa007648	simple_unlink
+EXPORT_SYMBOL vmlinux 0xaa0ad185	iput
+EXPORT_SYMBOL vmlinux 0xaa0f724f	blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xaa5927f9	scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xaa6901ac	__kfifo_out_r
+EXPORT_SYMBOL vmlinux 0xaa6a5b9d	bio_clone
+EXPORT_SYMBOL vmlinux 0xaa6c1661	mmc_can_erase
+EXPORT_SYMBOL vmlinux 0xaa7f7d52	submit_bio
+EXPORT_SYMBOL vmlinux 0xaa87e159	set_binfmt
+EXPORT_SYMBOL vmlinux 0xaa8e90be	of_get_parent
+EXPORT_SYMBOL vmlinux 0xaad2b04d	proc_symlink
+EXPORT_SYMBOL vmlinux 0xaad63e1a	__set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xaad6d92f	rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xaafdc258	strcasecmp
+EXPORT_SYMBOL vmlinux 0xaafdd14d	simple_setattr
+EXPORT_SYMBOL vmlinux 0xab0f0df7	abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xab143ed5	unload_nls
+EXPORT_SYMBOL vmlinux 0xab2e1287	sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xab2e3405	dev_close
+EXPORT_SYMBOL vmlinux 0xab3a2c53	follow_pfn
+EXPORT_SYMBOL vmlinux 0xab600421	probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab694444	bsearch
+EXPORT_SYMBOL vmlinux 0xab6bde28	sysctl_max_syn_backlog
+EXPORT_SYMBOL vmlinux 0xab745ade	skb_pull
+EXPORT_SYMBOL vmlinux 0xab93c455	napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xabaafba2	skb_copy_datagram_const_iovec
+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 0xabe39bea	kfree_skb
+EXPORT_SYMBOL vmlinux 0xabe4422d	amba_driver_register
+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 0xac18ea9a	page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xac267f03	register_quota_format
+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 0xac6a7c33	lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xacb58cd1	mmc_hw_reset
+EXPORT_SYMBOL vmlinux 0xacbd33ac	grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xaccabc6a	in4_pton
+EXPORT_SYMBOL vmlinux 0xacce46f0	scsi_get_command
+EXPORT_SYMBOL vmlinux 0xace7c9f8	may_umount_tree
+EXPORT_SYMBOL vmlinux 0xacf4d843	match_strdup
+EXPORT_SYMBOL vmlinux 0xacf61aa5	snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL vmlinux 0xad0413d4	match_hex
+EXPORT_SYMBOL vmlinux 0xad4259ea	remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xad466018	quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad5f05c7	filp_open
+EXPORT_SYMBOL vmlinux 0xad70cbfc	prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xad78bf9e	sk_stream_write_space
+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 0xad9f23a5	neigh_changeaddr
+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 0xae1bd23e	block_truncate_page
+EXPORT_SYMBOL vmlinux 0xae487307	mmc_can_secure_erase_trim
+EXPORT_SYMBOL vmlinux 0xae87b7d7	phy_driver_unregister
+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 0xaeb3b059	generic_make_request
+EXPORT_SYMBOL vmlinux 0xaeb70a21	tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xaec655c7	alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaec9f77e	snd_timer_stop
+EXPORT_SYMBOL vmlinux 0xaee34f5f	tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xaee3b995	elv_rb_latter_request
+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 0xaf5f7994	remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf610526	udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xaf68f5bb	inet_frags_init
+EXPORT_SYMBOL vmlinux 0xaf704921	sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xaf7337f5	jbd2_journal_abort
+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 0xafdc0692	__dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xb0146c3a	param_set_byte
+EXPORT_SYMBOL vmlinux 0xb02299bf	blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xb02bfafd	snd_pcm_notify
+EXPORT_SYMBOL vmlinux 0xb04abea1	scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xb05ca2c7	journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb05cc8b5	twl6040_set_bits
+EXPORT_SYMBOL vmlinux 0xb0a9e1cc	blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xb0b847ac	__bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0bd1935	unlink_framebuffer
+EXPORT_SYMBOL vmlinux 0xb0d94da1	skb_put
+EXPORT_SYMBOL vmlinux 0xb0e10781	get_option
+EXPORT_SYMBOL vmlinux 0xb0f4f223	sk_dst_check
+EXPORT_SYMBOL vmlinux 0xb0f5f31d	do_truncate
+EXPORT_SYMBOL vmlinux 0xb0f68d14	remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xb121390a	probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1255147	jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xb12a5105	__remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xb1689489	journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xb16fe7b3	dm_ratelimit_state
+EXPORT_SYMBOL vmlinux 0xb17436d5	mmc_do_release_host
+EXPORT_SYMBOL vmlinux 0xb17daddb	dst_discard
+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 0xb1ade09a	dentry_path_raw
+EXPORT_SYMBOL vmlinux 0xb1c3a01a	oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cf0187	put_tty_driver
+EXPORT_SYMBOL vmlinux 0xb1dbd13d	security_path_unlink
+EXPORT_SYMBOL vmlinux 0xb1e9fd33	inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xb1f72dd1	tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xb1ffb750	vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xb21667c6	scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xb218a8f8	genphy_update_link
+EXPORT_SYMBOL vmlinux 0xb21d22d6	sock_init_data
+EXPORT_SYMBOL vmlinux 0xb22cf46b	nand_scan_tail
+EXPORT_SYMBOL vmlinux 0xb2484a62	pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xb259a501	phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xb2682405	utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2757e43	ilookup5
+EXPORT_SYMBOL vmlinux 0xb282d505	genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0xb28f1c92	omap_mcbsp_stop
+EXPORT_SYMBOL vmlinux 0xb299b210	inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xb2b6ccd4	blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xb2bac9c5	netdev_alert
+EXPORT_SYMBOL vmlinux 0xb2c8739b	locks_delete_block
+EXPORT_SYMBOL vmlinux 0xb2d108b4	security_path_symlink
+EXPORT_SYMBOL vmlinux 0xb2d46eae	bdget_disk
+EXPORT_SYMBOL vmlinux 0xb2e5ae4a	snd_lookup_minor_data
+EXPORT_SYMBOL vmlinux 0xb2e68f18	flush_old_exec
+EXPORT_SYMBOL vmlinux 0xb2f08828	blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xb2fe77de	__register_chrdev
+EXPORT_SYMBOL vmlinux 0xb30f52be	wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb317de89	generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xb318d887	uart_resume_port
+EXPORT_SYMBOL vmlinux 0xb3232e3a	generic_write_end
+EXPORT_SYMBOL vmlinux 0xb3305d52	send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xb391afa3	scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xb3a307c6	si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3c76ea8	ata_dev_printk
+EXPORT_SYMBOL vmlinux 0xb3c940ba	md_integrity_register
+EXPORT_SYMBOL vmlinux 0xb3e2cb66	netlink_unicast
+EXPORT_SYMBOL vmlinux 0xb3f51548	of_device_alloc
+EXPORT_SYMBOL vmlinux 0xb3fc5fe6	fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0xb412edcd	ab8500_gpadc_read_raw
+EXPORT_SYMBOL vmlinux 0xb41aeaa0	generic_write_sync
+EXPORT_SYMBOL vmlinux 0xb41ba270	unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xb423dba1	console_blanked
+EXPORT_SYMBOL vmlinux 0xb42737d3	jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xb45a151a	set_groups
+EXPORT_SYMBOL vmlinux 0xb4709322	scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb49124e6	skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xb4b94377	__nand_correct_data
+EXPORT_SYMBOL vmlinux 0xb4c8f38a	omap_dma_chain_status
+EXPORT_SYMBOL vmlinux 0xb4d915ad	mount_ns
+EXPORT_SYMBOL vmlinux 0xb4e38e77	nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xb4f8b040	follow_down
+EXPORT_SYMBOL vmlinux 0xb5044271	vsscanf
+EXPORT_SYMBOL vmlinux 0xb5252451	__scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xb5344337	do_SAK
+EXPORT_SYMBOL vmlinux 0xb54533f7	usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f57c4	bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xb5604921	neigh_create
+EXPORT_SYMBOL vmlinux 0xb58912a9	of_get_next_child
+EXPORT_SYMBOL vmlinux 0xb5a459dc	unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5aa7165	dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xb5b9c519	sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xb5c8207d	blk_peek_request
+EXPORT_SYMBOL vmlinux 0xb5ca1c46	slhc_free
+EXPORT_SYMBOL vmlinux 0xb5cf98e3	skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xb5dc747d	uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xb602439f	sk_run_filter
+EXPORT_SYMBOL vmlinux 0xb61a2769	kernel_accept
+EXPORT_SYMBOL vmlinux 0xb61c7f9e	tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xb625abdb	xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xb628f715	files_lglock_local_lock
+EXPORT_SYMBOL vmlinux 0xb6611ebe	no_llseek
+EXPORT_SYMBOL vmlinux 0xb678366f	int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6822a33	radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb686e184	eth_header_cache
+EXPORT_SYMBOL vmlinux 0xb6896671	crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb69b4ba6	ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xb6a61a86	qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816	find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6c5a973	scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cf3961	genphy_suspend
+EXPORT_SYMBOL vmlinux 0xb73c8d40	tty_chars_in_buffer
+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 0xb7937fcb	tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xb7a50996	jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xb7af43c0	ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xb7b184b4	abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xb7b61546	crc32_be
+EXPORT_SYMBOL vmlinux 0xb7ba76c7	__aeabi_unwind_cpp_pr2
+EXPORT_SYMBOL vmlinux 0xb7d858e6	wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0xb7e879e1	wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xb7f0ecda	ip_check_defrag
+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 0xb81960ca	snprintf
+EXPORT_SYMBOL vmlinux 0xb81fd3be	idr_find
+EXPORT_SYMBOL vmlinux 0xb835b3e4	radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0xb86e4ab9	random32
+EXPORT_SYMBOL vmlinux 0xb87badba	generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xb888c5b4	security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xb892c24e	ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xb894926d	schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb8955617	qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xb89af9bf	srandom32
+EXPORT_SYMBOL vmlinux 0xb8aa2342	__check_region
+EXPORT_SYMBOL vmlinux 0xb8c49564	pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xb8c64d48	dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xb8e877e7	kstrtouint_from_user
+EXPORT_SYMBOL vmlinux 0xb93b5b8e	qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xb952098b	neigh_resolve_output
+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 0xb96b3856	dev_change_flags
+EXPORT_SYMBOL vmlinux 0xb96d414f	sk_receive_skb
+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 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 0xb9e52429	__wake_up
+EXPORT_SYMBOL vmlinux 0xba028f4c	omap_dss_get_next_device
+EXPORT_SYMBOL vmlinux 0xba06ccaa	noop_qdisc
+EXPORT_SYMBOL vmlinux 0xba2de0d6	d_set_d_op
+EXPORT_SYMBOL vmlinux 0xba497f13	loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba5392c1	__skb_get_rxhash
+EXPORT_SYMBOL vmlinux 0xba6586c4	inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xba81330b	dev_addr_add
+EXPORT_SYMBOL vmlinux 0xba8bca38	__page_symlink
+EXPORT_SYMBOL vmlinux 0xba8fe8e5	twl6040_get_sysclk
+EXPORT_SYMBOL vmlinux 0xba920ae8	thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xbaa48d8b	pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae	timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaac427c	get_mem_type
+EXPORT_SYMBOL vmlinux 0xbae54c74	eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xbaec9bdc	skb_trim
+EXPORT_SYMBOL vmlinux 0xbafec204	snd_card_free
+EXPORT_SYMBOL vmlinux 0xbb167766	fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad	disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb2858e8	pl330_submit_req
+EXPORT_SYMBOL vmlinux 0xbb2b4612	rwsem_is_locked
+EXPORT_SYMBOL vmlinux 0xbb2d2584	bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbb4c191f	max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xbb5826b9	xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xbb5d343d	xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb701ed3	inode_set_bytes
+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 0xbbd1488d	set_device_ro
+EXPORT_SYMBOL vmlinux 0xbc0a4714	netdev_rx_csum_fault
+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 0xbc32ddfb	netdev_state_change
+EXPORT_SYMBOL vmlinux 0xbc3a970d	mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xbc549d2e	clk_get_rate
+EXPORT_SYMBOL vmlinux 0xbc5f0061	dst_destroy
+EXPORT_SYMBOL vmlinux 0xbc860222	gpmc_read_status
+EXPORT_SYMBOL vmlinux 0xbc89e519	kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xbc8e9264	neigh_lookup
+EXPORT_SYMBOL vmlinux 0xbcb37a77	blk_free_tags
+EXPORT_SYMBOL vmlinux 0xbcb8014d	clk_unregister
+EXPORT_SYMBOL vmlinux 0xbcbfc5e6	security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xbcd37da0	dma_map_sg
+EXPORT_SYMBOL vmlinux 0xbce874ed	sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xbcec322f	__d_drop
+EXPORT_SYMBOL vmlinux 0xbd06a364	scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xbd0a05e8	journal_extend
+EXPORT_SYMBOL vmlinux 0xbd2ccda9	__blk_end_request
+EXPORT_SYMBOL vmlinux 0xbd36599d	mmc_card_awake
+EXPORT_SYMBOL vmlinux 0xbd487d68	sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xbd6813e2	of_device_is_available
+EXPORT_SYMBOL vmlinux 0xbd79a64c	snd_pcm_set_sync
+EXPORT_SYMBOL vmlinux 0xbd7b3920	tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xbd94dd4a	would_dump
+EXPORT_SYMBOL vmlinux 0xbda2377e	blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xbda7d127	rfkill_alloc
+EXPORT_SYMBOL vmlinux 0xbdbe7378	cookie_check_timestamp
+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 0xbe1c7163	dquot_initialize
+EXPORT_SYMBOL vmlinux 0xbe234370	generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xbe2c0274	add_timer
+EXPORT_SYMBOL vmlinux 0xbe57311a	bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xbe63ee40	request_resource
+EXPORT_SYMBOL vmlinux 0xbe6bacec	file_open_root
+EXPORT_SYMBOL vmlinux 0xbe753440	blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0xbe79d467	serio_open
+EXPORT_SYMBOL vmlinux 0xbe81ada0	inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xbeabf223	dev_activate
+EXPORT_SYMBOL vmlinux 0xbec6c00a	register_sound_dsp
+EXPORT_SYMBOL vmlinux 0xbed40170	skb_dst_set_noref
+EXPORT_SYMBOL vmlinux 0xbee90f2f	__kfifo_out_peek_r
+EXPORT_SYMBOL vmlinux 0xbef43296	console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef4b104	splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xbef5ffd2	snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL vmlinux 0xbf1faebe	mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf520987	filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5	schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8ba54a	vprintk
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d	__cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfd190c5	netpoll_send_skb_on_dev
+EXPORT_SYMBOL vmlinux 0xbfdff814	of_get_address
+EXPORT_SYMBOL vmlinux 0xbfee3ad5	loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xc00f1b38	ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xc0254a36	alloc_file
+EXPORT_SYMBOL vmlinux 0xc02cf69b	clkdev_drop
+EXPORT_SYMBOL vmlinux 0xc046f7ea	dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xc0569ddd	sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xc0580937	rb_erase
+EXPORT_SYMBOL vmlinux 0xc05ea9bf	phy_find_first
+EXPORT_SYMBOL vmlinux 0xc068440e	__kfifo_alloc
+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 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 0xc0cf95f9	omap_vrfb_request_ctx
+EXPORT_SYMBOL vmlinux 0xc0d6de4a	lock_may_read
+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 0xc104ebf0	ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xc11d8093	iov_shorten
+EXPORT_SYMBOL vmlinux 0xc11fc375	netdev_crit
+EXPORT_SYMBOL vmlinux 0xc1237860	of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0xc1303bdf	pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xc130b7c0	snd_ctl_remove
+EXPORT_SYMBOL vmlinux 0xc135ab71	vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xc141e0b9	udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xc15586ef	is_container_init
+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 0xc1a7ce86	posix_lock_file
+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 0xc256e762	__bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc26ee2b0	mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xc271a1a5	sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xc295a654	generic_file_fsync
+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 0xc316b98c	jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0xc34ff0bb	clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xc359fb65	abort
+EXPORT_SYMBOL vmlinux 0xc3694b58	mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xc37c36e1	omap_writeb
+EXPORT_SYMBOL vmlinux 0xc37d4097	inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xc39efb1b	generic_read_dir
+EXPORT_SYMBOL vmlinux 0xc39fe675	scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xc3a4da68	km_policy_notify
+EXPORT_SYMBOL vmlinux 0xc3ae36b8	pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xc3c504e5	scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xc3cf1128	in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d40e2b	___pskb_trim
+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 0xc42e08a4	dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xc45ef616	idr_for_each
+EXPORT_SYMBOL vmlinux 0xc46702be	elv_add_request
+EXPORT_SYMBOL vmlinux 0xc4900d23	skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0xc4981a6c	registered_fb
+EXPORT_SYMBOL vmlinux 0xc499ae1e	kstrdup
+EXPORT_SYMBOL vmlinux 0xc4ab1268	inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xc4cac112	of_find_property
+EXPORT_SYMBOL vmlinux 0xc4d0bf01	blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xc4d61629	filemap_flush
+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 0xc52da066	omap_set_dma_dest_params
+EXPORT_SYMBOL vmlinux 0xc52f5714	fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc54bc3c9	dqstats
+EXPORT_SYMBOL vmlinux 0xc550de3e	rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xc57282ae	ns_capable
+EXPORT_SYMBOL vmlinux 0xc5a356b5	commit_creds
+EXPORT_SYMBOL vmlinux 0xc5a37aa8	flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0xc5b4c4c9	console_start
+EXPORT_SYMBOL vmlinux 0xc5f46566	rb_augment_insert
+EXPORT_SYMBOL vmlinux 0xc60cbeb3	sget
+EXPORT_SYMBOL vmlinux 0xc6184045	cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc62fda61	phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xc631580a	console_unlock
+EXPORT_SYMBOL vmlinux 0xc6410a5d	fb_blank
+EXPORT_SYMBOL vmlinux 0xc68f40fc	xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0xc6a78391	jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xc6a9ed62	omap_dsp_get_mempool_base
+EXPORT_SYMBOL vmlinux 0xc6b95344	kill_pid
+EXPORT_SYMBOL vmlinux 0xc6cbbc89	capable
+EXPORT_SYMBOL vmlinux 0xc6dde7fd	mmc_free_host
+EXPORT_SYMBOL vmlinux 0xc7208c3a	serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc74c87bb	blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xc75591b8	jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xc762fcda	cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0xc77f8bd7	console_stop
+EXPORT_SYMBOL vmlinux 0xc781bd9f	rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc791ec06	sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xc7963092	jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xc79bcd36	dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed	rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7b745ac	release_pages
+EXPORT_SYMBOL vmlinux 0xc7bcc226	filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xc7ebe961	vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xc7ec6c27	strspn
+EXPORT_SYMBOL vmlinux 0xc825d838	security_old_inode_init_security
+EXPORT_SYMBOL vmlinux 0xc83c9187	phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xc84a0a7e	seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc864b988	scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xc87804f9	lro_flush_all
+EXPORT_SYMBOL vmlinux 0xc87823bf	twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc8817d30	vfs_mkdir
+EXPORT_SYMBOL vmlinux 0xc88a7252	skb_append
+EXPORT_SYMBOL vmlinux 0xc88c3669	cdrom_open
+EXPORT_SYMBOL vmlinux 0xc8b57c27	autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8f62ac7	dev_load
+EXPORT_SYMBOL vmlinux 0xc9058c03	generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xc9142293	omap_dss_ntsc_timings
+EXPORT_SYMBOL vmlinux 0xc914bacd	genphy_read_status
+EXPORT_SYMBOL vmlinux 0xc927b4a9	snd_card_free_when_closed
+EXPORT_SYMBOL vmlinux 0xc931e772	textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xc94baf38	sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xc9658729	km_report
+EXPORT_SYMBOL vmlinux 0xc9753076	fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xc98dc113	scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xc99092c2	proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc996d097	del_timer
+EXPORT_SYMBOL vmlinux 0xc99e2a55	twl_rev
+EXPORT_SYMBOL vmlinux 0xc9c814a1	unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xc9d9651c	sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xc9e19034	twl6040_irq_init
+EXPORT_SYMBOL vmlinux 0xc9ff0f2a	udp_disconnect
+EXPORT_SYMBOL vmlinux 0xca1368c9	vfs_unlink
+EXPORT_SYMBOL vmlinux 0xca1d1569	jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xca2b76ed	init_buffer
+EXPORT_SYMBOL vmlinux 0xca5dbc50	scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca6d04c0	elevator_change
+EXPORT_SYMBOL vmlinux 0xca8041ee	snd_component_add
+EXPORT_SYMBOL vmlinux 0xcab17e69	xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcadd52af	do_munmap
+EXPORT_SYMBOL vmlinux 0xcb36853b	input_flush_device
+EXPORT_SYMBOL vmlinux 0xcb379a6a	poll_initwait
+EXPORT_SYMBOL vmlinux 0xcb3a892c	dquot_disable
+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 0xcbc74955	xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xcbc835ff	register_sound_mixer
+EXPORT_SYMBOL vmlinux 0xcbc9557f	unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcbddcac6	kern_unmount
+EXPORT_SYMBOL vmlinux 0xcbde5b35	mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0xcbfa808b	insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xcc09f50a	tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0xcc1e03da	unregister_cdrom
+EXPORT_SYMBOL vmlinux 0xcc248d26	serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc3506b3	netlink_set_err
+EXPORT_SYMBOL vmlinux 0xcc36f32e	fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe	msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc7fa952	local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc93e922	__put_cred
+EXPORT_SYMBOL vmlinux 0xcc9a46d1	dquot_drop
+EXPORT_SYMBOL vmlinux 0xccc3dad6	find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0xccdbccfb	fb_get_mode
+EXPORT_SYMBOL vmlinux 0xcce75f51	block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xccff4b6f	blkdev_get_by_dev
+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 0xcd45343e	end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xcd4b732f	bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd5f890b	vfs_symlink
+EXPORT_SYMBOL vmlinux 0xcd63c845	__aeabi_lasr
+EXPORT_SYMBOL vmlinux 0xcd710597	ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xcd9e2c84	neigh_table_init
+EXPORT_SYMBOL vmlinux 0xcda39dc7	nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xcdb6d693	put_page
+EXPORT_SYMBOL vmlinux 0xcdcaa09a	find_lock_page
+EXPORT_SYMBOL vmlinux 0xcdd0f14f	___dma_page_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0xcde172ac	radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0xce0439e5	dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xce19bac5	register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce20a7af	read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xce221a4d	task_ns_capable
+EXPORT_SYMBOL vmlinux 0xce2840e7	irq_set_irq_wake
+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 0xce60048c	wireless_send_event
+EXPORT_SYMBOL vmlinux 0xce7013da	inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xce7ce037	of_translate_address
+EXPORT_SYMBOL vmlinux 0xce808557	skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xce9c5a61	put_io_context
+EXPORT_SYMBOL vmlinux 0xcea899ea	down
+EXPORT_SYMBOL vmlinux 0xcebe8a90	insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xcebec1b0	blkdev_fsync
+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 0xcf1e4749	arp_create
+EXPORT_SYMBOL vmlinux 0xcf3fba9e	snd_info_register
+EXPORT_SYMBOL vmlinux 0xcf41977c	proto_register
+EXPORT_SYMBOL vmlinux 0xcf44d596	file_update_time
+EXPORT_SYMBOL vmlinux 0xcf47416f	dev_deactivate
+EXPORT_SYMBOL vmlinux 0xcf872789	bdi_register
+EXPORT_SYMBOL vmlinux 0xcf94a68a	backlight_force_update
+EXPORT_SYMBOL vmlinux 0xcf958642	snd_ctl_replace
+EXPORT_SYMBOL vmlinux 0xcf9fb3ac	jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xcfa135e7	ether_setup
+EXPORT_SYMBOL vmlinux 0xcfb9006e	jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfe09358	ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xcfeb0be9	rb_augment_erase_begin
+EXPORT_SYMBOL vmlinux 0xcff2cba2	file_sb_list_del
+EXPORT_SYMBOL vmlinux 0xd0036f6b	netdev_set_bond_master
+EXPORT_SYMBOL vmlinux 0xd00831cc	tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xd0181f4f	__bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd01dc2ce	snd_pcm_hw_constraint_list
+EXPORT_SYMBOL vmlinux 0xd031325d	tcf_hash_create
+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 0xd08f960a	qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0xd0a91bab	skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b27013	iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0xd0b9b8b8	snd_interval_list
+EXPORT_SYMBOL vmlinux 0xd0d42c42	mod_timer_pending
+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 0xd1e4159b	unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xd204a52e	flush_signals
+EXPORT_SYMBOL vmlinux 0xd209c919	force_sig
+EXPORT_SYMBOL vmlinux 0xd2149927	skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xd22194f5	snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL vmlinux 0xd24cb817	nf_reinject
+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 0xd2965f6f	kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2d51180	of_gpio_count
+EXPORT_SYMBOL vmlinux 0xd2d573bb	cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xd31bc7d3	__xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xd31ccb06	of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd3276386	snd_timer_interrupt
+EXPORT_SYMBOL vmlinux 0xd3434c3f	kref_sub
+EXPORT_SYMBOL vmlinux 0xd34838a7	skb_pad
+EXPORT_SYMBOL vmlinux 0xd3615142	sock_create_lite
+EXPORT_SYMBOL vmlinux 0xd36402e9	mmc_request_done
+EXPORT_SYMBOL vmlinux 0xd37b72c8	udp_ioctl
+EXPORT_SYMBOL vmlinux 0xd38480a0	rb_augment_erase_end
+EXPORT_SYMBOL vmlinux 0xd38e7016	vfs_readlink
+EXPORT_SYMBOL vmlinux 0xd3a8faf8	dev_addr_flush
+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 0xd3fd4798	inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xd40d7ecf	tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xd40ea1bb	follow_down_one
+EXPORT_SYMBOL vmlinux 0xd418e1c0	adjust_resource
+EXPORT_SYMBOL vmlinux 0xd41a78b8	d_alloc
+EXPORT_SYMBOL vmlinux 0xd42491f8	scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xd43b7270	tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0xd463c980	skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xd4ba260e	rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xd4ddd013	sk_prot_clear_portaddr_nulls
+EXPORT_SYMBOL vmlinux 0xd4e6b504	cleancache_register_ops
+EXPORT_SYMBOL vmlinux 0xd4f5d1d8	journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xd50ac2b8	netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xd5152710	sg_next
+EXPORT_SYMBOL vmlinux 0xd523b426	vfs_readv
+EXPORT_SYMBOL vmlinux 0xd5254fb1	jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xd544ed61	tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xd549d2f5	skb_push
+EXPORT_SYMBOL vmlinux 0xd56929ac	netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xd56e9485	omap_set_dma_dest_index
+EXPORT_SYMBOL vmlinux 0xd58e405f	nf_log_packet
+EXPORT_SYMBOL vmlinux 0xd59099d6	xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xd595d82a	zero_fill_bio
+EXPORT_SYMBOL vmlinux 0xd5b037e1	kref_put
+EXPORT_SYMBOL vmlinux 0xd5b1376d	register_shrinker
+EXPORT_SYMBOL vmlinux 0xd5d1e23f	bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0xd5da7f1a	replace_mount_options
+EXPORT_SYMBOL vmlinux 0xd5ebd11a	kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xd5ee2bc0	vfs_getattr
+EXPORT_SYMBOL vmlinux 0xd60dbab1	neigh_destroy
+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 0xd6387ac5	jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xd66aa3e7	make_EII_client
+EXPORT_SYMBOL vmlinux 0xd66e47e8	dcache_readdir
+EXPORT_SYMBOL vmlinux 0xd678ca44	of_parse_phandle
+EXPORT_SYMBOL vmlinux 0xd681dd36	elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xd6b15451	blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xd6b5e60a	snd_pcm_lib_readv
+EXPORT_SYMBOL vmlinux 0xd6d33ae7	__devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xd6e871cb	__qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xd6eba74b	__nla_put
+EXPORT_SYMBOL vmlinux 0xd6ee688f	vmalloc
+EXPORT_SYMBOL vmlinux 0xd6ff8819	napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xd70707f0	get_fs_type
+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 0xd75efdea	jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xd770e924	end_page_writeback
+EXPORT_SYMBOL vmlinux 0xd77a5aa5	__bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b0a18	generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xd790ef87	rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xd79b5a02	allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a6e3ee	mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xd7ad5c45	snd_timer_global_new
+EXPORT_SYMBOL vmlinux 0xd7bc3173	sock_no_getname
+EXPORT_SYMBOL vmlinux 0xd7d18c7a	__devm_release_region
+EXPORT_SYMBOL vmlinux 0xd7e56a4e	simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f77c50	md_error
+EXPORT_SYMBOL vmlinux 0xd81a9e45	nobh_write_begin
+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 0xd823757e	kill_block_super
+EXPORT_SYMBOL vmlinux 0xd846d468	pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xd84ce17d	inet_accept
+EXPORT_SYMBOL vmlinux 0xd8551649	xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xd8752af0	snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0xd88d48e6	cont_write_begin
+EXPORT_SYMBOL vmlinux 0xd8983177	xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0xd8a2ab95	in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8a5dc56	ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xd8c397e3	mb_cache_create
+EXPORT_SYMBOL vmlinux 0xd8ce7e67	clocksource_register
+EXPORT_SYMBOL vmlinux 0xd8dd4eb9	blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xd8e484f0	register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8f040f1	neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xd8f9c3ae	blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xd9210141	unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xd9247482	omap_dss_register_driver
+EXPORT_SYMBOL vmlinux 0xd92afabe	bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd9438e99	bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xd94c4acc	vfs_readdir
+EXPORT_SYMBOL vmlinux 0xd955d2b7	omap_set_dma_dest_data_pack
+EXPORT_SYMBOL vmlinux 0xd9722941	lock_rename
+EXPORT_SYMBOL vmlinux 0xd985dc99	mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9aa27a2	mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9b939a7	bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xd9c3b770	ip_options_rcv_srr
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c	strnlen
+EXPORT_SYMBOL vmlinux 0xd9f85613	dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xda0b55e5	uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0xda13d63d	xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0xda14d743	journal_create
+EXPORT_SYMBOL vmlinux 0xda1e6287	filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xda2f61d0	mmc_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xda37ff89	unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xda3cf2c4	proc_dointvec
+EXPORT_SYMBOL vmlinux 0xda3f46fe	mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xda43156d	tty_port_init
+EXPORT_SYMBOL vmlinux 0xda47d552	shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xda47ec7f	sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xda4cde28	__dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xda545e28	arp_invalidate
+EXPORT_SYMBOL vmlinux 0xda5714c2	d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xda7ca6cb	fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad	fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa5a3dd	icmpv6_send
+EXPORT_SYMBOL vmlinux 0xdb1c3355	sock_no_connect
+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 0xdb505537	dev_mc_init
+EXPORT_SYMBOL vmlinux 0xdb68bbad	rfkill_destroy
+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 0xdbab3a94	dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xdbc8c5f5	sk_stream_error
+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 0xdbdc3b90	scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xdbf96e6a	bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0xdc047fc4	scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc2519e0	param_set_ulong
+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 0xdc6125fa	end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0xdc769f6f	tcp_close
+EXPORT_SYMBOL vmlinux 0xdc798d37	__mutex_init
+EXPORT_SYMBOL vmlinux 0xdc8544ce	remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xdc9011d9	dma_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xdca3c07e	blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xdca4357d	generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xdca7a472	unregister_key_type
+EXPORT_SYMBOL vmlinux 0xdcb0349b	sys_close
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2	strlcat
+EXPORT_SYMBOL vmlinux 0xdd0f4926	scsi_free_command
+EXPORT_SYMBOL vmlinux 0xdd1981e1	__mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0xdd1c65f6	blk_finish_plug
+EXPORT_SYMBOL vmlinux 0xdd27fa87	memchr
+EXPORT_SYMBOL vmlinux 0xdd3af0ef	__vlan_find_dev_deep
+EXPORT_SYMBOL vmlinux 0xdd4f946e	xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xdd81df8b	devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xdd91335f	dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0xddc0b129	cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xddc5903a	snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL vmlinux 0xdddc6abb	dev_get_flags
+EXPORT_SYMBOL vmlinux 0xdddf3c5b	bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xdded7153	dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xddef38db	tc_classify
+EXPORT_SYMBOL vmlinux 0xde0ef54c	nonseekable_open
+EXPORT_SYMBOL vmlinux 0xde15c042	omap_set_dma_src_index
+EXPORT_SYMBOL vmlinux 0xde2d409e	d_alloc_root
+EXPORT_SYMBOL vmlinux 0xde3555dc	vsc824x_add_skew
+EXPORT_SYMBOL vmlinux 0xde3c68a6	cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde692d94	omap_get_dma_chain_src_pos
+EXPORT_SYMBOL vmlinux 0xde8c763d	cpu_v7_set_pte_ext
+EXPORT_SYMBOL vmlinux 0xde9360ba	totalram_pages
+EXPORT_SYMBOL vmlinux 0xdeacca19	journal_load
+EXPORT_SYMBOL vmlinux 0xdf03d979	ppp_output_wakeup
+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 0xdf6dcc7f	pid_task
+EXPORT_SYMBOL vmlinux 0xdf929370	fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfa010ae	generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xdfa6466a	ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xdfb01a80	cpu_v7_dcache_clean_area
+EXPORT_SYMBOL vmlinux 0xdfc5169b	slhc_init
+EXPORT_SYMBOL vmlinux 0xdfd91ce9	omap_type
+EXPORT_SYMBOL vmlinux 0xdff15d4f	tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xe0211e89	__breadahead
+EXPORT_SYMBOL vmlinux 0xe0363348	snd_card_set_id
+EXPORT_SYMBOL vmlinux 0xe03e1cdd	d_alloc_pseudo
+EXPORT_SYMBOL vmlinux 0xe03f90f8	nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xe0489d2b	blk_insert_request
+EXPORT_SYMBOL vmlinux 0xe04f7caa	dm_read_arg_group
+EXPORT_SYMBOL vmlinux 0xe051ed75	tty_vhangup
+EXPORT_SYMBOL vmlinux 0xe06141e9	security_sk_clone
+EXPORT_SYMBOL vmlinux 0xe06f6e5a	fd_install
+EXPORT_SYMBOL vmlinux 0xe0732706	snd_timer_pause
+EXPORT_SYMBOL vmlinux 0xe075d6eb	iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0a4958c	ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xe0b13336	argv_free
+EXPORT_SYMBOL vmlinux 0xe0de8105	bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xe0fc24aa	param_set_int
+EXPORT_SYMBOL vmlinux 0xe1039976	default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xe106154f	omap_vram_get_info
+EXPORT_SYMBOL vmlinux 0xe113bbbc	csum_partial
+EXPORT_SYMBOL vmlinux 0xe12764e5	try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xe161d33e	skb_copy
+EXPORT_SYMBOL vmlinux 0xe16b893b	mutex_lock
+EXPORT_SYMBOL vmlinux 0xe1761617	security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1da950b	do_splice_from
+EXPORT_SYMBOL vmlinux 0xe1df60c6	dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xe1e59d63	skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xe200f872	secure_dccpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0xe21b07ec	scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xe2253201	register_framebuffer
+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 0xe2dd68e1	journal_clear_err
+EXPORT_SYMBOL vmlinux 0xe2e8065e	memdup_user
+EXPORT_SYMBOL vmlinux 0xe2fae716	kmemdup
+EXPORT_SYMBOL vmlinux 0xe31b23df	unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xe334f71b	simple_lookup
+EXPORT_SYMBOL vmlinux 0xe33bfb5d	ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xe36e6263	phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0xe373830a	of_mdiobus_register
+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 0xe3df343e	open_exec
+EXPORT_SYMBOL vmlinux 0xe4033142	dquot_acquire
+EXPORT_SYMBOL vmlinux 0xe4246cfe	filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xe477ec1f	jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xe4903890	bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xe49161c0	skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xe49775f9	flush_delayed_work
+EXPORT_SYMBOL vmlinux 0xe4c80097	cacheid
+EXPORT_SYMBOL vmlinux 0xe501acec	blk_integrity_merge_rq
+EXPORT_SYMBOL vmlinux 0xe5122890	flow_cache_genid
+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 0xe545c01f	set_bh_page
+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 0xe586392a	km_policy_expired
+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 0xe5e1c300	input_set_abs_params
+EXPORT_SYMBOL vmlinux 0xe5ea46f8	xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xe5ed5467	xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe6204b58	tcp_syn_flood_action
+EXPORT_SYMBOL vmlinux 0xe661ef49	init_task
+EXPORT_SYMBOL vmlinux 0xe6744a89	omap_clear_dma
+EXPORT_SYMBOL vmlinux 0xe67ba5a8	locks_init_lock
+EXPORT_SYMBOL vmlinux 0xe697d108	__blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe69e6511	of_platform_device_create
+EXPORT_SYMBOL vmlinux 0xe6aaf59d	ip_options_compile
+EXPORT_SYMBOL vmlinux 0xe6c3ebb0	__raw_writesw
+EXPORT_SYMBOL vmlinux 0xe6ebc016	key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430	can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe707d823	__aeabi_uidiv
+EXPORT_SYMBOL vmlinux 0xe70fe706	__bread
+EXPORT_SYMBOL vmlinux 0xe73d0fde	sleep_on
+EXPORT_SYMBOL vmlinux 0xe75a1165	netdev_info
+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 0xe7d9857a	__scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xe80ce219	sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe85fdfde	eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xe8690ff1	wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xe86d62d1	sk_alloc
+EXPORT_SYMBOL vmlinux 0xe8794ce1	slhc_toss
+EXPORT_SYMBOL vmlinux 0xe87ed1ce	idr_replace
+EXPORT_SYMBOL vmlinux 0xe88953a1	scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xe8b63ace	radix_tree_range_tag_if_tagged
+EXPORT_SYMBOL vmlinux 0xe8bc04f3	amba_driver_unregister
+EXPORT_SYMBOL vmlinux 0xe8e1abbb	security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xe8ebf346	ab8500_gpadc_ad_to_voltage
+EXPORT_SYMBOL vmlinux 0xe8fa231c	blk_make_request
+EXPORT_SYMBOL vmlinux 0xe9101952	fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xe914e41e	strcpy
+EXPORT_SYMBOL vmlinux 0xe91ab4e4	blk_run_queue_async
+EXPORT_SYMBOL vmlinux 0xe93c3ef7	dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xe94c80cd	scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xe953b21f	get_next_ino
+EXPORT_SYMBOL vmlinux 0xe98af587	inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xe9a3af0d	journal_wipe
+EXPORT_SYMBOL vmlinux 0xe9ac88cd	sched_autogroup_detach
+EXPORT_SYMBOL vmlinux 0xe9ae20b9	ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0xe9ce8b95	omap_ioremap
+EXPORT_SYMBOL vmlinux 0xe9d12dbe	vmtruncate
+EXPORT_SYMBOL vmlinux 0xe9e4e163	simple_transaction_get
+EXPORT_SYMBOL vmlinux 0xe9ea040a	blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xe9f465ac	register_filesystem
+EXPORT_SYMBOL vmlinux 0xe9f92793	dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xea054b22	nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a	int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a	__bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea38133a	sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xea5eb20b	ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0xea6ad980	__scm_send
+EXPORT_SYMBOL vmlinux 0xea770497	alloc_netdev_mqs
+EXPORT_SYMBOL vmlinux 0xea7987f1	key_update
+EXPORT_SYMBOL vmlinux 0xea871d78	page_symlink_inode_operations
+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 0xeaa53ee0	kernel_connect
+EXPORT_SYMBOL vmlinux 0xeaaba702	xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xeab2f129	journal_restart
+EXPORT_SYMBOL vmlinux 0xeac8939f	init_special_inode
+EXPORT_SYMBOL vmlinux 0xead756ef	flush_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0xeada635b	generic_readlink
+EXPORT_SYMBOL vmlinux 0xeadcf9bb	of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xeae3dfd6	__const_udelay
+EXPORT_SYMBOL vmlinux 0xeae55ccd	save_mount_options
+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 0xeb248200	mntget
+EXPORT_SYMBOL vmlinux 0xeb37101c	audit_log_end
+EXPORT_SYMBOL vmlinux 0xeba5fb02	inet6_register_protosw
+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 0xec15f00a	tcp_cookie_generator
+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 0xec73f7a5	mnt_set_expiry
+EXPORT_SYMBOL vmlinux 0xeca1f0cc	inet_shutdown
+EXPORT_SYMBOL vmlinux 0xece87e8d	nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xecff7c45	snd_card_proc_new
+EXPORT_SYMBOL vmlinux 0xed21ab6d	dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xed302f0f	tty_lock
+EXPORT_SYMBOL vmlinux 0xed3204f5	tty_port_put
+EXPORT_SYMBOL vmlinux 0xed4a0c89	vc_cons
+EXPORT_SYMBOL vmlinux 0xed854dac	omap_stop_dma_chain_transfers
+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 0xedf2304d	pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xee09369b	do_splice_to
+EXPORT_SYMBOL vmlinux 0xee108f30	__kfifo_dma_in_prepare_r
+EXPORT_SYMBOL vmlinux 0xee2d0fc7	_local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3496c3	dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xee79b5f6	input_unregister_device
+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 0xeeafdd87	blk_delay_queue
+EXPORT_SYMBOL vmlinux 0xef00cfa1	dst_release
+EXPORT_SYMBOL vmlinux 0xef19f533	__secpath_destroy
+EXPORT_SYMBOL vmlinux 0xef4c3ae1	secpath_dup
+EXPORT_SYMBOL vmlinux 0xef65d1f4	journal_force_commit
+EXPORT_SYMBOL vmlinux 0xefac6e01	__ethtool_get_settings
+EXPORT_SYMBOL vmlinux 0xefb4f47d	d_splice_alias
+EXPORT_SYMBOL vmlinux 0xefb66a95	omap_request_dma_chain
+EXPORT_SYMBOL vmlinux 0xefbf1405	generic_file_llseek_size
+EXPORT_SYMBOL vmlinux 0xefc21008	cdev_alloc
+EXPORT_SYMBOL vmlinux 0xefd2c1cf	__module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xefd6cf06	__aeabi_unwind_cpp_pr0
+EXPORT_SYMBOL vmlinux 0xefdd2345	sg_init_one
+EXPORT_SYMBOL vmlinux 0xefdd70ce	security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefdfe24a	free_netdev
+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 0xf005158a	block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xf01f311d	scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xf027379e	journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xf0280e90	tty_name
+EXPORT_SYMBOL vmlinux 0xf0414677	blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xf0543346	fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xf06abe25	dquot_resume
+EXPORT_SYMBOL vmlinux 0xf06e74bd	phy_detach
+EXPORT_SYMBOL vmlinux 0xf07b4857	nla_append
+EXPORT_SYMBOL vmlinux 0xf09096e4	kmem_cache_free
+EXPORT_SYMBOL vmlinux 0xf09b45fb	seq_puts
+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 0xf1216c75	prandom32
+EXPORT_SYMBOL vmlinux 0xf14e19cb	netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xf15c0c4c	i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0xf195c682	fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1a3c919	omap_mcbsp_set_tx_threshold
+EXPORT_SYMBOL vmlinux 0xf1cf3036	blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0xf1d05c17	input_set_keycode
+EXPORT_SYMBOL vmlinux 0xf1d68e3b	blk_put_queue
+EXPORT_SYMBOL vmlinux 0xf1db1704	nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2	div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e4936d	fput
+EXPORT_SYMBOL vmlinux 0xf1e98c74	avenrun
+EXPORT_SYMBOL vmlinux 0xf202c5cb	radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xf20774ee	xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xf20dabd8	free_irq
+EXPORT_SYMBOL vmlinux 0xf23fcb99	__kfifo_in
+EXPORT_SYMBOL vmlinux 0xf247ccc7	account_page_writeback
+EXPORT_SYMBOL vmlinux 0xf26df746	omap_vram_free
+EXPORT_SYMBOL vmlinux 0xf272c23e	__bio_clone
+EXPORT_SYMBOL vmlinux 0xf273fc3d	cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0xf27a2286	sock_create
+EXPORT_SYMBOL vmlinux 0xf28e1e3e	omap_st_disable
+EXPORT_SYMBOL vmlinux 0xf2997713	tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2a7e9f3	__pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xf2ad903f	mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xf2c67c46	mount_subtree
+EXPORT_SYMBOL vmlinux 0xf2d396b8	cpu_user
+EXPORT_SYMBOL vmlinux 0xf2e5a880	tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf2faa995	__dst_destroy_metrics_generic
+EXPORT_SYMBOL vmlinux 0xf2fbbe64	netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xf313da4e	sha_transform
+EXPORT_SYMBOL vmlinux 0xf321b766	mmc_hw_reset_check
+EXPORT_SYMBOL vmlinux 0xf3341268	__clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3	netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f	seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3797152	snd_interval_ratnum
+EXPORT_SYMBOL vmlinux 0xf37f8f64	scsi_verify_blk_ioctl
+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 0xf39d7d70	nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xf3bf0bce	__bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c9813f	single_open
+EXPORT_SYMBOL vmlinux 0xf4462263	tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xf456c28c	tcp_check_req
+EXPORT_SYMBOL vmlinux 0xf46c0c9b	tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xf47fe288	dquot_operations
+EXPORT_SYMBOL vmlinux 0xf4860c00	mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xf48ee69f	bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xf4937854	input_mt_report_slot_state
+EXPORT_SYMBOL vmlinux 0xf494f618	mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4cf568d	generic_show_options
+EXPORT_SYMBOL vmlinux 0xf4f14de6	rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf5091536	bio_alloc
+EXPORT_SYMBOL vmlinux 0xf53d4c26	qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5417c5c	generic_file_direct_write
+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 0xf57b9d60	__netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xf57c89af	get_phy_id
+EXPORT_SYMBOL vmlinux 0xf586bf59	tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xf5c05914	generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e	timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cf326a	param_ops_short
+EXPORT_SYMBOL vmlinux 0xf5dd8063	nf_register_hook
+EXPORT_SYMBOL vmlinux 0xf5e53748	mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0xf5eb86ea	blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5ffec03	dentry_open
+EXPORT_SYMBOL vmlinux 0xf600ac26	snd_timer_global_free
+EXPORT_SYMBOL vmlinux 0xf612809a	param_get_int
+EXPORT_SYMBOL vmlinux 0xf6288e02	__init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf6315b36	ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xf6388c56	sysctl_ip_default_ttl
+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 0xf6c520cc	pipe_to_file
+EXPORT_SYMBOL vmlinux 0xf6c66a22	xfrm4_prepare_output
+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 0xf6ebc03b	net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f3cef6	omap_vrfb_setup
+EXPORT_SYMBOL vmlinux 0xf6f63029	bprm_change_interp
+EXPORT_SYMBOL vmlinux 0xf7025efb	dentry_unhash
+EXPORT_SYMBOL vmlinux 0xf7065487	pm860x_page_reg_write
+EXPORT_SYMBOL vmlinux 0xf70faa59	phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xf7488deb	sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xf7584a9c	find_font
+EXPORT_SYMBOL vmlinux 0xf7802486	__aeabi_uidivmod
+EXPORT_SYMBOL vmlinux 0xf78d04ab	netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7975561	unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xf7abe087	md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xf7c61815	get_omap3_evm_rev
+EXPORT_SYMBOL vmlinux 0xf7d4ea9e	__nla_reserve
+EXPORT_SYMBOL vmlinux 0xf7deec1a	journal_revoke
+EXPORT_SYMBOL vmlinux 0xf7df5662	sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xf7e7778d	request_key
+EXPORT_SYMBOL vmlinux 0xf803fe39	bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d	scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81febd0	xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xf853bbca	omap_vrfb_map_angle
+EXPORT_SYMBOL vmlinux 0xf869899f	alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xf877f99a	pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xf88c3301	sg_init_table
+EXPORT_SYMBOL vmlinux 0xf890fe7f	pm_idle
+EXPORT_SYMBOL vmlinux 0xf8cc4f0f	__xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xf8ce0b68	override_creds
+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 0xf9343cd7	__nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xf9347c0d	locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xf9348cbc	xz_dec_run
+EXPORT_SYMBOL vmlinux 0xf94d0323	vfs_read
+EXPORT_SYMBOL vmlinux 0xf9551120	skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xf98558e1	of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0xf995ae28	have_submounts
+EXPORT_SYMBOL vmlinux 0xf9a482f9	msleep
+EXPORT_SYMBOL vmlinux 0xf9b58d17	vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xf9c51843	journal_init_dev
+EXPORT_SYMBOL vmlinux 0xf9e73082	scnprintf
+EXPORT_SYMBOL vmlinux 0xf9eefe39	elevator_init
+EXPORT_SYMBOL vmlinux 0xfa082128	down_interruptible
+EXPORT_SYMBOL vmlinux 0xfa115f38	sock_no_poll
+EXPORT_SYMBOL vmlinux 0xfa16b65c	writeback_in_progress
+EXPORT_SYMBOL vmlinux 0xfa43a7b9	end_writeback
+EXPORT_SYMBOL vmlinux 0xfa6357f3	balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xfa69e0ce	scsi_init_io
+EXPORT_SYMBOL vmlinux 0xfa6a7e47	omap_dss_start_device
+EXPORT_SYMBOL vmlinux 0xfa9ac89f	elv_rb_del
+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 0xfadd9b16	iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xfaf98462	bitrev32
+EXPORT_SYMBOL vmlinux 0xfb22bc00	__invalidate_device
+EXPORT_SYMBOL vmlinux 0xfb3e6c4d	simple_map_init
+EXPORT_SYMBOL vmlinux 0xfb55df70	xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xfb5bdb9d	key_link
+EXPORT_SYMBOL vmlinux 0xfb6af58d	recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb77c875	tc6393xb_lcd_mode
+EXPORT_SYMBOL vmlinux 0xfb7d26f4	files_lglock_lock_init
+EXPORT_SYMBOL vmlinux 0xfb7d9c45	__udivsi3
+EXPORT_SYMBOL vmlinux 0xfb8c48a2	tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xfba2c68d	generic_pipe_buf_map
+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 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 0xfc9cbe1d	__tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xfcaa04a0	out_of_line_wait_on_bit_lock
+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 0xfd12e2ab	ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xfd16a6ab	neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xfd305341	walk_stackframe
+EXPORT_SYMBOL vmlinux 0xfd320ce9	xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xfd4c09b8	tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xfd4c182b	twl6040_reg_read
+EXPORT_SYMBOL vmlinux 0xfd54cd5d	journal_errno
+EXPORT_SYMBOL vmlinux 0xfd6293c2	boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xfd6b3d0c	posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xfd7d52e5	ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xfda0dbe8	ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda33dd9	jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xfdab6de3	unregister_sound_midi
+EXPORT_SYMBOL vmlinux 0xfdb73504	udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b	fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe0b90ab	__sock_create
+EXPORT_SYMBOL vmlinux 0xfe15048f	tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xfe1e9444	mmc_add_host
+EXPORT_SYMBOL vmlinux 0xfe1f7648	mmc_flush_cache
+EXPORT_SYMBOL vmlinux 0xfe2b665e	mii_link_ok
+EXPORT_SYMBOL vmlinux 0xfe300309	snd_timer_resolution
+EXPORT_SYMBOL vmlinux 0xfe526154	kthread_stop
+EXPORT_SYMBOL vmlinux 0xfe5b30df	security_path_chmod
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2	sys_tz
+EXPORT_SYMBOL vmlinux 0xfe634f58	add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe769456	unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe9f1e15	phy_driver_register
+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 0xfedd35fc	console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfedddb5a	send_sig
+EXPORT_SYMBOL vmlinux 0xfef8dfd8	posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xfef96e23	__scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff0c4aa9	inet6_ioctl
+EXPORT_SYMBOL vmlinux 0xff0d65a7	lease_get_mtime
+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 0xff2c4adb	generic_listxattr
+EXPORT_SYMBOL vmlinux 0xff4bafb0	security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xff6084e2	clk_register
+EXPORT_SYMBOL vmlinux 0xff67b37f	__lshrdi3
+EXPORT_SYMBOL vmlinux 0xff6878cf	fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff77327a	mount_pseudo
+EXPORT_SYMBOL vmlinux 0xff7f281c	mdiobus_write
+EXPORT_SYMBOL vmlinux 0xff9ca065	fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa70aa9	tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xffb8d3bc	phy_register_fixup
+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 0xfffcb187	journal_destroy
+EXPORT_SYMBOL_GPL crypto/af_alg 0x0bade9fb	af_alg_release
+EXPORT_SYMBOL_GPL crypto/af_alg 0x417feddc	af_alg_unregister_type
+EXPORT_SYMBOL_GPL crypto/af_alg 0x6ac7d06d	af_alg_accept
+EXPORT_SYMBOL_GPL crypto/af_alg 0x742f954f	af_alg_make_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0x82bf32b1	af_alg_free_sg
+EXPORT_SYMBOL_GPL crypto/af_alg 0xca08a73c	af_alg_complete
+EXPORT_SYMBOL_GPL crypto/af_alg 0xdf623e43	af_alg_wait_for_completion
+EXPORT_SYMBOL_GPL crypto/af_alg 0xe1896e70	af_alg_register_type
+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 0x0efaa9b3	cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x34564122	cryptd_aead_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6b1d03a2	cryptd_free_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6f386f07	cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x8b8dc872	cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xa2481042	cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb3eda76b	cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb93cddf2	cryptd_alloc_aead
+EXPORT_SYMBOL_GPL crypto/cryptd 0xc484483a	cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf4736e4d	cryptd_ahash_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 0x2819e1ec	btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4790a8fa	btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x850fa0d2	btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa7335acc	btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb5a1a71c	btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc0148ebc	btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcb2de43f	btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda812cd1	btmrvl_enable_ps
+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 0x041ccf20	gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x04a09596	gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2fcba436	gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x384b4a5b	gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3c441858	gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f	gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4bad9225	gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x61485b6c	gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6f8d3fd7	gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7b571735	gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df	gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb84e64d4	gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd4904c6b	gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd906882d	gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd961ed6f	gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb7d3eba	gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde1a6070	gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe4bec260	gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf6aaa67a	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 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 0x2b13183a	dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38e22dd0	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 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 0x808dc87b	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 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 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 0x6914d610	mxl111sf_demod_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/dvb-usb/mxl111sf-tuner 0x1a0e6eb5	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 0x5e7cb021	st_register
+EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfdc926f6	st_unregister
+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 0x2f337824	unregister_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5fc90558	free_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x956e85f1	alloc_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xffb165a2	register_c_can_dev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x005d8efd	can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x244c5007	unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x37874740	alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x41044afa	close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x42e60397	alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5023954c	can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x52d82548	free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6d65307e	can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8180a634	open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8912608d	register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa026fd71	can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xde535e5f	alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2	sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x72b970b8	free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x99e87376	register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa3b47b0d	unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa4d706a2	alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3792e6b6	macvlan_common_setup
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x69d8471d	macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7cc0c50e	macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xabdbe023	macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd3e608bb	macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvtap 0xf62abf8e	macvtap_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x105a3718	usbnet_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x65512f36	usbnet_cdc_status
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9fcc451f	usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbbfafa08	usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5de5d60c	rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7d52aaab	rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc5a7437f	rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe7c5963f	generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xecd1e6c4	rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xef4347c1	rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01ac23a4	usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0e795e37	usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x194fad0e	usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19c463c2	usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x207b3777	usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x211a0e25	usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x219a73d8	usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29f9d401	usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x30aa83ea	usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36ea1404	usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38c90915	usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x46c48211	usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x494f466d	usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52356102	usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7237ae19	usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77d292b2	usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95ee765f	usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa64f0f7b	usbnet_tx_timeout
+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 0xc5249af8	usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5562033	usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5574336	usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xec6ba672	usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1bebbbb3	lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x258ea0d7	__lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x270de6f5	lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ea5d835	lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x56cab877	lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8	lbs_disablemesh
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x66ca710c	lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73e125ae	lbs_get_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x93907831	lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaa3868d1	lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc88f6acd	lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xda394a75	lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xec6d85ea	lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed51d654	lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xee0c6cf4	lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf1b93044	lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de	lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x026cbc9b	__lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4bb91e13	lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4fe9b372	lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x601a8c13	lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x788ff75c	lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb2d30d1e	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 0xcfcb90f8	lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe77c8d7d	lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa74c607c	if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xbdae6d25	if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0277e9d2	mwifiex_process_sleep_confirm_resp
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0995f6e3	mwifiex_disable_auto_ds
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4ffb39c4	mwifiex_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6391f8fd	mwifiex_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6c7a78c2	mwifiex_deauthenticate
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9bcd9594	mwifiex_cancel_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaca75830	mwifiex_add_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaf3b2a0d	mwifiex_handle_rx_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb275be40	mwifiex_enable_hs
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbf7042c7	mwifiex_del_virtual_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xff380d21	mwifiex_init_shutdown_fw
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1e9613e8	p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3a6f8387	p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4dfc0f76	p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x55719cd1	p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x71c2cd67	p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76cb8b11	p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x937f1a5f	p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa71143f7	p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf0e0f0f3	p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0489a422	rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0d2e83cc	rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0fbb060b	rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x14ef4407	rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c6b18f7	rt2800_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x21e44627	rt2800_clear_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40c2a17d	rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4bcedf4a	rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb867f8	rt2800_wait_csr_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50f35181	rt2800_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x516f1e8a	rt2800_rt2x00debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x659f5ede	rt2800_check_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x68ae2cdd	rt2800_write_beacon
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d6f9a6b	rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80cc9b04	rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x868d2ae9	rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8840ebe9	rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90d0dd24	rt2800_get_tkip_seq
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x947798fe	rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96749d84	rt2800_get_tsf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x989cb3b6	rt2800_get_survey
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa172ebcd	rt2800_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa39b67c3	rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa53eb1f	rt2800_ampdu_action
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaba4200e	rt2800_gain_calibration
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc097bcc	rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcdc87d20	rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd438ce81	rt2800_set_rts_threshold
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdaca4fc1	rt2800_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdfd4ed40	rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1bc17b3	rt2800_txdone_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe34f637e	rt2800_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe883a906	rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb8dc739	rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfab501a6	rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb792d45	rt2800_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfba91b96	rt2800_enable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe06c3df	rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08683358	rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0bb81ec1	rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ec25c04	rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x106056fe	rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x247f1190	rt2x00lib_dmastart
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x263fe524	rt2x00queue_start_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2df9f23f	rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f57b4e2	rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35657f68	rt2x00queue_stop_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36319be5	rt2x00queue_start_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c3bbc0d	rt2x00debug_dump_frame
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x41225ad3	rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46c8d170	rt2x00lib_pretbtt
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x492568c0	rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4948ccc4	rt2x00queue_stop_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4950ef8d	rt2x00queue_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53ffe1ba	rt2x00mac_get_ringparam
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x612a7236	rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d85e605	rt2x00queue_flush_queues
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x722cc476	rt2x00mac_sta_add
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x74ed01a0	rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83bef6aa	rt2x00lib_get_bssidx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e7e0b78	rt2x00mac_set_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9389759e	rt2x00lib_dmadone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x962e36b1	rt2x00mac_sw_scan_complete
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d0daec3	rt2x00queue_pause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa21e758f	rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa31cd439	rt2x00lib_txdone_noinfo
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5c70faf	rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa71585ff	rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb15e4524	rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb18fadb9	rt2x00queue_for_each_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb5c5c360	rt2x00queue_unmap_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba9c7cda	rt2x00mac_get_antenna
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbea36b40	rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc836e4ad	rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe57b5694	rt2x00mac_tx_frames_pending
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea7d3429	rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xebc7fef1	rt2x00queue_unpause_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee80b8ac	rt2x00mac_sw_scan_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xef0fe2d9	rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefe0dba9	rt2x00mac_flush
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf199deaa	rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf43d3a64	rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf68ccd1a	rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf7b557d3	rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9296091	rt2x00mac_sta_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x03bd14a2	rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cfd5966	rt2x00usb_watchdog
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x374eaa73	rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42b91b28	rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7ac25388	rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a92befa	rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x958ca51f	rt2x00usb_kick_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x99ad07ce	rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a078708	rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba364b23	rt2x00usb_flush_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbb40c5cd	rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca946c9c	rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd53d41d0	rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6556700	rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfde941d0	rt2x00usb_register_read_async
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffea84fe	rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xd219ace9	wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf18d597c	wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl1251/wl1251 0xf371ee94	wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x0b04dacd	wl1271_set_partition
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x46751804	wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0x53dff67d	wl12xx_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa1390618	wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xa59fd356	wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xdc4f7f12	wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe1d381be	wl1271_load_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xe795ba26	wl1271_irq
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl12xx 0xf77de9df	wl1271_alloc_hw
+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 0x374c1e1c	fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x39eea59b	fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6044632b	fcoe_get_paged_crc_eof
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7cd0f63f	fcoe_clean_pending_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915	fcoe_wwn_to_str
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8ee5f985	fcoe_fc_crc
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc1d45150	fcoe_check_wait_queue
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd7d36950	fcoe_start_io
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe2c29615	fcoe_get_wwn
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf6963f93	__fcoe_get_lesb
+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 0x0041034d	iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05f936fc	iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11e7318b	iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x163faef5	iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x203a576e	iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2415056b	iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x281bd5fb	iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e4345ed	iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b	iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x347aec4d	iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4af2b511	iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b2709b0	iscsi_conn_get_addr_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cb39e67	iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50227aff	iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5162e454	__iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54ff1d15	iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bd23ea9	iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6fe95354	iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x709e77eb	iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72718423	iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x831f4cb7	iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x844c2fb4	iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8566d02a	iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e88217b	iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90452e2a	iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90f22270	iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95f050f2	iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ebb46c7	iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0	iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa805568e	iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8d93738	iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb541c671	iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc0da270a	iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc52e0f7c	__iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca6c5f7e	iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae1787a	iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb5447a1	iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd447bba6	iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd99bd223	iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0c54db0	iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ab29d1	__iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9c52133	iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec225495	iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf89f98da	iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc3d4663	iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd572a75	iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0449b871	iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0883442d	iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12c8d848	iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2dd3520d	iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x494d3715	iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x584abc50	iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6308981e	iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69861a6c	iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x786890d8	iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x796f0669	iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8661a3ad	iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ac8bb2c	iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5aac5db	iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb50320a9	iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd81700d1	iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe12bfabf	iscsi_tcp_task_xmit
+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 0x05acea30	iscsi_is_session_online
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06de4666	iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0cb7e429	iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17ba8d38	iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1bc5130f	iscsi_block_scsi_eh
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x290c1b7c	iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x309ce725	iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37cfc32a	iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3937fa67	iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x405c61be	iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4894ed18	iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4979b7a5	iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49ca5a8d	iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a9a9da6	iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e93a6eb	iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x602b9cc8	iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69809c6c	iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72c4d2fe	iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab88baee	iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb084166b	iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb1a1aeff	iscsi_conn_login_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb66665f8	iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1689c7b	iscsi_destroy_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd70bf8f0	iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd978c0e1	iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6ace286	iscsi_create_iface
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf56a10f4	iscsi_register_transport
+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 0x040e60be	usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0a9d8cdf	usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0f7a9f67	usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x2227257d	usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x43b1be69	usbip_pad_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4c3f5263	usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5d9f161e	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 0x9282f52e	dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa87a7566	usbip_recv_xbuff
+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 0xd2dc446c	sockfd_to_socket
+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 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 0x66c00c0b	usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc0210ddc	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 0x27e93cca	ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x31e92d0c	usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32193d8d	usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32e32c65	usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4e6d1aea	usb_serial_handle_dcd_change
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x50f4f469	usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x67615af9	usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x750c1f3a	usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x87e57c7b	ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x919ada80	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 0xc01f3ba6	usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc72443a2	usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xccb9cd27	usb_serial_generic_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd02e137f	usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd39e5f85	usb_serial_handle_break
+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 0xe4a90a0c	usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f9c220	usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf38b4de7	usb_serial_generic_write
+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 0x6f959b35	locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc	nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x786135e9	nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x94752884	nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4	locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9b5ec3e9	nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b	lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xacd40386	nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcb48be1a	nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48	lockd_up
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1917e529	nfs_commit_clear_lock
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36c927c1	nfs4_reset_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3dca8877	nfs_pageio_reset_read_mds
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6205ec59	nfs_commit_release_pages
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x776079ec	nfs_generic_pg_test
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b647d9d	nfs_initiate_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87a8ad19	nfs_retry_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c75fbfa	nfs4_set_ds_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e996633	nfs_commit_free
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90d5d68e	nfs_initiate_read
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b6e65a7	nfs_init_commit
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9cbfa508	nfs4_reset_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa89ae66d	nfs_commitdata_alloc
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde9d9004	nfs_initiate_write
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe308f778	nfs_put_client
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a87370	nfs_commitdata_release
+EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfdfb7927	nfs_pageio_reset_write_mds
+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 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 0x1d899277	o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2776a0df	o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553	o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x426600c2	o2hb_setup_callback
+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 0x7904a6e7	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 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 0xbb7dfd15	o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b	o2hb_get_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xce41ec1a	o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd04f421f	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/dlm/ocfs2_dlm 0x4aec7beb	dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x52b72549	dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x65dd4cef	dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6d6dc94e	dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x763b23fc	dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x790b3328	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 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 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 0x2dde46f1	garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x57a5294b	garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x932b988a	garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x9eac19ca	garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc257a34b	garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xd873e67f	garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x3e160519	stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0x9fada765	stp_proto_unregister
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x1988c00a	p9_client_xattrcreate
+EXPORT_SYMBOL_GPL net/9p/9pnet 0x70dac0af	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 0xac93ae05	ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e	ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xfb6c0386	ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x15072b50	bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x03e1098a	dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x045e5240	dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a	dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x215e93df	dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x218f7128	dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x251cda2b	dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x27dd174b	dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35a90e2d	dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x392af852	dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e80ac07	dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4	dccp_orphan_count
+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 0x55292db0	dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e9bcb49	dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x60793b8f	dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x690070f2	dccp_feat_nn_get
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d58c4d8	dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x71f5297a	dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x822f1f97	inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924	dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91f0ac9e	dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d	dccp_ackvec_parsed_cleanup
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x99fee317	dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9dfc9dc2	dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4ec2fbc	dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa68f5172	dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xafe72152	dccp_feat_signal_nn_change
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb989fe9	dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd4bc1d6	dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbeb3840f	dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf98dd2e	dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe16f74b2	dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe200afe6	dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe39800a9	dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3eb3cb9	dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe65de2c9	dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7994f0f	dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf138f666	dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21	dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xff09249f	dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0f7e28f7	dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x48bc18c1	dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5b5c32c6	dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e77d083	dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x61f2a27f	dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x71517048	dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x34b49f7a	unregister_switch_driver
+EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9123f3a4	register_switch_driver
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x0c802a35	gre_add_protocol
+EXPORT_SYMBOL_GPL net/ipv4/gre 0x3b2e9366	gre_del_protocol
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8e455f83	inet_diag_register
+EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9453e144	inet_diag_unregister
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4dccc375	arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xc88a50f3	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 0x7c9c6819	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 0x6508ad3b	nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x836c90ba	nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134	nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x95c6e2eb	nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb2db9bee	nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe99a88be	nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xff7b44bb	nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8	nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1dcc251d	tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3948b89e	tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3cdb2a30	tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x85cdd828	tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xffdf91e6	tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x2bfe399e	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 0x0e60cd38	l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1b889094	l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34415d36	l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ec5b097	l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x62fc8a86	l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x993c68ca	l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9f7f9901	l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd3d43ac2	l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd5a83c0e	l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd6c69089	l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe2ef8d68	l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xffbb0956	l2tp_session_delete
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x04d07e3a	ieee80211_find_sta_by_ifaddr
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6dac178a	ieee80211_remain_on_channel_expired
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe4a23ebb	ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe6357d6b	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 0xfb54e8f4	ieee80211_ready_on_channel
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb5f6064	ieee80211_request_smps
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0777a44f	ip_set_get_byname
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x30df67e7	ip_set_get_ip6_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 0x4e71eb30	ip_set_get_ip4_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 0x81466b6c	ip_set_del
+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 0xa2a3c2c4	ip_set_type_register
+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 0xab65d851	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 0xcb4bc659	ip_set_add
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef123e72	ip_set_get_ip_port
+EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef2113bf	ip_set_test
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31	net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x123c2445	ip_vs_conn_out_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2f7b1cf4	unregister_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x33166b71	register_ip_vs_pe
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9316225f	ip_vs_conn_in_get_proto
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00365d2a	nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd	nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07402e2a	nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08742208	print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a54e4c1	nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a692bef	nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c72374a	nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dbfb45b	nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13dfcedf	nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x208d14d8	nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714	nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a7307fd	nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30b43240	__nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x366501f7	nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e	nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415	nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fab76cb	nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48356fa6	__nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x502e9ea4	nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53c72ed7	__nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5672add2	nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b5e5796	nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c855a36	nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6218fc26	nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c	nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67c1bf42	nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67db92ce	nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a8cf90f	nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a	need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70feb2a7	nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710	nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cd36927	__nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e88cc8c	seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f1dfda2	__nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80fd5367	nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x827192d3	nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84528a22	nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x871b4193	nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8cbc10ff	nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d995a80	__nf_ct_l4proto_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 0x949aade5	nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96e0e907	nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9864a4f3	nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0c2c037	nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa17874dd	nf_ct_remove_userspace_expectations
+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 0xae3c6876	nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaea38b03	nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb442a9e6	nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e	nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb652a335	nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd8dc007	nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe8a727d	nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13728c2	nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d	nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc69e57fa	nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcaf27611	nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdbc43f4	nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd058ce57	nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3345f45	__nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd385fbe1	nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd97ba07e	nf_ct_unlink_expect_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde635519	nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3	nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf421c056	nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5103e09	nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5dad63a	nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6859ecb	nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf79eedfb	__nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb75fa59	nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdedb608	nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x03126ba2	nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x93a1ebce	nf_conntrack_broadcast_help
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xfd681753	nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e85cfe4	set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4cd5c567	get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4e5727b9	nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x50343dd2	set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5092718b	nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5589c27c	set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x63f2eb8e	nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x65bf8812	set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x74f9ff32	nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda08647c	nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xbaaa7530	nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1fbcd358	nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x35971435	nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x954d9376	nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb44cc947	nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x4a594a3e	nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xfdbf5ea6	nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0eeec7e8	ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0f5d91e5	nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1379ff8e	ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2e327fa6	ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2f6d30d0	nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3831d721	ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x52726b16	ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5bcd43aa	nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78b46bfc	nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8863111c	nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe0d8dbf2	ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe19fdfcb	nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xee514a32	nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xd490c0cc	nf_nat_snmp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x3acf8789	nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x6e54904c	nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x11995713	nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b	nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x37e86f30	nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a	nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7d848c47	nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x841c873a	nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb1362dd3	nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd21a11ce	nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x772c7cb6	nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x009181da	xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x030a6e81	xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18a27674	xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b3e1f08	xt_recseq
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e863b29	xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x232f1f81	xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x391275be	xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3d81e28d	xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63	xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56cbe4f5	xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bf5ade4	xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6772ccf1	xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d17ec37	xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc5545c0d	xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc981f297	xt_find_table_lock
+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 0x015282ed	rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x01531645	rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x06d32ddd	rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x082b8253	rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x09e00085	rds_conn_connect_if_down
+EXPORT_SYMBOL_GPL net/rds/rds 0x0cfea412	rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x125d07c0	rds_atomic_send_complete
+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 0x1dbd80ee	rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x1f2c8669	rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x28548bab	rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x291a2cf0	rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x29d289c8	rds_conn_create
+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 0x37c4e66c	rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x40f34dfd	rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x59d308dd	rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d	rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x795b30f0	rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x7b35f84e	rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x85b2d2d1	rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85	rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xb126a5fc	rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xbbb7003d	rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779	rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd81bf89c	rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xe1f1b8bf	rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xe5dbb490	rds_inc_init
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x00bfe578	rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2e0726dd	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 0x09176d72	gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x29061a2d	gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x34012dca	gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36ad7f37	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 0x4428fdbf	gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x806880a8	gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x80a3c4a2	gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x89daecd0	gss_mech_get_by_OID
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e	svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5d36e22	gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef	g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe4e84987	svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xef83b479	gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf448c415	svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e	g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007efb4e	xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e3c710	rpc_task_reset_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02ae4f3b	svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0371b1f9	rpc_max_payload
+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 0x07d861f9	xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08333e36	svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08d54ab8	svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0974e8b4	xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b3c1ee1	rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bb4a9ea	xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bfaaf19	auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c2ca4db	rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d681618	sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0da37a08	svc_create
+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 0x1070f729	rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3	svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14acf2d5	xprt_wake_pending_tasks
+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 0x1830754b	rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19136d5e	rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b3e28ed	rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf35aac	rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0a9208	xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d5c77b2	svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21b3e47f	rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27fc1fc5	xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28c2be34	rpc_create
+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 0x29a76215	svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d7d2ef2	svc_unreg_xprt_class
+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 0x2fe7c743	rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3088c812	xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59	rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x346a1b28	rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e043f8	rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x397ddece	svc_create_pooled
+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 0x3be47711	xprt_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d301ec1	rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dbfe1df	svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e0994cf	auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f601c9c	rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fca90e4	rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x428b1239	rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44ed046c	rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46434535	rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x485792fc	rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a21096c	rpc_call_null
+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 0x50ed553b	rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68	nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54234d8b	svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56ce5bf1	xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5add4cf2	svc_addsock
+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 0x5c09a1f2	rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d34b326	svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de15841	xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62893043	rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a845fc	xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64fa895b	svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x659831c3	svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6711175c	svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673dc282	xdr_init_decode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67c34f78	xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67c5ac37	svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68755846	svc_max_payload
+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 0x6ddd4d90	_copy_from_pages
+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 0x72323ba2	xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7300f0d7	rpc_exit
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7429a1a9	xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7acb88b9	xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b320197	unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bf7b00d	xprt_release_xprt
+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 0x7e8ca0f0	rpcauth_register
+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 0x822ffa01	rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85856a84	rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88ad32e3	put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x890309fa	xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89336fe7	rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8974a3e4	sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8adef774	svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9169eabf	rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9297eed9	rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92f6ee0e	xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939efa56	xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981777e6	cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99fb3b4e	svc_rpcb_cleanup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd34678	xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bfbe81b	csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c384488	rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cccde12	xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0548651	rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa07b73e9	svc_recv
+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 0xa3eb5d4e	svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa46ef311	rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa58dc324	rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5af56a4	xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9c21cf4	xprt_lock_and_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad7d1f4b	rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf126faa	svc_xprt_names
+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 0xb56869f4	svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb58b44fc	cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5c99666	svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba48c122	rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96	nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfba496f	rpc_pipe_generic_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3	rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc31b5d08	svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471	xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3904e35	xprt_alloc_slot
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4086b7d	svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc649bc93	rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc66b4394	xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc79c6dff	rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc88408ab	svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea	qword_addhex
+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 0xcfb45792	rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd011a74a	read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0a504c9	sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1188a30	xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15938b8	svc_xprt_enqueue
+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 0xd6528530	svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd66de571	write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcb150cf	auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde7997ad	xprt_alloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeffd6e9	__rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfa5a88f	svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfd944ce	rpc_put_task_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0528dfd	xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3e52ffa	rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1	xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5d4412a	xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8d297ff	rpc_killall_tasks
+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 0xedcf6be4	qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee9483e4	svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69	rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef471b05	rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf205dc8a	cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6c3e34e	svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7ede8f0	svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf83c8706	rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c	rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb8f5577	rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdc8020a	svc_drop
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f36a48b	wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3f3752e2	wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x425056a8	wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x488592b9	wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4d0142ef	wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4ef3deaf	wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x83c26905	wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8f2f4b0b	wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x91b2e4ca	wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa3b070b6	wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xad63074b	wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb0c877fe	wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf3ef0808	wimax_dev_init
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x36e36878	cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x398157f4	cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44b8676b	cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x779c7c18	cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91ccc658	cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94ccd52a	cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9b9816a4	cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb82ae854	cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd561a7b	cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd7c0eb9e	cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xddfd363c	cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x32e85799	ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa9bfcaae	ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe88c0394	ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xfdcf7cc7	ipcomp_output
+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 0x008992d0	ip6_dst_lookup
+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 0x00ca1cec	get_task_comm
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d	ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d	klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x01181467	pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x0118a772	ata_cable_unknown
+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 0x013a129b	omap_dump_tlb_entries
+EXPORT_SYMBOL_GPL vmlinux 0x0148adb6	register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x014f36e2	__css_put
+EXPORT_SYMBOL_GPL vmlinux 0x0151ecb7	xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x0153747f	debugfs_create_bool
+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 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 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 0x0297adc5	snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL vmlinux 0x02bb3a84	snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL vmlinux 0x02c8a5e3	hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1	__i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x035dcad6	dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x03671450	fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0372dd8c	security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x038f2f2c	d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x03943c24	fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x03d2c5a6	snd_soc_register_card
+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 0x048b5f8d	twl4030_audio_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0x04f12300	find_pid_ns
+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 0x0619ca8a	getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x063450d5	driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x064d0f6c	raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5	mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x0672cdd2	pm_generic_thaw_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x0678fffa	crypto_alloc_tfm
+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 0x06c94662	mnt_want_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 0x0735e788	snd_soc_codec_readable_register
+EXPORT_SYMBOL_GPL vmlinux 0x078c2eaf	crypto_alloc_instance2
+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 0x07fa4d4c	__put_task_struct
+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 0x08841e2b	br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x08874a0c	cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x089d23c0	usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x08ad6e6f	cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x08b0a176	__hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x08bc06d3	__rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x08c3f4cf	rdev_clear_badblocks
+EXPORT_SYMBOL_GPL vmlinux 0x08cce4b7	ipv6_opt_accepted
+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 0x09ab0371	posix_timers_register_clock
+EXPORT_SYMBOL_GPL vmlinux 0x0a193def	__rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0a387f80	__get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x0a3d4bfc	unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x0a6fa376	platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x0a799a34	snd_soc_put_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x0a866d07	blkio_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2	unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b28defb	kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0be13004	usb_storage_usb_ids
+EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e	ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x0c1bf836	snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL vmlinux 0x0c1f8ba0	single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1	synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c378adb	sata_set_spd
+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 0x0d0c109d	of_irq_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x0d168486	ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x0d1ddd87	crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x0d30ea61	blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0d3cc82c	of_irq_map_one
+EXPORT_SYMBOL_GPL vmlinux 0x0d5205ab	snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0x0d78a205	wakeup_source_remove
+EXPORT_SYMBOL_GPL vmlinux 0x0d79cc85	cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x0d7f3af5	bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e38e132	bus_set_iommu
+EXPORT_SYMBOL_GPL vmlinux 0x0e3c447f	shash_register_instance
+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 0x0f3b1500	ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x0f587e70	transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0f8905c4	blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x0fb64bd2	sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x0fdbdbab	irq_setup_generic_chip
+EXPORT_SYMBOL_GPL vmlinux 0x10138352	tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10372b0d	snd_soc_dapm_free
+EXPORT_SYMBOL_GPL vmlinux 0x1048552a	inet_csk_addr2sockaddr
+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 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 0x115e16f4	__put_net
+EXPORT_SYMBOL_GPL vmlinux 0x11692179	usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x1172ce54	rtc_ktime_to_tm
+EXPORT_SYMBOL_GPL vmlinux 0x118171d9	regmap_read
+EXPORT_SYMBOL_GPL vmlinux 0x11b71f28	__scsi_get_command
+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 0x1239810e	regulator_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 0x12a30954	scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x12ee0bb7	adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1308cc97	ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x1319f6ff	ablkcipher_walk_phys
+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 0x13977423	snd_soc_limit_volume
+EXPORT_SYMBOL_GPL vmlinux 0x139d482f	flush_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x13a1b1ff	crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946	register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13e5278a	kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x1421ad0d	crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x144db879	sdhci_resume_host
+EXPORT_SYMBOL_GPL vmlinux 0x146f3688	sata_scr_write_flush
+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 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 0x16dbf495	inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x16e13cc2	blkio_policy_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x16e28690	sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x17152c62	crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x171a306a	sata_link_scr_lpm
+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 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 0x19c08754	crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x19c8a259	register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x19d4feb4	rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x19e865f7	__rtnl_af_register
+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 0x1a8e7689	scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x1a8ffad7	posix_clock_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a944070	sysfs_put
+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 0x1b52db1c	probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x1b5bae94	single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x1b5d3e94	unregister_net_sysctl_table
+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 0x1b9aca3f	jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1bd7f702	usb_hcd_poll_rh_status
+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 0x1c947d7e	inet_hashinfo_init
+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 0x1d177b98	shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x1d4636ef	get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x1d52e208	snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL vmlinux 0x1d8f2b91	devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x1db58f41	nand_release
+EXPORT_SYMBOL_GPL vmlinux 0x1dd1810a	inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x1dd2d9db	securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1df544b0	sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x1e095d48	udp6_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x1e314b21	regulator_use_dummy_regulator
+EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb	trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x1e4dae3f	devres_destroy
+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 0x1efb11c8	inet_csk_route_child_sock
+EXPORT_SYMBOL_GPL vmlinux 0x1efbf353	fat_scan
+EXPORT_SYMBOL_GPL vmlinux 0x1f1657bd	put_pid
+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 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 0x20931b2e	crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x209cd173	file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470	orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d52389	snd_soc_put_enum_double
+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 0x21b66757	sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x22015fe3	register_pernet_subsys
+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 0x2358fd63	__inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x235ce1ad	blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x23679939	__iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7	cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23b90f16	led_trigger_register_simple
+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 0x24476091	ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5	srcu_batches_completed
+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 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 0x24dacea0	xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x24dd3b1a	snd_soc_dai_set_fmt
+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 0x2520ccf0	snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL vmlinux 0x252e43b4	cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0x2532ff7c	tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x25391c84	class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x2541a979	snd_soc_calc_frame_size
+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 0x26297aaa	ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x262f20a8	local_clock
+EXPORT_SYMBOL_GPL vmlinux 0x26413b2a	dapm_reg_event
+EXPORT_SYMBOL_GPL vmlinux 0x264a2ccd	inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x266b021f	snd_soc_platform_write
+EXPORT_SYMBOL_GPL vmlinux 0x26765503	noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x26abff41	platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x26ac0b57	kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4	ring_buffer_time_stamp
+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 0x2734b90b	nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x274ab190	filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x274d7076	unregister_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00	vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x28607fac	ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x2893bb78	cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x28a82da4	snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0x28c90858	register_ftrace_event
+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 0x292db98b	ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x2972ca21	tc3589x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x299dfbd6	tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x29b3263e	usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x29c2750e	usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x29f65cc2	sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2a0b9566	crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2a17dbad	rtnl_register
+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 0x2b6ae537	generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x2c0dc18b	filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607	power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c6432d2	ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x2c7db649	irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd	regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2cafa72c	rtnl_af_register
+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 0x2d8700f8	usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x2d9677d0	usb_queue_reset_device
+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 0x2e2341d8	crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740	ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677	xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e5633a0	snd_soc_resume
+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 0x2f58f153	rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2f6176cc	tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x2f7934e8	pm_generic_restore_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2f84e66f	inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x2fbbd031	snd_soc_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x2fc27e27	page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17	dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fda0ec6	alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x2fe7c4f5	ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x307550c7	get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x3078b886	shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776	timecompare_offset
+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 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 0x31a820ed	register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x31bc7b23	snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1	dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x31f7115c	i2c_lock_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x32311dc9	skb_gro_receive
+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 0x33c6f364	watchdog_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x33d7abdf	crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x33e8c6c2	hvc_poll
+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 0x347a052d	inet6_hash_connect
+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 0x3494c51f	snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x349e5187	regmap_init_i2c
+EXPORT_SYMBOL_GPL vmlinux 0x34b12e36	rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x34c6f7b6	crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x34cd4fb4	__fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x34d490c0	transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x34d9d92e	perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x34f97f22	return_address
+EXPORT_SYMBOL_GPL vmlinux 0x3534e2a3	system_nrt_wq
+EXPORT_SYMBOL_GPL vmlinux 0x353b4598	cgroup_add_file
+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 0x35b98b43	tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x35d36dbc	sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x35d911fc	crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x360568ac	device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc	save_stack_trace
+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 0x367f44f9	get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x36871f1a	da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x36875389	__timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36a3e9b6	crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x36de4ad1	tcp_reno_min_cwnd
+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 0x37d82959	tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x380d1167	task_blkio_cgroup
+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 0x394481d7	init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x3969bf31	power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x3977f443	snd_soc_dapm_nc_pin
+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 0x3a3c4447	ahash_attr_alg
+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 0x3abbdd50	fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x3acdf325	twl4030_audio_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x3b2c1d7f	relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x3b38db38	crypto_aes_set_key
+EXPORT_SYMBOL_GPL vmlinux 0x3b59bf51	evm_inode_init_security
+EXPORT_SYMBOL_GPL vmlinux 0x3babd160	snd_soc_default_volatile_register
+EXPORT_SYMBOL_GPL vmlinux 0x3bad1c59	crypto_register_ahash
+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 0x3d26455d	mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324	dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5982e0	posix_clock_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3d5a088c	snd_soc_dai_set_pll
+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 0x3d9d489f	snd_soc_add_platform_controls
+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 0x3dd4d3a7	bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dd90740	snd_soc_write
+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 0x3e41e38c	__sock_recv_ts_and_drops
+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 0x3f3c4d22	debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x3f620a84	disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a	unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x3fa01a43	vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x40102d29	alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529	gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4064b321	scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x40874f6d	rq_flush_dcache_pages
+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 0x40f3bdd7	usb_hcd_unmap_urb_setup_for_dma
+EXPORT_SYMBOL_GPL vmlinux 0x41389e90	sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x4180aab9	add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4180dd60	fat_detach
+EXPORT_SYMBOL_GPL vmlinux 0x41ac4664	kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x41af18ee	deregister_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0x41e1f656	ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x41e22b0b	pm_runtime_barrier
+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 0x42f79d1f	inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x430ff0f1	cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x431c86c4	ip6_sk_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6	__gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43357f56	crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x4354e20a	fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x43567af3	kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x43614397	__crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x43c22366	get_pid_task
+EXPORT_SYMBOL_GPL vmlinux 0x43c77fce	irq_setup_alt_chip
+EXPORT_SYMBOL_GPL vmlinux 0x43d6ff09	usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x43de0b12	usb_create_shared_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x43e871dc	md_is_badblock
+EXPORT_SYMBOL_GPL vmlinux 0x43f4937f	register_user_hw_breakpoint
+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 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 0x455105a4	regulator_get_init_drvdata
+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 0x45975b2d	blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x459c7bdc	sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3	crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45e25362	blk_rq_unprep_clone
+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 0x466a7444	crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b	__crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46912e69	platform_device_register
+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 0x47732f17	crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x47c149ab	queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x47dc447f	skcipher_geniv_alloc
+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 0x48a488a0	sysctl_tcp_cookie_size
+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 0x4965bba5	lookup_instantiate_filp
+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 0x49a37edc	add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x49b2737a	regmap_init_spi
+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 0x4a64a95a	usb_gadget_probe_driver
+EXPORT_SYMBOL_GPL vmlinux 0x4a77c6eb	net_ns_type_operations
+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 0x4bc53dd0	get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81	audit_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4c13d028	netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x4c3866c0	ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x4c6647ec	device_move
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827	byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371	tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4c848e2f	sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x4cadfa0a	__rtnl_af_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4ccd6318	omap_dm_timer_set_source
+EXPORT_SYMBOL_GPL vmlinux 0x4d24e899	blkcipher_walk_virt_block
+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 0x4df66c0b	fat_time_unix2fat
+EXPORT_SYMBOL_GPL vmlinux 0x4e109192	ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x4e12e3ba	crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4e12f533	tcp_death_row
+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 0x4e7cff4b	locks_alloc_lock
+EXPORT_SYMBOL_GPL vmlinux 0x4e7df11b	irq_create_of_mapping
+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 0x4f8f82c0	crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x4f988e5f	led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d	ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d	sata_deb_timing_normal
+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 0x50329973	crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x503ac732	crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x503f8591	usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x504f371a	eventfd_fget
+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 0x5167cf61	register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x5194eb7b	ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x5195b1db	udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x51a2c847	kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x51b7b372	ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x51c8a6ad	usb_autopm_put_interface_async
+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 0x5227370d	crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x5243eed1	vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x524a7826	__tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0x5254f437	sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x52627669	blkcg_get_weight
+EXPORT_SYMBOL_GPL vmlinux 0x526b6c29	unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x52701804	fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x52c7dc11	__pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x532f250b	crypto_unregister_pcomp
+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 0x53c8bdeb	regulator_get
+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 0x5460c8d8	fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x546537bc	__fsnotify_inode_delete
+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 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 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 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 0x591a30e6	pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2	scsi_dh_handler_exist
+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 0x5a3ed8bb	tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x5a3f117c	bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x5a48534a	regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41	crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a7f16c2	inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x5a80d267	snd_soc_register_platform
+EXPORT_SYMBOL_GPL vmlinux 0x5a847815	register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a9cd8e0	inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5aae84c7	sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x5b15395d	inet_csk_listen_stop
+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 0x5b691fb2	usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x5b7d5513	crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x5b956fbd	uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x5bb906a7	wait_rcu_gp
+EXPORT_SYMBOL_GPL vmlinux 0x5bbd0078	shash_attr_alg
+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 0x5d730e7b	raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d883a3c	cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x5d88cc43	sdhci_free_host
+EXPORT_SYMBOL_GPL vmlinux 0x5d899d3e	css_depth
+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 0x5f46d244	of_irq_map_raw
+EXPORT_SYMBOL_GPL vmlinux 0x5f551108	sdhci_alloc_host
+EXPORT_SYMBOL_GPL vmlinux 0x5f645720	inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x5f72125a	snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d	xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff768ec	fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3	synchronize_srcu_expedited
+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 0x60b06481	kill_pid_info_as_cred
+EXPORT_SYMBOL_GPL vmlinux 0x60e2722e	pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4	regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x612d8e49	raw_hash_sk
+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 0x6187058c	rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x6235cf49	usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406	hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x6267312f	aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x627976b7	snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL vmlinux 0x62b518af	crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x62bcf259	blkiocg_update_completion_stats
+EXPORT_SYMBOL_GPL vmlinux 0x62d1fd70	ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x62e67818	ftrace_event_reg
+EXPORT_SYMBOL_GPL vmlinux 0x62ea44f1	cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x62f16d04	__netpoll_setup
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1	ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x632dee9e	ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x6373f484	find_get_pid
+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 0x63fa8a37	vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x640ad778	fat_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x642f184e	blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x6430a722	skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x645e56d0	blkiocg_lookup_group
+EXPORT_SYMBOL_GPL vmlinux 0x647879d8	__pm_runtime_use_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x64f46f6f	usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x652be58c	spi_bus_lock
+EXPORT_SYMBOL_GPL vmlinux 0x652f5a30	free_css_id
+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 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 0x660864c6	dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x661601de	sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662cc7c0	ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x6639b738	crypto_shash_final
+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 0x67173efe	fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x676d97b5	bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x677b9cee	cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6	profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67c7d8a6	bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x68551413	ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x686174d3	rtnl_link_unregister
+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 0x68a21997	inet_csk_listen_start
+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 0x69189607	dm_path_uevent
+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 0x695a7492	tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x698a899f	ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x698be398	regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x69983a73	dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x69ab36bb	max8997_write_reg
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb	ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x69ef3d5b	inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x69fd79cc	ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x6a224e61	mtd_add_partition
+EXPORT_SYMBOL_GPL vmlinux 0x6a449327	snd_soc_debugfs_root
+EXPORT_SYMBOL_GPL vmlinux 0x6a4e6021	usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x6a6afd22	nf_unregister_afinfo
+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 0x6af7d728	css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6b16371a	dev_pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa	ring_buffer_event_length
+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 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 0x6e07e741	regmap_raw_read
+EXPORT_SYMBOL_GPL vmlinux 0x6e6b5274	ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc	xfrm_ealg_get_byid
+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 0x6f5de6ef	ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x6fbd752e	snd_pcm_lib_default_mmap
+EXPORT_SYMBOL_GPL vmlinux 0x6fdb61a8	vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf	ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff129f3	snd_soc_get_volsw_s8
+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 0x70c0698f	snd_soc_register_dai
+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 0x7207af8d	crypto_destroy_tfm
+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 0x72b212ff	regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x72ced21a	pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x72e19e16	usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e	__srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x73021c60	regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7	asic3_write_register
+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 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 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 0x75d464c8	crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x75dab5ce	ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x75e1a8ee	i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x75e4dc35	perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3	crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75e93367	__module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x760c7d9c	fat_getattr
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd	dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7630886c	add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x765bf82b	usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7665feac	__ata_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0x76dbafc7	generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x7746b665	rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x775a905d	blk_end_request_err
+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 0x779ddb24	crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x783ca1c3	aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x7848671e	inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x78da6843	device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x78f111d6	snd_soc_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc	tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x795bdb7e	unregister_pernet_device
+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 0x79cea966	blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x79d476e4	crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x79dbb3de	crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x79fea0b3	dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x7a09feea	tc3589x_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x7a1c6e06	snd_soc_register_codec
+EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44	ezx_pcap_set_bits
+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 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 0x7b3cb2e1	crypto_lookup_template
+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 0x7bd0f63a	snd_soc_unregister_card
+EXPORT_SYMBOL_GPL vmlinux 0x7bde28d5	inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x7c119006	relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x7c166fa7	inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x7c3d63cc	max8997_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x7c5bb835	bio_clone_mddev
+EXPORT_SYMBOL_GPL vmlinux 0x7c728767	zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x7c8ce73b	led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7ca0248e	__mtd_next_device
+EXPORT_SYMBOL_GPL vmlinux 0x7cbcc969	trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5	generic_handle_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7d18cd61	skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x7d398fdd	led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7d4601bb	gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46	pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d64c692	wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7d926871	do_kern_mount
+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 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 0x7f562291	scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x7f81206d	inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x7f99fafb	xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7fbc8686	regmap_exit
+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 0x8036a3ed	clone_private_mount
+EXPORT_SYMBOL_GPL vmlinux 0x803d6879	da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x80725b0e	blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3	crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80c9049b	del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x80cb4409	tcp_register_congestion_control
+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 0x8149ea54	ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81b4cf2f	inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x81d6a3b0	scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x81e0bfde	crypto_chain
+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 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 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 0x8434406c	tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x844e4213	snd_soc_add_controls
+EXPORT_SYMBOL_GPL vmlinux 0x8469417c	sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x847dce07	snd_soc_unregister_platform
+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 0x856c25b2	unregister_wide_hw_breakpoint
+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 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 0x860fcff1	posix_timer_event
+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 0x87111807	sysfs_get_dirent
+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 0x87d71776	relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x88029e44	pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e	crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x881d3a47	queue_kthread_work
+EXPORT_SYMBOL_GPL vmlinux 0x8888fe92	crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x88aa3e4c	snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3	kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88d4e1bc	perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x88ed172a	invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x88f43250	blk_queue_flush
+EXPORT_SYMBOL_GPL vmlinux 0x890b091e	mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x89381409	class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8944f9d9	rtc_read_alarm
+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 0x89a82ccb	crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x89b7fa5d	blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf	usb_usual_check_type
+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 0x8a52b278	__inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80	regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5	klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8ab1a430	kobject_uevent
+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 0x8b608988	scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1	ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bbb3c3c	crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x8bfb05a6	ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c	destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x8c101e08	regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8c13b8e4	disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8c1acb57	vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x8c26f943	sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x8c3cb3f6	usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8c5eeb89	snd_soc_codec_writable_register
+EXPORT_SYMBOL_GPL vmlinux 0x8c7c2ae4	blk_queue_flush_queueable
+EXPORT_SYMBOL_GPL vmlinux 0x8c822a3a	snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL vmlinux 0x8cdec7c7	fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x8d0f9f0c	pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8d0fea1a	modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8d1694b2	crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x8d19562e	crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x8dad55e8	of_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x8db343b6	ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x8dc1a5dd	fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dc9ac19	fat_fill_super
+EXPORT_SYMBOL_GPL vmlinux 0x8e4d709a	eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x8e7648a1	rtc_set_time
+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 0x8f07264a	wakeup_source_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8f263dc6	platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77	__round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f7555a4	vfs_test_lock
+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 0x90b85f02	crypto_alloc_instance
+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 0x923295d5	regmap_write
+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 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 0x92d31cfb	fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92d73cca	__i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x92fd057a	aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x93321851	put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x93347585	devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x9352475e	regulator_register
+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 0x94a5e7ad	crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723	ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94a7c7ee	rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x94f5ea11	cgroup_attach_task_all
+EXPORT_SYMBOL_GPL vmlinux 0x94f6262b	relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x94ff5ca1	snd_soc_get_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5	do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x95366595	omap_dm_timer_stop
+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 0x95f6ee15	unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x961661a8	proc_net_fops_create
+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 0x96bcef7a	netdev_rx_handler_unregister
+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 0x975cbceb	snd_soc_register_dais
+EXPORT_SYMBOL_GPL vmlinux 0x976991e0	inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x97b13dad	__clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0x97dbe865	fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x9804a5aa	hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x980a02a0	inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x981019d0	init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9818958e	simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x9822d846	snd_soc_codec_volatile_register
+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 0x98eed76d	regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x98fee210	da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x991000ad	snd_soc_new_ac97_codec
+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 0x998c4657	wm831x_regmap_config
+EXPORT_SYMBOL_GPL vmlinux 0x99a30487	crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x99bb5b6a	ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x99ce0ea4	blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x99dfe226	inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x9a081404	ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc	crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a3ad699	debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x9aaf803b	of_alias_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74	suspend_set_ops
+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 0x9afcf2b8	__rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x9b0a1cdd	dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x9b8ebb5d	ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x9b98add9	ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e	unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9ba1d27b	vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x9bc4acdf	sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0x9bc66d51	adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bd52866	__ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x9bdd9c01	class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x9bfcce5e	crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9c169979	class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9c2d257f	driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x9c33f70f	sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x9c3584bc	find_module
+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 0x9c9c1c5f	snd_soc_info_volsw_2r_sx
+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 0x9d8331c0	ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x9db8ba19	gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9dd36690	gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x9de1c137	crypto_unregister_ahash
+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 0x9e85157f	crypto_givcipher_type
+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 0xa05a170b	musb_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xa0fc1078	tps65912_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa0fc54bc	tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xa1536b86	snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0xa17ecedb	__trace_note_message
+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 0xa1aa30ef	perf_event_refresh
+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 0xa1d40f52	vfs_kern_mount
+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 0xa27ce9b6	__mnt_is_readonly
+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 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 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 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 0xa56da51b	locks_release_private
+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 0xa5ba7e4e	ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xa5d1166b	sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xa5d6c97f	security_inode_mkdir
+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 0xa6c9ff97	usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa6d778e5	platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0xa6f7db17	ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xa7032ad9	user_update
+EXPORT_SYMBOL_GPL vmlinux 0xa711d0c7	__lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xa7764f12	__ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xa77ba71b	snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL vmlinux 0xa79b73a4	raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xa7aa4b34	inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xa7c30e8f	snd_soc_codec_set_pll
+EXPORT_SYMBOL_GPL vmlinux 0xa7ef6b39	snd_soc_info_volsw
+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 0xa89b584a	of_property_read_string_index
+EXPORT_SYMBOL_GPL vmlinux 0xa8da9a3d	spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xa8f0fc68	proc_net_remove
+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 0xa9c530b8	unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c6eaaf	spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261	net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xa9fefa81	device_add
+EXPORT_SYMBOL_GPL vmlinux 0xaa1685fc	inet_csk_route_req
+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 0xaaaad38c	crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xaad18c36	rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xab1807c0	pm_generic_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xab38187a	ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf	pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab799516	blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xabafd772	skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xabd0bb18	__pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xac661186	__inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xacaaafc6	snd_soc_read
+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 0xad5f1b39	nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad8d514b	usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xad9dd1bc	crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xada38534	regulator_bulk_disable
+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 0xae09cc28	snd_soc_get_volsw_2r_sx
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee	pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae1e69b0	dev_attr_unload_heads
+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 0xaf0b7a4f	blk_insert_cloned_request
+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 0xaf8333a2	set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xaf894784	usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xafb5e94f	scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb004e8b3	tps65910_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb04a9940	usb_free_streams
+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 0xb18429eb	suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb19e83f1	kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xb1f62734	shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb23994c3	usb_bus_start_enum
+EXPORT_SYMBOL_GPL vmlinux 0xb2428097	omap_dm_timer_request_specific
+EXPORT_SYMBOL_GPL vmlinux 0xb26833b7	skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xb28a15fd	omap_dm_timer_free
+EXPORT_SYMBOL_GPL vmlinux 0xb2af0bc2	get_task_pid
+EXPORT_SYMBOL_GPL vmlinux 0xb2e30a3e	blk_rq_prep_clone
+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 0xb3c5f6b3	snd_soc_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb3c8ede7	blkio_policy_register
+EXPORT_SYMBOL_GPL vmlinux 0xb3e6c7fd	da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xb3f06264	snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL vmlinux 0xb43907a8	i2c_adapter_type
+EXPORT_SYMBOL_GPL vmlinux 0xb4b7b453	shmem_truncate_range
+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 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 0xb5a5e88c	tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xb5c31e23	ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb5d9ffcc	crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf	perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb62ebd31	omap_dm_timer_set_load_start
+EXPORT_SYMBOL_GPL vmlinux 0xb6452682	task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb67b1b9a	vfs_cancel_lock
+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 0xb7b90553	gpio_export_link
+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 0xb8cf976f	crypto_grab_aead
+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 0xb9b0098f	snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xb9c425de	register_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9	llist_del_first
+EXPORT_SYMBOL_GPL vmlinux 0xb9d22ac8	console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xb9da2997	snmp_fold_field64
+EXPORT_SYMBOL_GPL vmlinux 0xb9e5b5c8	omap_dm_timer_get_fclk
+EXPORT_SYMBOL_GPL vmlinux 0xba482abe	snd_soc_put_volsw_2r_sx
+EXPORT_SYMBOL_GPL vmlinux 0xba50c138	crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xba65dbe9	blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xba6ea394	gpiochip_find
+EXPORT_SYMBOL_GPL vmlinux 0xbad4c8dc	inet6_csk_xmit
+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 0xbbf8b1be	setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xbbfda9f2	raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xbbfed2be	rdev_get_id
+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 0xbca6ef6a	crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8	register_oldmem_pfn_is_ram
+EXPORT_SYMBOL_GPL vmlinux 0xbcefb76b	nf_unregister_queue_handlers
+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 0xbe269dde	snd_soc_info_enum_double
+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 0xbe995b45	sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xbf01c49b	bsg_job_done
+EXPORT_SYMBOL_GPL vmlinux 0xbf04e172	dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xbf0d5d37	sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xbf1d5f84	crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xbf7a38df	snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL vmlinux 0xbfa0f507	__tracepoint_rpm_resume
+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 0xc03c5b81	tcp_slow_start
+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 0xc10f2b8e	cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f	tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc1235594	blk_trace_setup
+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 0xc21bd0cf	ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xc227dd48	sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091	vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc259073b	devres_get
+EXPORT_SYMBOL_GPL vmlinux 0xc280fb46	kdb_register
+EXPORT_SYMBOL_GPL vmlinux 0xc2cba4f0	snd_soc_codec_set_sysclk
+EXPORT_SYMBOL_GPL vmlinux 0xc32c98f0	seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27	snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc385cb58	perf_num_counters
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f	scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3b8425d	sata_scr_write
+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 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 0xc54507e9	rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc5635c76	bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xc5790a2a	aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc57a9fcf	platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc58429fe	regmap_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc5a41e55	tcp_is_cwnd_limited
+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 0xc5fd2504	css_id
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b	klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec	__ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc6289f3a	register_net_sysctl_table
+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 0xc6627d28	snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL vmlinux 0xc66324ec	ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc68a13d1	clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0xc6a9d3d5	omap_uninstall_iommu_arch
+EXPORT_SYMBOL_GPL vmlinux 0xc6d03824	crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xc72e1233	__trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc72faa5a	debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e	llist_add_batch
+EXPORT_SYMBOL_GPL vmlinux 0xc7ac5c83	fuse_get_req
+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 0xc86df30a	scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84	ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc8add232	ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc8becd1d	scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc8db737f	sysdev_show_int
+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 0xca6ebde3	seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xca76fcec	rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf	tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de	cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcacc5951	blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xcaf8fa7d	device_find_child
+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 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 0xcd13fa3a	fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xcd263e74	blkio_alloc_blkg_stats
+EXPORT_SYMBOL_GPL vmlinux 0xcd73d337	mnt_drop_write
+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 0xce2cc613	trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xce6168dd	register_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0xce66e427	snd_soc_update_bits
+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 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 0xcfc43a2a	__blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad	register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcff1a146	snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700	secure_ipv4_port_ephemeral
+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 0xd08e5f67	tcp_reno_cong_avoid
+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 0xd11ebb95	pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3	crypto_check_attr_type
+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 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 0xd2750880	sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xd2b7da51	sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xd2c4856f	snd_soc_test_bits
+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 0xd3b1a60d	ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xd3e61495	raw_seq_next
+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 0xd4250b7b	ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xd42512f2	crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xd46dac49	regmap_raw_write
+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 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 0xd6459aae	blk_rq_err_bytes
+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 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 0xd7e69545	da903x_set_bits
+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 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 0xd878232d	snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd879eedf	crypto_shoot_alg
+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 0xd8c3faba	__mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd8cf23f1	usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xd8d57b4c	ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xd8de9022	blk_queue_bio
+EXPORT_SYMBOL_GPL vmlinux 0xd8ee1bca	regmap_init
+EXPORT_SYMBOL_GPL vmlinux 0xd90b8de9	xfrm_inner_extract_output
+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 0xd9c87348	dm_set_device_limits
+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 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 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 0xdc57cb44	debugfs_create_u16
+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 0xdcd0d2f2	__inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xdcdf6e4f	fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xdceaafac	tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f	ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xdd2fb70d	snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL vmlinux 0xdd5112a3	crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xdd75ee5c	power_supply_powers
+EXPORT_SYMBOL_GPL vmlinux 0xdd7e47d0	regmap_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xdd9fba6c	irq_domain_add_simple
+EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0	ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xde1fba32	iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xde2f8c68	dev_change_net_namespace
+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 0xdea810c6	__netpoll_cleanup
+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 0xdf7d788a	ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xdf961525	usb_usual_ignore_device
+EXPORT_SYMBOL_GPL vmlinux 0xdfd3d583	ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xdfe9503b	each_symbol_section
+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 0xe02d682d	crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0	ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xe0476be2	driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe04afcb2	skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xe056b4a1	tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xe05ced89	snd_soc_cache_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0631cb6	rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe0795658	skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe0820bcc	usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0xe0c41e45	__blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xe0da9810	snd_soc_platform_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0de3485	rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe17e9607	inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xe1cc39f6	platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe1cf96ba	ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695	__atomic_notifier_call_chain
+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 0xe2784795	pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xe287b31b	sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xe2c98989	sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0xe2d11973	crypto_blkcipher_type
+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 0xe335251c	snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL vmlinux 0xe384a102	usb_speed_string
+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 0xe44e4a68	skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xe46e8f34	register_wide_hw_breakpoint
+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 0xe529985b	cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9	class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe5a17451	crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xe5c2fad5	scsi_unregister_device_handler
+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 0xe6e1c5fe	uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe6f73341	sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885	__wake_up_sync
+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 0xe8011ccf	inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xe818b32b	ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xe838f679	con_debug_enter
+EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3	cpu_cluster_pm_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe8611953	perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7	dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe88c962d	snd_soc_bulk_write_raw
+EXPORT_SYMBOL_GPL vmlinux 0xe9024b74	register_kretprobes
+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 0xea065e01	task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1	gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f	atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea492dd3	omap_iommu_restore_ctx
+EXPORT_SYMBOL_GPL vmlinux 0xeaaf8db7	crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760	scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf8c242	blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xeb2faed6	inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0xeb3d15b9	proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xeb42c49c	bsg_request_fn
+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 0xec991e62	snd_soc_cnew
+EXPORT_SYMBOL_GPL vmlinux 0xecabd75d	blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xecdd4d44	part_round_stats
+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 0xed9cfa5a	snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xeda63db3	scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xedcd8303	crypto_remove_spawns
+EXPORT_SYMBOL_GPL vmlinux 0xedd3e344	blk_add_request_payload
+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 0xee9e9f7b	crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xeec75f31	rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70	round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef8c7850	pcap_adc_async
+EXPORT_SYMBOL_GPL vmlinux 0xefb53b7e	iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xefb64e58	replace_page_cache_page
+EXPORT_SYMBOL_GPL vmlinux 0xefb72398	pstore_write
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63	ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xeff9157c	kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xf03b9de8	power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0xf06ccfec	shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xf0c46139	__module_address
+EXPORT_SYMBOL_GPL vmlinux 0xf0e7af21	spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189	kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1a841e0	crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xf1b31314	delayacct_on
+EXPORT_SYMBOL_GPL vmlinux 0xf1c7676a	__sock_recv_timestamp
+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 0xf2923150	inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0xf2939d72	get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xf2bb2baf	bsg_remove_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf2c6396d	tps6586x_write
+EXPORT_SYMBOL_GPL vmlinux 0xf2d75b75	skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922	uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30317c7	anon_transport_class_unregister
+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 0xf3d5238c	__inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d	regulator_set_voltage_time
+EXPORT_SYMBOL_GPL vmlinux 0xf3e4a3df	unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xf3ec7ae1	ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xf42cb3e1	usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xf477b7a8	stmpe_block_write
+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 0xf5288eb5	snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL vmlinux 0xf52d2fbd	pm_stay_awake
+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 0xf55e5288	usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf568869e	hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf578f99b	crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xf58d6875	ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd	invalidate_bh_lrus
+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 0xf67a4b0f	map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xf68e44fc	blk_unprep_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 0xf70e4e1f	find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xf71f3f65	__root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xf728f707	tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf72ee27e	__irq_set_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf7435b59	blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf7713218	iommu_set_fault_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf7a0480e	blkdev_aio_write
+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 0xf849c797	ip6_dst_lookup_flow
+EXPORT_SYMBOL_GPL vmlinux 0xf85c20d7	sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492	print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf893a8e7	crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf8b4efdd	yield_to
+EXPORT_SYMBOL_GPL vmlinux 0xf8b99b28	sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0xf8c5521c	netdev_rx_handler_register
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743	__srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb	ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8f42f0a	find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xf92ce956	kdb_printf
+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 0xfa100118	crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910	unregister_syscore_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfa26ce94	crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0xfae557d7	platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xfb217ca0	bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0xfb2687f5	__get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xfb2a4020	fat_sync_inode
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f	ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb41e8de	pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfb49a8c2	skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9	power_group_name
+EXPORT_SYMBOL_GPL vmlinux 0xfb9430d4	usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xfba7bc5f	mmput
+EXPORT_SYMBOL_GPL vmlinux 0xfbce4236	tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xfbcefb86	relay_reset
+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 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 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 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 0xff2e180b	skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0xff3e5e39	hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xff41151f	platform_device_add
+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-36.57/armel/omap.compiler
+++ linux-3.2.0/debian.master/abi/3.2.0-36.57/armel/omap.compiler
@@ -0,0 +1 @@
+GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
--- 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/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/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);
@@ -1665,6 +1667,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/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/powerpc/Kconfig
+++ linux-3.2.0/arch/powerpc/Kconfig
@@ -952,6 +952,8 @@
 
 source "drivers/Kconfig"
 
+source "ubuntu/Kconfig"
+
 source "fs/Kconfig"
 
 source "arch/powerpc/sysdev/qe_lib/Kconfig"
--- linux-3.2.0.orig/arch/powerpc/include/asm/reg.h
+++ linux-3.2.0/arch/powerpc/include/asm/reg.h
@@ -1016,7 +1016,8 @@
 /* Macros for setting and retrieving special purpose registers */
 #ifndef __ASSEMBLY__
 #define mfmsr()		({unsigned long rval; \
-			asm volatile("mfmsr %0" : "=r" (rval)); rval;})
+			asm volatile("mfmsr %0" : "=r" (rval) : \
+						: "memory"); rval;})
 #ifdef CONFIG_PPC_BOOK3S_64
 #define __mtmsrd(v, l)	asm volatile("mtmsrd %0," __stringify(l) \
 				     : : "r" (v) : "memory")
--- linux-3.2.0.orig/arch/powerpc/include/asm/time.h
+++ linux-3.2.0/arch/powerpc/include/asm/time.h
@@ -219,5 +219,7 @@
 extern void secondary_cpu_time_init(void);
 extern void iSeries_time_init_early(void);
 
+extern void decrementer_check_overflow(void);
+
 #endif /* __KERNEL__ */
 #endif /* __POWERPC_TIME_H */
--- linux-3.2.0.orig/arch/powerpc/include/asm/cputime.h
+++ linux-3.2.0/arch/powerpc/include/asm/cputime.h
@@ -126,11 +126,11 @@
 /*
  * Convert cputime <-> microseconds
  */
-extern u64 __cputime_msec_factor;
+extern u64 __cputime_usec_factor;
 
 static inline unsigned long cputime_to_usecs(const cputime_t ct)
 {
-	return mulhdu(ct, __cputime_msec_factor) * USEC_PER_MSEC;
+	return mulhdu(ct, __cputime_usec_factor);
 }
 
 static inline cputime_t usecs_to_cputime(const unsigned long us)
@@ -143,7 +143,7 @@
 	sec = us / 1000000;
 	if (ct) {
 		ct *= tb_ticks_per_sec;
-		do_div(ct, 1000);
+		do_div(ct, 1000000);
 	}
 	if (sec)
 		ct += (cputime_t) sec * tb_ticks_per_sec;
--- linux-3.2.0.orig/arch/powerpc/platforms/pseries/eeh_driver.c
+++ linux-3.2.0/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -25,6 +25,7 @@
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
+#include <linux/module.h>
 #include <linux/pci.h>
 #include <asm/eeh.h>
 #include <asm/eeh_event.h>
@@ -41,6 +42,41 @@
 	return "";
 }
 
+/**
+ * eeh_pcid_get - Get the PCI device driver
+ * @pdev: PCI device
+ *
+ * The function is used to retrieve the PCI device driver for
+ * the indicated PCI device. Besides, we will increase the reference
+ * of the PCI device driver to prevent that being unloaded on
+ * the fly. Otherwise, kernel crash would be seen.
+ */
+static inline struct pci_driver *eeh_pcid_get(struct pci_dev *pdev)
+{
+	if (!pdev || !pdev->driver)
+		return NULL;
+
+	if (!try_module_get(pdev->driver->driver.owner))
+		return NULL;
+
+	return pdev->driver;
+}
+
+/**
+ * eeh_pcid_put - Dereference on the PCI device driver
+ * @pdev: PCI device
+ *
+ * The function is called to do dereference on the PCI device
+ * driver of the indicated PCI device.
+ */
+static inline void eeh_pcid_put(struct pci_dev *pdev)
+{
+	if (!pdev || !pdev->driver)
+		return;
+
+	module_put(pdev->driver->driver.owner);
+}
+
 #if 0
 static void print_device_node_tree(struct pci_dn *pdn, int dent)
 {
@@ -109,18 +145,20 @@
 static int eeh_report_error(struct pci_dev *dev, void *userdata)
 {
 	enum pci_ers_result rc, *res = userdata;
-	struct pci_driver *driver = dev->driver;
+	struct pci_driver *driver;
 
 	dev->error_state = pci_channel_io_frozen;
 
-	if (!driver)
-		return 0;
+	driver = eeh_pcid_get(dev);
+	if (!driver) return 0;
 
 	eeh_disable_irq(dev);
 
 	if (!driver->err_handler ||
-	    !driver->err_handler->error_detected)
+	    !driver->err_handler->error_detected) {
+		eeh_pcid_put(dev);
 		return 0;
+	}
 
 	rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen);
 
@@ -128,6 +166,7 @@
 	if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
 	if (*res == PCI_ERS_RESULT_NONE) *res = rc;
 
+	eeh_pcid_put(dev);
 	return 0;
 }
 
@@ -142,12 +181,15 @@
 static int eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata)
 {
 	enum pci_ers_result rc, *res = userdata;
-	struct pci_driver *driver = dev->driver;
+	struct pci_driver *driver;
 
-	if (!driver ||
-	    !driver->err_handler ||
-	    !driver->err_handler->mmio_enabled)
+	driver = eeh_pcid_get(dev);
+	if (!driver) return 0;
+	if (!driver->err_handler ||
+	    !driver->err_handler->mmio_enabled) {
+		eeh_pcid_put(dev);
 		return 0;
+	}
 
 	rc = driver->err_handler->mmio_enabled (dev);
 
@@ -155,6 +197,7 @@
 	if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
 	if (*res == PCI_ERS_RESULT_NONE) *res = rc;
 
+	eeh_pcid_put(dev);
 	return 0;
 }
 
@@ -165,18 +208,20 @@
 static int eeh_report_reset(struct pci_dev *dev, void *userdata)
 {
 	enum pci_ers_result rc, *res = userdata;
-	struct pci_driver *driver = dev->driver;
-
-	if (!driver)
-		return 0;
+	struct pci_driver *driver;
 
 	dev->error_state = pci_channel_io_normal;
 
+	driver = eeh_pcid_get(dev);
+	if (!driver) return 0;
+
 	eeh_enable_irq(dev);
 
 	if (!driver->err_handler ||
-	    !driver->err_handler->slot_reset)
+	    !driver->err_handler->slot_reset) {
+		eeh_pcid_put(dev);
 		return 0;
+	}
 
 	rc = driver->err_handler->slot_reset(dev);
 	if ((*res == PCI_ERS_RESULT_NONE) ||
@@ -184,6 +229,7 @@
 	if (*res == PCI_ERS_RESULT_DISCONNECT &&
 	     rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
 
+	eeh_pcid_put(dev);
 	return 0;
 }
 
@@ -193,21 +239,24 @@
 
 static int eeh_report_resume(struct pci_dev *dev, void *userdata)
 {
-	struct pci_driver *driver = dev->driver;
+	struct pci_driver *driver;
 
 	dev->error_state = pci_channel_io_normal;
 
-	if (!driver)
-		return 0;
+	driver = eeh_pcid_get(dev);
+	if (!driver) return 0;
 
 	eeh_enable_irq(dev);
 
 	if (!driver->err_handler ||
-	    !driver->err_handler->resume)
+	    !driver->err_handler->resume) {
+		eeh_pcid_put(dev);
 		return 0;
+	}
 
 	driver->err_handler->resume(dev);
 
+	eeh_pcid_put(dev);
 	return 0;
 }
 
@@ -220,21 +269,24 @@
 
 static int eeh_report_failure(struct pci_dev *dev, void *userdata)
 {
-	struct pci_driver *driver = dev->driver;
+	struct pci_driver *driver;
 
 	dev->error_state = pci_channel_io_perm_failure;
 
-	if (!driver)
-		return 0;
+	driver = eeh_pcid_get(dev);
+	if (!driver) return 0;
 
 	eeh_disable_irq(dev);
 
 	if (!driver->err_handler ||
-	    !driver->err_handler->error_detected)
+	    !driver->err_handler->error_detected) {
+		eeh_pcid_put(dev);
 		return 0;
+	}
 
 	driver->err_handler->error_detected(dev, pci_channel_io_perm_failure);
 
+	eeh_pcid_put(dev);
 	return 0;
 }
 
--- linux-3.2.0.orig/arch/powerpc/platforms/pseries/lpar.c
+++ linux-3.2.0/arch/powerpc/platforms/pseries/lpar.c
@@ -554,6 +554,7 @@
 		goto out;
 
 	(*depth)++;
+	preempt_disable();
 	trace_hcall_entry(opcode, args);
 	(*depth)--;
 
@@ -576,6 +577,7 @@
 
 	(*depth)++;
 	trace_hcall_exit(opcode, retval, retbuf);
+	preempt_enable();
 	(*depth)--;
 
 out:
--- linux-3.2.0.orig/arch/powerpc/platforms/pseries/hvCall_inst.c
+++ linux-3.2.0/arch/powerpc/platforms/pseries/hvCall_inst.c
@@ -109,7 +109,7 @@
 	if (opcode > MAX_HCALL_OPCODE)
 		return;
 
-	h = &get_cpu_var(hcall_stats)[opcode / 4];
+	h = &__get_cpu_var(hcall_stats)[opcode / 4];
 	h->tb_start = mftb();
 	h->purr_start = mfspr(SPRN_PURR);
 }
@@ -126,8 +126,6 @@
 	h->num_calls++;
 	h->tb_total += mftb() - h->tb_start;
 	h->purr_total += mfspr(SPRN_PURR) - h->purr_start;
-
-	put_cpu_var(hcall_stats);
 }
 
 static int __init hcall_inst_init(void)
--- linux-3.2.0.orig/arch/powerpc/platforms/pseries/nvram.c
+++ linux-3.2.0/arch/powerpc/platforms/pseries/nvram.c
@@ -636,7 +636,6 @@
 		/* These are almost always orderly shutdowns. */
 		return;
 	case KMSG_DUMP_OOPS:
-	case KMSG_DUMP_KEXEC:
 		break;
 	case KMSG_DUMP_PANIC:
 		panicking = true;
--- linux-3.2.0.orig/arch/powerpc/platforms/powermac/smp.c
+++ linux-3.2.0/arch/powerpc/platforms/powermac/smp.c
@@ -414,7 +414,7 @@
 
 static void __init smp_psurge_setup_cpu(int cpu_nr)
 {
-	if (cpu_nr != 0)
+	if (cpu_nr != 0 || !psurge_start)
 		return;
 
 	/* reset the entry point so if we get another intr we won't
--- linux-3.2.0.orig/arch/powerpc/xmon/xmon.c
+++ linux-3.2.0/arch/powerpc/xmon/xmon.c
@@ -975,7 +975,7 @@
 		/* print cpus waiting or in xmon */
 		printf("cpus stopped:");
 		count = 0;
-		for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+		for_each_possible_cpu(cpu) {
 			if (cpumask_test_cpu(cpu, &cpus_in_xmon)) {
 				if (count == 0)
 					printf(" %x", cpu);
--- linux-3.2.0.orig/arch/powerpc/kernel/ftrace.c
+++ linux-3.2.0/arch/powerpc/kernel/ftrace.c
@@ -245,9 +245,9 @@
 
 	/*
 	 * On PPC32 the trampoline looks like:
-	 *  0x3d, 0x60, 0x00, 0x00  lis r11,sym@ha
-	 *  0x39, 0x6b, 0x00, 0x00  addi r11,r11,sym@l
-	 *  0x7d, 0x69, 0x03, 0xa6  mtctr r11
+	 *  0x3d, 0x80, 0x00, 0x00  lis r12,sym@ha
+	 *  0x39, 0x8c, 0x00, 0x00  addi r12,r12,sym@l
+	 *  0x7d, 0x89, 0x03, 0xa6  mtctr r12
 	 *  0x4e, 0x80, 0x04, 0x20  bctr
 	 */
 
@@ -262,9 +262,9 @@
 	pr_devel(" %08x %08x ", jmp[0], jmp[1]);
 
 	/* verify that this is what we expect it to be */
-	if (((jmp[0] & 0xffff0000) != 0x3d600000) ||
-	    ((jmp[1] & 0xffff0000) != 0x396b0000) ||
-	    (jmp[2] != 0x7d6903a6) ||
+	if (((jmp[0] & 0xffff0000) != 0x3d800000) ||
+	    ((jmp[1] & 0xffff0000) != 0x398c0000) ||
+	    (jmp[2] != 0x7d8903a6) ||
 	    (jmp[3] != 0x4e800420)) {
 		printk(KERN_ERR "Not a trampoline\n");
 		return -EINVAL;
--- linux-3.2.0.orig/arch/powerpc/kernel/sysfs.c
+++ linux-3.2.0/arch/powerpc/kernel/sysfs.c
@@ -192,6 +192,14 @@
 	return sprintf(buf, "%lx\n", dscr_default);
 }
 
+static void update_dscr(void *dummy)
+{
+	if (!current->thread.dscr_inherit) {
+		current->thread.dscr = dscr_default;
+		mtspr(SPRN_DSCR, dscr_default);
+	}
+}
+
 static ssize_t __used store_dscr_default(struct sysdev_class *class,
 		struct sysdev_class_attribute *attr, const char *buf,
 		size_t count)
@@ -204,6 +212,8 @@
 		return -EINVAL;
 	dscr_default = val;
 
+	on_each_cpu(update_dscr, NULL, 1);
+
 	return count;
 }
 
--- linux-3.2.0.orig/arch/powerpc/kernel/asm-offsets.c
+++ linux-3.2.0/arch/powerpc/kernel/asm-offsets.c
@@ -79,6 +79,7 @@
 	DEFINE(SIGSEGV, SIGSEGV);
 	DEFINE(NMI_MASK, NMI_MASK);
 	DEFINE(THREAD_DSCR, offsetof(struct thread_struct, dscr));
+	DEFINE(THREAD_DSCR_INHERIT, offsetof(struct thread_struct, dscr_inherit));
 #else
 	DEFINE(THREAD_INFO, offsetof(struct task_struct, stack));
 #endif /* CONFIG_PPC64 */
--- linux-3.2.0.orig/arch/powerpc/kernel/module_32.c
+++ linux-3.2.0/arch/powerpc/kernel/module_32.c
@@ -176,8 +176,8 @@
 
 static inline int entry_matches(struct ppc_plt_entry *entry, Elf32_Addr val)
 {
-	if (entry->jump[0] == 0x3d600000 + ((val + 0x8000) >> 16)
-	    && entry->jump[1] == 0x396b0000 + (val & 0xffff))
+	if (entry->jump[0] == 0x3d800000 + ((val + 0x8000) >> 16)
+	    && entry->jump[1] == 0x398c0000 + (val & 0xffff))
 		return 1;
 	return 0;
 }
@@ -204,10 +204,9 @@
 		entry++;
 	}
 
-	/* Stolen from Paul Mackerras as well... */
-	entry->jump[0] = 0x3d600000+((val+0x8000)>>16);	/* lis r11,sym@ha */
-	entry->jump[1] = 0x396b0000 + (val&0xffff);	/* addi r11,r11,sym@l*/
-	entry->jump[2] = 0x7d6903a6;			/* mtctr r11 */
+	entry->jump[0] = 0x3d800000+((val+0x8000)>>16); /* lis r12,sym@ha */
+	entry->jump[1] = 0x398c0000 + (val&0xffff);     /* addi r12,r12,sym@l*/
+	entry->jump[2] = 0x7d8903a6;                    /* mtctr r12 */
 	entry->jump[3] = 0x4e800420;			/* bctr */
 
 	DEBUGP("Initialized plt for 0x%x at %p\n", val, entry);
--- linux-3.2.0.orig/arch/powerpc/kernel/irq.c
+++ linux-3.2.0/arch/powerpc/kernel/irq.c
@@ -164,16 +164,13 @@
 	 */
 	local_paca->hard_enabled = en;
 
-#ifndef CONFIG_BOOKE
-	/* On server, re-trigger the decrementer if it went negative since
-	 * some processors only trigger on edge transitions of the sign bit.
-	 *
-	 * BookE has a level sensitive decrementer (latches in TSR) so we
-	 * don't need that
+	/*
+	 * Trigger the decrementer if we have a pending event. Some processors
+	 * only trigger on edge transitions of the sign bit. We might also
+	 * have disabled interrupts long enough that the decrementer wrapped
+	 * to positive.
 	 */
-	if ((int)mfspr(SPRN_DEC) < 0)
-		mtspr(SPRN_DEC, 1);
-#endif /* CONFIG_BOOKE */
+	decrementer_check_overflow();
 
 	/*
 	 * Force the delivery of pending soft-disabled interrupts on PS3.
--- linux-3.2.0.orig/arch/powerpc/kernel/traps.c
+++ linux-3.2.0/arch/powerpc/kernel/traps.c
@@ -942,8 +942,9 @@
 			cpu_has_feature(CPU_FTR_DSCR)) {
 		PPC_WARN_EMULATED(mtdscr, regs);
 		rd = (instword >> 21) & 0x1f;
-		mtspr(SPRN_DSCR, regs->gpr[rd]);
+		current->thread.dscr = regs->gpr[rd];
 		current->thread.dscr_inherit = 1;
+		mtspr(SPRN_DSCR, current->thread.dscr);
 		return 0;
 	}
 #endif
--- linux-3.2.0.orig/arch/powerpc/kernel/smp.c
+++ linux-3.2.0/arch/powerpc/kernel/smp.c
@@ -214,8 +214,15 @@
 	struct cpu_messages *info = &per_cpu(ipi_message, cpu);
 	char *message = (char *)&info->messages;
 
+	/*
+	 * Order previous accesses before accesses in the IPI handler.
+	 */
+	smp_mb();
 	message[msg] = 1;
-	mb();
+	/*
+	 * cause_ipi functions are required to include a full barrier
+	 * before doing whatever causes the IPI.
+	 */
 	smp_ops->cause_ipi(cpu, info->data);
 }
 
@@ -227,7 +234,7 @@
 	mb();	/* order any irq clear */
 
 	do {
-		all = xchg_local(&info->messages, 0);
+		all = xchg(&info->messages, 0);
 
 #ifdef __BIG_ENDIAN
 		if (all & (1 << (24 - 8 * PPC_MSG_CALL_FUNCTION)))
--- linux-3.2.0.orig/arch/powerpc/kernel/entry_64.S
+++ linux-3.2.0/arch/powerpc/kernel/entry_64.S
@@ -380,6 +380,12 @@
 	li	r3,0
 	b	syscall_exit
 
+	.section	".toc","aw"
+DSCR_DEFAULT:
+	.tc dscr_default[TC],dscr_default
+
+	.section	".text"
+
 /*
  * This routine switches between two different tasks.  The process
  * state of one is saved on its kernel stack.  Then the state
@@ -519,9 +525,6 @@
 	mr	r1,r8		/* start using new stack pointer */
 	std	r7,PACAKSAVE(r13)
 
-	ld	r6,_CCR(r1)
-	mtcrf	0xFF,r6
-
 #ifdef CONFIG_ALTIVEC
 BEGIN_FTR_SECTION
 	ld	r0,THREAD_VRSAVE(r4)
@@ -530,14 +533,22 @@
 #endif /* CONFIG_ALTIVEC */
 #ifdef CONFIG_PPC64
 BEGIN_FTR_SECTION
+	lwz	r6,THREAD_DSCR_INHERIT(r4)
+	ld	r7,DSCR_DEFAULT@toc(2)
 	ld	r0,THREAD_DSCR(r4)
-	cmpd	r0,r25
-	beq	1f
+	cmpwi	r6,0
+	bne	1f
+	ld	r0,0(r7)
+1:	cmpd	r0,r25
+	beq	2f
 	mtspr	SPRN_DSCR,r0
-1:	
+2:
 END_FTR_SECTION_IFSET(CPU_FTR_DSCR)
 #endif
 
+	ld	r6,_CCR(r1)
+	mtcrf	0xFF,r6
+
 	/* r3-r13 are destroyed -- Cort */
 	REST_8GPRS(14, r1)
 	REST_10GPRS(22, r1)
--- linux-3.2.0.orig/arch/powerpc/kernel/time.c
+++ linux-3.2.0/arch/powerpc/kernel/time.c
@@ -168,13 +168,13 @@
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING
 /*
  * Factors for converting from cputime_t (timebase ticks) to
- * jiffies, milliseconds, seconds, and clock_t (1/USER_HZ seconds).
+ * jiffies, microseconds, seconds, and clock_t (1/USER_HZ seconds).
  * These are all stored as 0.64 fixed-point binary fractions.
  */
 u64 __cputime_jiffies_factor;
 EXPORT_SYMBOL(__cputime_jiffies_factor);
-u64 __cputime_msec_factor;
-EXPORT_SYMBOL(__cputime_msec_factor);
+u64 __cputime_usec_factor;
+EXPORT_SYMBOL(__cputime_usec_factor);
 u64 __cputime_sec_factor;
 EXPORT_SYMBOL(__cputime_sec_factor);
 u64 __cputime_clockt_factor;
@@ -192,8 +192,8 @@
 
 	div128_by_32(HZ, 0, tb_ticks_per_sec, &res);
 	__cputime_jiffies_factor = res.result_low;
-	div128_by_32(1000, 0, tb_ticks_per_sec, &res);
-	__cputime_msec_factor = res.result_low;
+	div128_by_32(1000000, 0, tb_ticks_per_sec, &res);
+	__cputime_usec_factor = res.result_low;
 	div128_by_32(1, 0, tb_ticks_per_sec, &res);
 	__cputime_sec_factor = res.result_low;
 	div128_by_32(USER_HZ, 0, tb_ticks_per_sec, &res);
@@ -889,6 +889,15 @@
 	       clock->name, clock->mult, clock->shift);
 }
 
+void decrementer_check_overflow(void)
+{
+	u64 now = get_tb_or_rtc();
+	struct decrementer_clock *decrementer = &__get_cpu_var(decrementers);
+
+	if (now >= decrementer->next_tb)
+		set_dec(1);
+}
+
 static int decrementer_set_next_event(unsigned long evt,
 				      struct clock_event_device *dev)
 {
--- linux-3.2.0.orig/arch/powerpc/kernel/process.c
+++ linux-3.2.0/arch/powerpc/kernel/process.c
@@ -778,16 +778,8 @@
 #endif /* CONFIG_PPC_STD_MMU_64 */
 #ifdef CONFIG_PPC64 
 	if (cpu_has_feature(CPU_FTR_DSCR)) {
-		if (current->thread.dscr_inherit) {
-			p->thread.dscr_inherit = 1;
-			p->thread.dscr = current->thread.dscr;
-		} else if (0 != dscr_default) {
-			p->thread.dscr_inherit = 1;
-			p->thread.dscr = dscr_default;
-		} else {
-			p->thread.dscr_inherit = 0;
-			p->thread.dscr = 0;
-		}
+		p->thread.dscr_inherit = current->thread.dscr_inherit;
+		p->thread.dscr = current->thread.dscr;
 	}
 #endif
 
--- linux-3.2.0.orig/arch/powerpc/kernel/dbell.c
+++ linux-3.2.0/arch/powerpc/kernel/dbell.c
@@ -28,6 +28,8 @@
 
 void doorbell_cause_ipi(int cpu, unsigned long data)
 {
+	/* Order previous accesses vs. msgsnd, which is treated as a store */
+	mb();
 	ppc_msgsnd(PPC_DBELL, 0, data);
 }
 
--- linux-3.2.0.orig/arch/powerpc/kernel/perf_event.c
+++ linux-3.2.0/arch/powerpc/kernel/perf_event.c
@@ -865,6 +865,7 @@
 {
 	unsigned long flags;
 	s64 left;
+	unsigned long val;
 
 	if (!event->hw.idx || !event->hw.sample_period)
 		return;
@@ -880,7 +881,12 @@
 
 	event->hw.state = 0;
 	left = local64_read(&event->hw.period_left);
-	write_pmc(event->hw.idx, left);
+
+	val = 0;
+	if (left < 0x80000000L)
+		val = 0x80000000L - left;
+
+	write_pmc(event->hw.idx, val);
 
 	perf_event_update_userpage(event);
 	perf_pmu_enable(event->pmu);
--- linux-3.2.0.orig/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ linux-3.2.0/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -763,7 +763,7 @@
 	lwz	r3,VCORE_NAPPING_THREADS(r5)
 	lwz	r4,VCPU_PTID(r9)
 	li	r0,1
-	sldi	r0,r0,r4
+	sld	r0,r0,r4
 	andc.	r3,r3,r0		/* no sense IPI'ing ourselves */
 	beq	43f
 	mulli	r4,r4,PACA_SIZE		/* get paca for thread 0 */
--- linux-3.2.0.orig/arch/powerpc/sysdev/xics/icp-hv.c
+++ linux-3.2.0/arch/powerpc/sysdev/xics/icp-hv.c
@@ -27,33 +27,53 @@
 {
 	unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
 	long rc;
+	unsigned int ret = XICS_IRQ_SPURIOUS;
 
 	rc = plpar_hcall(H_XIRR, retbuf, cppr);
-	if (rc != H_SUCCESS)
-		panic(" bad return code xirr - rc = %lx\n", rc);
-	return (unsigned int)retbuf[0];
+	if (rc == H_SUCCESS) {
+		ret = (unsigned int)retbuf[0];
+	} else {
+		pr_err("%s: bad return code xirr cppr=0x%x returned %ld\n",
+			__func__, cppr, rc);
+		WARN_ON_ONCE(1);
+	}
+
+	return ret;
 }
 
 static inline void icp_hv_set_xirr(unsigned int value)
 {
 	long rc = plpar_hcall_norets(H_EOI, value);
-	if (rc != H_SUCCESS)
-		panic("bad return code EOI - rc = %ld, value=%x\n", rc, value);
+	if (rc != H_SUCCESS) {
+		pr_err("%s: bad return code eoi xirr=0x%x returned %ld\n",
+			__func__, value, rc);
+		WARN_ON_ONCE(1);
+	}
 }
 
 static inline void icp_hv_set_cppr(u8 value)
 {
 	long rc = plpar_hcall_norets(H_CPPR, value);
-	if (rc != H_SUCCESS)
-		panic("bad return code cppr - rc = %lx\n", rc);
+	if (rc != H_SUCCESS) {
+		pr_err("%s: bad return code cppr cppr=0x%x returned %ld\n",
+			__func__, value, rc);
+		WARN_ON_ONCE(1);
+	}
 }
 
 static inline void icp_hv_set_qirr(int n_cpu , u8 value)
 {
-	long rc = plpar_hcall_norets(H_IPI, get_hard_smp_processor_id(n_cpu),
-				     value);
-	if (rc != H_SUCCESS)
-		panic("bad return code qirr - rc = %lx\n", rc);
+	int hw_cpu = get_hard_smp_processor_id(n_cpu);
+	long rc;
+
+	/* Make sure all previous accesses are ordered before IPI sending */
+	mb();
+	rc = plpar_hcall_norets(H_IPI, hw_cpu, value);
+	if (rc != H_SUCCESS) {
+		pr_err("%s: bad return code qirr cpu=%d hw_cpu=%d mfrr=0x%x "
+			"returned %ld\n", __func__, n_cpu, hw_cpu, value, rc);
+		WARN_ON_ONCE(1);
+	}
 }
 
 static void icp_hv_eoi(struct irq_data *d)
--- linux-3.2.0.orig/arch/tile/Kconfig
+++ linux-3.2.0/arch/tile/Kconfig
@@ -11,8 +11,9 @@
 	select GENERIC_IRQ_PROBE
 	select GENERIC_PENDING_IRQ if SMP
 	select GENERIC_IRQ_SHOW
+	select HAVE_SYSCALL_WRAPPERS if TILEGX
 	select SYS_HYPERVISOR
-	select ARCH_HAVE_NMI_SAFE_CMPXCHG if !M386
+	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 
 # FIXME: investigate whether we need/want these options.
 #	select HAVE_IOREMAP_PROT
--- linux-3.2.0.orig/arch/tile/Makefile
+++ linux-3.2.0/arch/tile/Makefile
@@ -26,6 +26,10 @@
   endif
 endif
 
+# The tile compiler may emit .eh_frame information for backtracing.
+# In kernel modules, this causes load failures due to unsupported relocations.
+KBUILD_CFLAGS   += -fno-asynchronous-unwind-tables
+
 ifneq ($(CONFIG_DEBUG_EXTRA_FLAGS),"")
 KBUILD_CFLAGS   += $(CONFIG_DEBUG_EXTRA_FLAGS)
 endif
--- linux-3.2.0.orig/arch/tile/include/asm/bitops.h
+++ linux-3.2.0/arch/tile/include/asm/bitops.h
@@ -77,6 +77,11 @@
 	return __builtin_ffs(x);
 }
 
+static inline int fls64(__u64 w)
+{
+	return (sizeof(__u64) * 8) - __builtin_clzll(w);
+}
+
 /**
  * fls - find last set bit in word
  * @x: the word to search
@@ -90,12 +95,7 @@
  */
 static inline int fls(int x)
 {
-	return (sizeof(int) * 8) - __builtin_clz(x);
-}
-
-static inline int fls64(__u64 w)
-{
-	return (sizeof(__u64) * 8) - __builtin_clzll(w);
+	return fls64((unsigned int) x);
 }
 
 static inline unsigned int __arch_hweight32(unsigned int w)
--- linux-3.2.0.orig/arch/tile/kernel/compat_signal.c
+++ linux-3.2.0/arch/tile/kernel/compat_signal.c
@@ -406,19 +406,17 @@
 	 * Set up registers for signal handler.
 	 * Registers that we don't modify keep the value they had from
 	 * user-space at the time we took the signal.
+	 * We always pass siginfo and mcontext, regardless of SA_SIGINFO,
+	 * since some things rely on this (e.g. glibc's debug/segfault.c).
 	 */
 	regs->pc = ptr_to_compat_reg(ka->sa.sa_handler);
 	regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
 	regs->sp = ptr_to_compat_reg(frame);
 	regs->lr = restorer;
 	regs->regs[0] = (unsigned long) usig;
-
-	if (ka->sa.sa_flags & SA_SIGINFO) {
-		/* Need extra arguments, so mark to restore caller-saves. */
-		regs->regs[1] = ptr_to_compat_reg(&frame->info);
-		regs->regs[2] = ptr_to_compat_reg(&frame->uc);
-		regs->flags |= PT_FLAGS_CALLER_SAVES;
-	}
+	regs->regs[1] = ptr_to_compat_reg(&frame->info);
+	regs->regs[2] = ptr_to_compat_reg(&frame->uc);
+	regs->flags |= PT_FLAGS_CALLER_SAVES;
 
 	/*
 	 * Notify any tracer that was single-stepping it.
--- 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/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/parisc/include/asm/prefetch.h
+++ linux-3.2.0/arch/parisc/include/asm/prefetch.h
@@ -21,7 +21,12 @@
 #define ARCH_HAS_PREFETCH
 static inline void prefetch(const void *addr)
 {
-	__asm__("ldw 0(%0), %%r0" : : "r" (addr));
+	__asm__(
+#ifndef CONFIG_PA20
+		/* Need to avoid prefetch of NULL on PA7300LC */
+		"	extrw,u,= %0,31,32,%%r0\n"
+#endif
+		"	ldw 0(%0), %%r0" : : "r" (addr));
 }
 
 /* LDD is a PA2.0 addition. */
--- linux-3.2.0.orig/arch/parisc/include/asm/atomic.h
+++ linux-3.2.0/arch/parisc/include/asm/atomic.h
@@ -247,7 +247,7 @@
 
 #define atomic_sub_and_test(i,v)	(atomic_sub_return((i),(v)) == 0)
 
-#define ATOMIC_INIT(i)	((atomic_t) { (i) })
+#define ATOMIC_INIT(i)	{ (i) }
 
 #define smp_mb__before_atomic_dec()	smp_mb()
 #define smp_mb__after_atomic_dec()	smp_mb()
@@ -256,7 +256,7 @@
 
 #ifdef CONFIG_64BIT
 
-#define ATOMIC64_INIT(i) ((atomic64_t) { (i) })
+#define ATOMIC64_INIT(i) { (i) }
 
 static __inline__ s64
 __atomic64_add_return(s64 i, atomic64_t *v)
--- linux-3.2.0.orig/arch/parisc/kernel/vmlinux.lds.S
+++ linux-3.2.0/arch/parisc/kernel/vmlinux.lds.S
@@ -50,8 +50,10 @@
 	. = KERNEL_BINARY_TEXT_START;
 
 	_text = .;		/* Text and read-only data */
-	.text ALIGN(16) : {
+	.head ALIGN(16) : {
 		HEAD_TEXT
+	} = 0
+	.text ALIGN(16) : {
 		TEXT_TEXT
 		SCHED_TEXT
 		LOCK_TEXT
@@ -65,7 +67,7 @@
 		*(.fixup)
 		*(.lock.text)		/* out-of-line lock text */
 		*(.gnu.warning)
-	} = 0
+	}
 	/* End of text section */
 	_etext = .;
 
--- linux-3.2.0.orig/arch/parisc/kernel/pacache.S
+++ linux-3.2.0/arch/parisc/kernel/pacache.S
@@ -692,7 +692,7 @@
 
 	/* Purge any old translation */
 
-	pitlb		(%sr0,%r28)
+	pitlb		(%sr4,%r28)
 
 	ldil		L%icache_stride, %r1
 	ldw		R%icache_stride(%r1), %r1
@@ -706,27 +706,29 @@
 	sub		%r25, %r1, %r25
 
 
-1:      fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
-	fic,m		%r1(%r28)
+	/* fic only has the type 26 form on PA1.1, requiring an
+	 * explicit space specification, so use %sr4 */
+1:      fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
+	fic,m		%r1(%sr4,%r28)
 	cmpb,COND(<<)		%r28, %r25,1b
-	fic,m		%r1(%r28)
+	fic,m		%r1(%sr4,%r28)
 
 	sync
 	bv		%r0(%r2)
-	pitlb		(%sr0,%r25)
+	pitlb		(%sr4,%r25)
 	.exit
 
 	.procend
--- linux-3.2.0.orig/arch/parisc/kernel/sys_parisc.c
+++ linux-3.2.0/arch/parisc/kernel/sys_parisc.c
@@ -73,6 +73,8 @@
 	struct vm_area_struct *vma;
 	int offset = mapping ? get_offset(mapping) : 0;
 
+	offset = (offset + (pgoff << PAGE_SHIFT)) & 0x3FF000;
+
 	addr = DCACHE_ALIGN(addr - offset) + offset;
 
 	for (vma = find_vma(current->mm, addr); ; vma = vma->vm_next) {
--- linux-3.2.0.orig/arch/parisc/kernel/signal32.c
+++ linux-3.2.0/arch/parisc/kernel/signal32.c
@@ -67,7 +67,8 @@
 {
 	compat_sigset_t s;
 
-	if (sz != sizeof *set) panic("put_sigset32()");
+	if (sz != sizeof *set)
+		return -EINVAL;
 	sigset_64to32(&s, set);
 
 	return copy_to_user(up, &s, sizeof s);
@@ -79,7 +80,8 @@
 	compat_sigset_t s;
 	int r;
 
-	if (sz != sizeof *set) panic("put_sigset32()");
+	if (sz != sizeof *set)
+		return -EINVAL;
 
 	if ((r = copy_from_user(&s, up, sz)) == 0) {
 		sigset_32to64(set, &s);
--- linux-3.2.0.orig/arch/parisc/kernel/entry.S
+++ linux-3.2.0/arch/parisc/kernel/entry.S
@@ -552,7 +552,7 @@
 	 * entry (identifying the physical page) and %r23 up with
 	 * the from tlb entry (or nothing if only a to entry---for
 	 * clear_user_page_asm) */
-	.macro		do_alias	spc,tmp,tmp1,va,pte,prot,fault
+	.macro		do_alias	spc,tmp,tmp1,va,pte,prot,fault,patype
 	cmpib,COND(<>),n 0,\spc,\fault
 	ldil		L%(TMPALIAS_MAP_START),\tmp
 #if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000)
@@ -581,7 +581,15 @@
 	 */
 	cmpiclr,=	0x01,\tmp,%r0
 	ldi		(_PAGE_DIRTY|_PAGE_READ|_PAGE_WRITE),\prot
+.ifc \patype,20
 	depd,z		\prot,8,7,\prot
+.else
+.ifc \patype,11
+	depw,z		\prot,8,7,\prot
+.else
+	.error "undefined PA type to do_alias"
+.endif
+.endif
 	/*
 	 * OK, it is in the temp alias region, check whether "from" or "to".
 	 * Check "subtle" note in pacache.S re: r23/r26.
@@ -1185,7 +1193,7 @@
 	nop
 
 dtlb_check_alias_20w:
-	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,20
 
 	idtlbt          pte,prot
 
@@ -1209,7 +1217,7 @@
 	nop
 
 nadtlb_check_alias_20w:
-	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,20
 
 	idtlbt          pte,prot
 
@@ -1241,7 +1249,7 @@
 	nop
 
 dtlb_check_alias_11:
-	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,11
 
 	idtlba          pte,(va)
 	idtlbp          prot,(va)
@@ -1273,7 +1281,7 @@
 	nop
 
 nadtlb_check_alias_11:
-	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,11
 
 	idtlba          pte,(va)
 	idtlbp          prot,(va)
@@ -1300,7 +1308,7 @@
 	nop
 
 dtlb_check_alias_20:
-	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,20
 	
 	idtlbt          pte,prot
 
@@ -1326,7 +1334,7 @@
 	nop
 
 nadtlb_check_alias_20:
-	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,20
 
 	idtlbt          pte,prot
 
@@ -1453,7 +1461,7 @@
 	nop
 
 naitlb_check_alias_20w:
-	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault,20
 
 	iitlbt		pte,prot
 
@@ -1507,7 +1515,7 @@
 	nop
 
 naitlb_check_alias_11:
-	do_alias	spc,t0,t1,va,pte,prot,itlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,itlb_fault,11
 
 	iitlba          pte,(%sr0, va)
 	iitlbp          prot,(%sr0, va)
@@ -1553,7 +1561,7 @@
 	nop
 
 naitlb_check_alias_20:
-	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault
+	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault,20
 
 	iitlbt          pte,prot
 
--- 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/mm/init_64.c
+++ linux-3.2.0/arch/sparc/mm/init_64.c
@@ -2118,6 +2118,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 +2151,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/ultra.S
+++ linux-3.2.0/arch/sparc/mm/ultra.S
@@ -495,11 +495,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
--- 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/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/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/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/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/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/um/include/asm/pgtable.h
+++ linux-3.2.0/arch/um/include/asm/pgtable.h
@@ -271,6 +271,12 @@
 }
 #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
 
+#define __HAVE_ARCH_PTE_SAME
+static inline int pte_same(pte_t pte_a, pte_t pte_b)
+{
+	return !((pte_val(pte_a) ^ pte_val(pte_b)) & ~_PAGE_NEWPAGE);
+}
+
 /*
  * Conversion functions: convert a page and protection to a page entry,
  * and a page entry and page directory to the page they refer to.
@@ -346,11 +352,11 @@
 #define update_mmu_cache(vma,address,ptep) do ; while (0)
 
 /* Encode and de-code a swap entry */
-#define __swp_type(x)			(((x).val >> 4) & 0x3f)
+#define __swp_type(x)			(((x).val >> 5) & 0x1f)
 #define __swp_offset(x)			((x).val >> 11)
 
 #define __swp_entry(type, offset) \
-	((swp_entry_t) { ((type) << 4) | ((offset) << 11) })
+	((swp_entry_t) { ((type) << 5) | ((offset) << 11) })
 #define __pte_to_swp_entry(pte) \
 	((swp_entry_t) { pte_val(pte_mkuptodate(pte)) })
 #define __swp_entry_to_pte(x)		((pte_t) { (x).val })
--- 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 <linux/init.h>
+#include <bcm63xx_cpu.h>
 
 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 <asm/asm-offsets.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 #include <asm-generic/vmlinux.lds.h>
 
 #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/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/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/mach-mxs/system.c
+++ linux-3.2.0/arch/arm/mach-mxs/system.c
@@ -53,7 +53,7 @@
 	mdelay(50);
 
 	/* We'll take a jump through zero as a poor second */
-	cpu_reset(0);
+	soft_restart(0);
 }
 
 static int __init mxs_arch_reset_init(void)
--- linux-3.2.0.orig/arch/arm/boot/compressed/head.S
+++ linux-3.2.0/arch/arm/boot/compressed/head.S
@@ -273,7 +273,7 @@
 		add	r0, r0, #0x100
 		mov	r1, r6
 		sub	r2, sp, r6
-		blne	atags_to_fdt
+		bleq	atags_to_fdt
 
 		ldmfd	sp!, {r0-r3, ip, lr}
 		sub	sp, sp, #0x10000
@@ -648,6 +648,7 @@
 		mcrne	p15, 0, r0, c8, c7, 0	@ flush I,D TLBs
 #endif
 		mrc	p15, 0, r0, c1, c0, 0	@ read control reg
+		bic	r0, r0, #1 << 28	@ clear SCTLR.TRE
 		orr	r0, r0, #0x5000		@ I-cache enable, RR cache replacement
 		orr	r0, r0, #0x003c		@ write buffer
 #ifdef CONFIG_MMU
--- linux-3.2.0.orig/arch/arm/boot/dts/imx51-babbage.dts
+++ linux-3.2.0/arch/arm/boot/dts/imx51-babbage.dts
@@ -29,8 +29,8 @@
 		aips@70000000 { /* aips-1 */
 			spba@70000000 {
 				esdhc@70004000 { /* ESDHC1 */
-					fsl,cd-internal;
-					fsl,wp-internal;
+					fsl,cd-controller;
+					fsl,wp-controller;
 					status = "okay";
 				};
 
--- linux-3.2.0.orig/arch/arm/boot/dts/highbank.dts
+++ linux-3.2.0/arch/arm/boot/dts/highbank.dts
@@ -119,12 +119,22 @@
 			interrupts = <0 90 4>;
 		};
 
+		memory-controller@fff00000 {
+			compatible = "calxeda,hb-ddr-ctrl";
+			reg = <0xfff00000 0x1000>;
+			interrupts = <0 91 4>;
+		};
+
 		ipc@fff20000 {
 			compatible = "arm,pl320", "arm,primecell";
 			reg = <0xfff20000 0x1000>;
 			interrupts = <0 7 4>;
 		};
 
+		ipc-keys {
+			compatible = "calxeda,hb-keys";
+		};
+
 		gpioe: gpio@fff30000 {
 			#gpio-cells = <2>;
 			compatible = "arm,pl061", "arm,primecell";
@@ -189,10 +199,28 @@
 			reg = <0xfff3c000 0x1000>;
 		};
 
+		sregs@fff3c200 {
+			compatible = "calxeda,hb-sregs-l2-ecc";
+			reg = <0xfff3c200 0x100>;
+			interrupts = <0 71 4  0 72 4>;
+		};
+
 		dma@fff3d000 {
 			compatible = "arm,pl330", "arm,primecell";
 			reg = <0xfff3d000 0x1000>;
 			interrupts = <0 92 4>;
 		};
+
+		ethernet@fff50000 {
+			compatible = "calxeda,hb-xgmac";
+			reg = <0xfff50000 0x1000>;
+			interrupts = <0 77 4  0 78 4  0 79 4>;
+		};
+
+		ethernet@fff51000 {
+			compatible = "calxeda,hb-xgmac";
+			reg = <0xfff51000 0x1000>;
+			interrupts = <0 80 4  0 81 4  0 82 4>;
+		};
 	};
 };
--- linux-3.2.0.orig/arch/arm/plat-orion/common.c
+++ linux-3.2.0/arch/arm/plat-orion/common.c
@@ -263,10 +263,12 @@
 			    unsigned long mapbase,
 			    unsigned long irq,
 			    unsigned long irq_err,
-			    int tclk)
+			    int tclk,
+			    unsigned int tx_csum_limit)
 {
 	fill_resources(&orion_ge00_shared, orion_ge00_shared_resources,
 		       mapbase + 0x2000, SZ_16K - 1, irq_err);
+	orion_ge00_shared_data.tx_csum_limit = tx_csum_limit;
 	ge_complete(&orion_ge00_shared_data, mbus_dram_info, tclk,
 		    orion_ge00_resources, irq, &orion_ge00_shared,
 		    eth_data, &orion_ge00);
@@ -317,10 +319,12 @@
 			    unsigned long mapbase,
 			    unsigned long irq,
 			    unsigned long irq_err,
-			    int tclk)
+			    int tclk,
+			    unsigned int tx_csum_limit)
 {
 	fill_resources(&orion_ge01_shared, orion_ge01_shared_resources,
 		       mapbase + 0x2000, SZ_16K - 1, irq_err);
+	orion_ge01_shared_data.tx_csum_limit = tx_csum_limit;
 	ge_complete(&orion_ge01_shared_data, mbus_dram_info, tclk,
 		    orion_ge01_resources, irq, &orion_ge01_shared,
 		    eth_data, &orion_ge01);
@@ -806,10 +810,7 @@
 /*****************************************************************************
  * EHCI
  ****************************************************************************/
-static struct orion_ehci_data orion_ehci_data = {
-	.phy_version	= EHCI_PHY_NA,
-};
-
+static struct orion_ehci_data orion_ehci_data;
 static u64 ehci_dmamask = DMA_BIT_MASK(32);
 
 
@@ -830,9 +831,11 @@
 
 void __init orion_ehci_init(struct mbus_dram_target_info *mbus_dram_info,
 			    unsigned long mapbase,
-			    unsigned long irq)
+			    unsigned long irq,
+			    enum orion_ehci_phy_ver phy_version)
 {
 	orion_ehci_data.dram = mbus_dram_info;
+	orion_ehci_data.phy_version = phy_version;
 	fill_resources(&orion_ehci, orion_ehci_resources, mapbase, SZ_4K - 1,
 		       irq);
 
--- linux-3.2.0.orig/arch/arm/plat-orion/mpp.c
+++ linux-3.2.0/arch/arm/plat-orion/mpp.c
@@ -64,8 +64,7 @@
 			gpio_mode |= GPIO_INPUT_OK;
 		if (*mpp_list & MPP_OUTPUT_MASK)
 			gpio_mode |= GPIO_OUTPUT_OK;
-		if (sel != 0)
-			gpio_mode = 0;
+
 		orion_gpio_set_valid(num, gpio_mode);
 	}
 
--- linux-3.2.0.orig/arch/arm/plat-orion/time.c
+++ linux-3.2.0/arch/arm/plat-orion/time.c
@@ -12,7 +12,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/sched.h>
 #include <linux/timer.h>
 #include <linux/clockchips.h>
 #include <linux/interrupt.h>
@@ -60,24 +59,10 @@
  * Orion's sched_clock implementation. It has a resolution of
  * at least 7.5ns (133MHz TCLK).
  */
-static DEFINE_CLOCK_DATA(cd);
 
-unsigned long long notrace sched_clock(void)
+static u32 notrace orion_read_sched_clock(void)
 {
-	u32 cyc = ~readl(timer_base + TIMER0_VAL_OFF);
-	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
-}
-
-
-static void notrace orion_update_sched_clock(void)
-{
-	u32 cyc = ~readl(timer_base + TIMER0_VAL_OFF);
-	update_sched_clock(&cd, cyc, (u32)~0);
-}
-
-static void __init setup_sched_clock(unsigned long tclk)
-{
-	init_sched_clock(&cd, orion_update_sched_clock, 32, tclk);
+	return ~readl(timer_base + TIMER0_VAL_OFF);
 }
 
 /*
@@ -217,7 +202,7 @@
 	/*
 	 * Set scale and timer for sched_clock.
 	 */
-	setup_sched_clock(tclk);
+	setup_sched_clock(orion_read_sched_clock, 32, tclk);
 
 	/*
 	 * Setup free-running clocksource timer (interrupts
--- linux-3.2.0.orig/arch/arm/plat-orion/include/plat/common.h
+++ linux-3.2.0/arch/arm/plat-orion/include/plat/common.h
@@ -41,14 +41,16 @@
 			    unsigned long mapbase,
 			    unsigned long irq,
 			    unsigned long irq_err,
-			    int tclk);
+			    int tclk,
+			    unsigned int tx_csum_limit);
 
 void __init orion_ge01_init(struct mv643xx_eth_platform_data *eth_data,
 			    struct mbus_dram_target_info *mbus_dram_info,
 			    unsigned long mapbase,
 			    unsigned long irq,
 			    unsigned long irq_err,
-			    int tclk);
+			    int tclk,
+			    unsigned int tx_csum_limit);
 
 void __init orion_ge10_init(struct mv643xx_eth_platform_data *eth_data,
 			    struct mbus_dram_target_info *mbus_dram_info,
@@ -95,7 +97,8 @@
 
 void __init orion_ehci_init(struct mbus_dram_target_info *mbus_dram_info,
 			    unsigned long mapbase,
-			    unsigned long irq);
+			    unsigned long irq,
+			    enum orion_ehci_phy_ver phy_version);
 
 void __init orion_ehci_1_init(struct mbus_dram_target_info *mbus_dram_info,
 			      unsigned long mapbase,
--- 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/common/timer-sp.c
+++ linux-3.2.0/arch/arm/common/timer-sp.c
@@ -26,6 +26,7 @@
 #include <linux/irq.h>
 #include <linux/io.h>
 
+#include <asm/sched_clock.h>
 #include <asm/hardware/arm_timer.h>
 
 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/mach-iop32x/include/mach/system.h
+++ linux-3.2.0/arch/arm/mach-iop32x/include/mach/system.h
@@ -30,5 +30,5 @@
 	*IOP3XX_PCSR = 0x30;
 
 	/* Jump into ROM at address 0 */
-	cpu_reset(0);
+	soft_restart(0);
 }
--- 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/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/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/highbank.c
+++ linux-3.2.0/arch/arm/mach-highbank/highbank.c
@@ -15,6 +15,7 @@
  */
 #include <linux/clk.h>
 #include <linux/clkdev.h>
+#include <linux/input.h>
 #include <linux/io.h>
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
@@ -22,10 +23,10 @@
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
 #include <linux/of_address.h>
+#include <linux/reboot.h>
 #include <linux/smp.h>
 
 #include <asm/cacheflush.h>
-#include <asm/unified.h>
 #include <asm/smp_scu.h>
 #include <asm/hardware/arm_timer.h>
 #include <asm/hardware/timer-sp.h>
@@ -35,6 +36,7 @@
 #include <asm/mach/map.h>
 #include <asm/mach/time.h>
 #include <mach/irqs.h>
+#include <mach/pl320-ipc.h>
 
 #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/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 <http://www.gnu.org/licenses/>.
+ */
+#include <linux/types.h>
+#include <linux/err.h>
+#include <linux/delay.h>
+#include <linux/export.h>
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include <linux/completion.h>
+#include <linux/mutex.h>
+#include <linux/notifier.h>
+#include <linux/spinlock.h>
+#include <linux/device.h>
+#include <linux/amba/bus.h>
+
+#include <mach/pl320-ipc.h>
+
+#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/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 <santosh.shilimkar@ti.com>
+ *
+ *
+ * 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 <linux/linkage.h>
+
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+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-mv78xx0/common.c
+++ linux-3.2.0/arch/arm/mach-mv78xx0/common.c
@@ -20,6 +20,7 @@
 #include <mach/mv78xx0.h>
 #include <mach/bridge-regs.h>
 #include <plat/cache-feroceon-l2.h>
+#include <plat/ehci-orion.h>
 #include <plat/orion_nand.h>
 #include <plat/time.h>
 #include <plat/common.h>
@@ -170,7 +171,7 @@
 void __init mv78xx0_ehci0_init(void)
 {
 	orion_ehci_init(&mv78xx0_mbus_dram_info,
-			USB0_PHYS_BASE, IRQ_MV78XX0_USB_0);
+			USB0_PHYS_BASE, IRQ_MV78XX0_USB_0, EHCI_PHY_NA);
 }
 
 
@@ -201,7 +202,8 @@
 {
 	orion_ge00_init(eth_data, &mv78xx0_mbus_dram_info,
 			GE00_PHYS_BASE, IRQ_MV78XX0_GE00_SUM,
-			IRQ_MV78XX0_GE_ERR, get_tclk());
+			IRQ_MV78XX0_GE_ERR, get_tclk(),
+			MV643XX_TX_CSUM_DEFAULT_LIMIT);
 }
 
 
@@ -212,7 +214,8 @@
 {
 	orion_ge01_init(eth_data, &mv78xx0_mbus_dram_info,
 			GE01_PHYS_BASE, IRQ_MV78XX0_GE01_SUM,
-			NO_IRQ, get_tclk());
+			NO_IRQ, get_tclk(),
+			MV643XX_TX_CSUM_DEFAULT_LIMIT);
 }
 
 
--- linux-3.2.0.orig/arch/arm/mach-mv78xx0/mpp.h
+++ linux-3.2.0/arch/arm/mach-mv78xx0/mpp.h
@@ -24,296 +24,296 @@
 #define MPP_78100_A0_MASK    MPP(0, 0x0, 0, 0, 1)
 
 #define MPP0_GPIO        MPP(0, 0x0, 1, 1, 1)
-#define MPP0_GE0_COL        MPP(0, 0x1, 1, 0, 1)
-#define MPP0_GE1_TXCLK        MPP(0, 0x2, 0, 1, 1)
+#define MPP0_GE0_COL        MPP(0, 0x1, 0, 0, 1)
+#define MPP0_GE1_TXCLK        MPP(0, 0x2, 0, 0, 1)
 #define MPP0_UNUSED        MPP(0, 0x3, 0, 0, 1)
 
 #define MPP1_GPIO        MPP(1, 0x0, 1, 1, 1)
-#define MPP1_GE0_RXERR        MPP(1, 0x1, 1, 0, 1)
-#define MPP1_GE1_TXCTL        MPP(1, 0x2, 0, 1, 1)
+#define MPP1_GE0_RXERR        MPP(1, 0x1, 0, 0, 1)
+#define MPP1_GE1_TXCTL        MPP(1, 0x2, 0, 0, 1)
 #define MPP1_UNUSED        MPP(1, 0x3, 0, 0, 1)
 
 #define MPP2_GPIO        MPP(2, 0x0, 1, 1, 1)
-#define MPP2_GE0_CRS        MPP(2, 0x1, 1, 0, 1)
-#define MPP2_GE1_RXCTL        MPP(2, 0x2, 1, 0, 1)
+#define MPP2_GE0_CRS        MPP(2, 0x1, 0, 0, 1)
+#define MPP2_GE1_RXCTL        MPP(2, 0x2, 0, 0, 1)
 #define MPP2_UNUSED        MPP(2, 0x3, 0, 0, 1)
 
 #define MPP3_GPIO        MPP(3, 0x0, 1, 1, 1)
-#define MPP3_GE0_TXERR        MPP(3, 0x1, 0, 1, 1)
-#define MPP3_GE1_RXCLK        MPP(3, 0x2, 1, 0, 1)
+#define MPP3_GE0_TXERR        MPP(3, 0x1, 0, 0, 1)
+#define MPP3_GE1_RXCLK        MPP(3, 0x2, 0, 0, 1)
 #define MPP3_UNUSED        MPP(3, 0x3, 0, 0, 1)
 
 #define MPP4_GPIO        MPP(4, 0x0, 1, 1, 1)
-#define MPP4_GE0_TXD4        MPP(4, 0x1, 0, 1, 1)
-#define MPP4_GE1_TXD0        MPP(4, 0x2, 0, 1, 1)
+#define MPP4_GE0_TXD4        MPP(4, 0x1, 0, 0, 1)
+#define MPP4_GE1_TXD0        MPP(4, 0x2, 0, 0, 1)
 #define MPP4_UNUSED        MPP(4, 0x3, 0, 0, 1)
 
 #define MPP5_GPIO        MPP(5, 0x0, 1, 1, 1)
-#define MPP5_GE0_TXD5        MPP(5, 0x1, 0, 1, 1)
-#define MPP5_GE1_TXD1        MPP(5, 0x2, 0, 1, 1)
+#define MPP5_GE0_TXD5        MPP(5, 0x1, 0, 0, 1)
+#define MPP5_GE1_TXD1        MPP(5, 0x2, 0, 0, 1)
 #define MPP5_UNUSED        MPP(5, 0x3, 0, 0, 1)
 
 #define MPP6_GPIO        MPP(6, 0x0, 1, 1, 1)
-#define MPP6_GE0_TXD6        MPP(6, 0x1, 0, 1, 1)
-#define MPP6_GE1_TXD2        MPP(6, 0x2, 0, 1, 1)
+#define MPP6_GE0_TXD6        MPP(6, 0x1, 0, 0, 1)
+#define MPP6_GE1_TXD2        MPP(6, 0x2, 0, 0, 1)
 #define MPP6_UNUSED        MPP(6, 0x3, 0, 0, 1)
 
 #define MPP7_GPIO        MPP(7, 0x0, 1, 1, 1)
-#define MPP7_GE0_TXD7        MPP(7, 0x1, 0, 1, 1)
-#define MPP7_GE1_TXD3        MPP(7, 0x2, 0, 1, 1)
+#define MPP7_GE0_TXD7        MPP(7, 0x1, 0, 0, 1)
+#define MPP7_GE1_TXD3        MPP(7, 0x2, 0, 0, 1)
 #define MPP7_UNUSED        MPP(7, 0x3, 0, 0, 1)
 
 #define MPP8_GPIO        MPP(8, 0x0, 1, 1, 1)
-#define MPP8_GE0_RXD4        MPP(8, 0x1, 1, 0, 1)
-#define MPP8_GE1_RXD0        MPP(8, 0x2, 1, 0, 1)
+#define MPP8_GE0_RXD4        MPP(8, 0x1, 0, 0, 1)
+#define MPP8_GE1_RXD0        MPP(8, 0x2, 0, 0, 1)
 #define MPP8_UNUSED        MPP(8, 0x3, 0, 0, 1)
 
 #define MPP9_GPIO        MPP(9, 0x0, 1, 1, 1)
-#define MPP9_GE0_RXD5        MPP(9, 0x1, 1, 0, 1)
-#define MPP9_GE1_RXD1        MPP(9, 0x2, 1, 0, 1)
+#define MPP9_GE0_RXD5        MPP(9, 0x1, 0, 0, 1)
+#define MPP9_GE1_RXD1        MPP(9, 0x2, 0, 0, 1)
 #define MPP9_UNUSED        MPP(9, 0x3, 0, 0, 1)
 
 #define MPP10_GPIO        MPP(10, 0x0, 1, 1, 1)
-#define MPP10_GE0_RXD6        MPP(10, 0x1, 1, 0, 1)
-#define MPP10_GE1_RXD2        MPP(10, 0x2, 1, 0, 1)
+#define MPP10_GE0_RXD6        MPP(10, 0x1, 0, 0, 1)
+#define MPP10_GE1_RXD2        MPP(10, 0x2, 0, 0, 1)
 #define MPP10_UNUSED        MPP(10, 0x3, 0, 0, 1)
 
 #define MPP11_GPIO        MPP(11, 0x0, 1, 1, 1)
-#define MPP11_GE0_RXD7        MPP(11, 0x1, 1, 0, 1)
-#define MPP11_GE1_RXD3        MPP(11, 0x2, 1, 0, 1)
+#define MPP11_GE0_RXD7        MPP(11, 0x1, 0, 0, 1)
+#define MPP11_GE1_RXD3        MPP(11, 0x2, 0, 0, 1)
 #define MPP11_UNUSED        MPP(11, 0x3, 0, 0, 1)
 
 #define MPP12_GPIO        MPP(12, 0x0, 1, 1, 1)
-#define MPP12_M_BB        MPP(12, 0x3, 1, 0, 1)
-#define MPP12_UA0_CTSn        MPP(12, 0x4, 1, 0, 1)
-#define MPP12_NAND_FLASH_REn0    MPP(12, 0x5, 0, 1, 1)
-#define MPP12_TDM0_SCSn        MPP(12, 0X6, 0, 1, 1)
+#define MPP12_M_BB        MPP(12, 0x3, 0, 0, 1)
+#define MPP12_UA0_CTSn        MPP(12, 0x4, 0, 0, 1)
+#define MPP12_NAND_FLASH_REn0    MPP(12, 0x5, 0, 0, 1)
+#define MPP12_TDM0_SCSn        MPP(12, 0X6, 0, 0, 1)
 #define MPP12_UNUSED        MPP(12, 0x1, 0, 0, 1)
 
 #define MPP13_GPIO        MPP(13, 0x0, 1, 1, 1)
-#define MPP13_SYSRST_OUTn    MPP(13, 0x3, 0, 1, 1)
-#define MPP13_UA0_RTSn        MPP(13, 0x4, 0, 1, 1)
-#define MPP13_NAN_FLASH_WEn0    MPP(13, 0x5, 0, 1, 1)
-#define MPP13_TDM_SCLK        MPP(13, 0x6, 0, 1, 1)
+#define MPP13_SYSRST_OUTn    MPP(13, 0x3, 0, 0, 1)
+#define MPP13_UA0_RTSn        MPP(13, 0x4, 0, 0, 1)
+#define MPP13_NAN_FLASH_WEn0    MPP(13, 0x5, 0, 0, 1)
+#define MPP13_TDM_SCLK        MPP(13, 0x6, 0, 0, 1)
 #define MPP13_UNUSED        MPP(13, 0x1, 0, 0, 1)
 
 #define MPP14_GPIO        MPP(14, 0x0, 1, 1, 1)
-#define MPP14_SATA1_ACTn    MPP(14, 0x3, 0, 1, 1)
-#define MPP14_UA1_CTSn        MPP(14, 0x4, 1, 0, 1)
-#define MPP14_NAND_FLASH_REn1    MPP(14, 0x5, 0, 1, 1)
-#define MPP14_TDM_SMOSI        MPP(14, 0x6, 0, 1, 1)
+#define MPP14_SATA1_ACTn    MPP(14, 0x3, 0, 0, 1)
+#define MPP14_UA1_CTSn        MPP(14, 0x4, 0, 0, 1)
+#define MPP14_NAND_FLASH_REn1    MPP(14, 0x5, 0, 0, 1)
+#define MPP14_TDM_SMOSI        MPP(14, 0x6, 0, 0, 1)
 #define MPP14_UNUSED        MPP(14, 0x1, 0, 0, 1)
 
 #define MPP15_GPIO        MPP(15, 0x0, 1, 1, 1)
-#define MPP15_SATA0_ACTn    MPP(15, 0x3, 0, 1, 1)
-#define MPP15_UA1_RTSn        MPP(15, 0x4, 0, 1, 1)
-#define MPP15_NAND_FLASH_WEn1    MPP(15, 0x5, 0, 1, 1)
-#define MPP15_TDM_SMISO        MPP(15, 0x6, 1, 0, 1)
+#define MPP15_SATA0_ACTn    MPP(15, 0x3, 0, 0, 1)
+#define MPP15_UA1_RTSn        MPP(15, 0x4, 0, 0, 1)
+#define MPP15_NAND_FLASH_WEn1    MPP(15, 0x5, 0, 0, 1)
+#define MPP15_TDM_SMISO        MPP(15, 0x6, 0, 0, 1)
 #define MPP15_UNUSED        MPP(15, 0x1, 0, 0, 1)
 
 #define MPP16_GPIO        MPP(16, 0x0, 1, 1, 1)
-#define MPP16_SATA1_PRESENTn    MPP(16, 0x3, 0, 1, 1)
-#define MPP16_UA2_TXD        MPP(16, 0x4, 0, 1, 1)
-#define MPP16_NAND_FLASH_REn3    MPP(16, 0x5, 0, 1, 1)
-#define MPP16_TDM_INTn        MPP(16, 0x6, 1, 0, 1)
+#define MPP16_SATA1_PRESENTn    MPP(16, 0x3, 0, 0, 1)
+#define MPP16_UA2_TXD        MPP(16, 0x4, 0, 0, 1)
+#define MPP16_NAND_FLASH_REn3    MPP(16, 0x5, 0, 0, 1)
+#define MPP16_TDM_INTn        MPP(16, 0x6, 0, 0, 1)
 #define MPP16_UNUSED        MPP(16, 0x1, 0, 0, 1)
 
 
 #define MPP17_GPIO        MPP(17, 0x0, 1, 1, 1)
-#define MPP17_SATA0_PRESENTn    MPP(17, 0x3, 0, 1, 1)
-#define MPP17_UA2_RXD        MPP(17, 0x4, 1, 0, 1)
-#define MPP17_NAND_FLASH_WEn3    MPP(17, 0x5, 0, 1, 1)
-#define MPP17_TDM_RSTn        MPP(17, 0x6, 0, 1, 1)
+#define MPP17_SATA0_PRESENTn    MPP(17, 0x3, 0, 0, 1)
+#define MPP17_UA2_RXD        MPP(17, 0x4, 0, 0, 1)
+#define MPP17_NAND_FLASH_WEn3    MPP(17, 0x5, 0, 0, 1)
+#define MPP17_TDM_RSTn        MPP(17, 0x6, 0, 0, 1)
 #define MPP17_UNUSED        MPP(17, 0x1, 0, 0, 1)
 
 
 #define MPP18_GPIO        MPP(18, 0x0, 1, 1, 1)
-#define MPP18_UA0_CTSn        MPP(18, 0x4, 1, 0, 1)
-#define MPP18_BOOT_FLASH_REn    MPP(18, 0x5, 0, 1, 1)
+#define MPP18_UA0_CTSn        MPP(18, 0x4, 0, 0, 1)
+#define MPP18_BOOT_FLASH_REn    MPP(18, 0x5, 0, 0, 1)
 #define MPP18_UNUSED        MPP(18, 0x1, 0, 0, 1)
 
 
 
 #define MPP19_GPIO        MPP(19, 0x0, 1, 1, 1)
-#define MPP19_UA0_CTSn        MPP(19, 0x4, 0, 1, 1)
-#define MPP19_BOOT_FLASH_WEn    MPP(19, 0x5, 0, 1, 1)
+#define MPP19_UA0_CTSn        MPP(19, 0x4, 0, 0, 1)
+#define MPP19_BOOT_FLASH_WEn    MPP(19, 0x5, 0, 0, 1)
 #define MPP19_UNUSED        MPP(19, 0x1, 0, 0, 1)
 
 
 #define MPP20_GPIO        MPP(20, 0x0, 1, 1, 1)
-#define MPP20_UA1_CTSs        MPP(20, 0x4, 1, 0, 1)
-#define MPP20_TDM_PCLK        MPP(20, 0x6, 1, 1, 0)
+#define MPP20_UA1_CTSs        MPP(20, 0x4, 0, 0, 1)
+#define MPP20_TDM_PCLK        MPP(20, 0x6, 0, 0, 0)
 #define MPP20_UNUSED        MPP(20, 0x1, 0, 0, 1)
 
 
 
 #define MPP21_GPIO        MPP(21, 0x0, 1, 1, 1)
-#define MPP21_UA1_CTSs        MPP(21, 0x4, 0, 1, 1)
-#define MPP21_TDM_FSYNC        MPP(21, 0x6, 1, 1, 0)
+#define MPP21_UA1_CTSs        MPP(21, 0x4, 0, 0, 1)
+#define MPP21_TDM_FSYNC        MPP(21, 0x6, 0, 0, 0)
 #define MPP21_UNUSED        MPP(21, 0x1, 0, 0, 1)
 
 
 
 #define MPP22_GPIO        MPP(22, 0x0, 1, 1, 1)
-#define MPP22_UA3_TDX        MPP(22, 0x4, 0, 1, 1)
-#define MPP22_NAND_FLASH_REn2    MPP(22, 0x5, 0, 1, 1)
-#define MPP22_TDM_DRX        MPP(22, 0x6, 1, 0, 1)
+#define MPP22_UA3_TDX        MPP(22, 0x4, 0, 0, 1)
+#define MPP22_NAND_FLASH_REn2    MPP(22, 0x5, 0, 0, 1)
+#define MPP22_TDM_DRX        MPP(22, 0x6, 0, 0, 1)
 #define MPP22_UNUSED        MPP(22, 0x1, 0, 0, 1)
 
 
 
 #define MPP23_GPIO        MPP(23, 0x0, 1, 1, 1)
-#define MPP23_UA3_RDX        MPP(23, 0x4, 1, 0, 1)
-#define MPP23_NAND_FLASH_WEn2    MPP(23, 0x5, 0, 1, 1)
-#define MPP23_TDM_DTX        MPP(23, 0x6, 0, 1, 1)
+#define MPP23_UA3_RDX        MPP(23, 0x4, 0, 0, 1)
+#define MPP23_NAND_FLASH_WEn2    MPP(23, 0x5, 0, 0, 1)
+#define MPP23_TDM_DTX        MPP(23, 0x6, 0, 0, 1)
 #define MPP23_UNUSED        MPP(23, 0x1, 0, 0, 1)
 
 
 #define MPP24_GPIO        MPP(24, 0x0, 1, 1, 1)
-#define MPP24_UA2_TXD        MPP(24, 0x4, 0, 1, 1)
-#define MPP24_TDM_INTn        MPP(24, 0x6, 1, 0, 1)
+#define MPP24_UA2_TXD        MPP(24, 0x4, 0, 0, 1)
+#define MPP24_TDM_INTn        MPP(24, 0x6, 0, 0, 1)
 #define MPP24_UNUSED        MPP(24, 0x1, 0, 0, 1)
 
 
 #define MPP25_GPIO        MPP(25, 0x0, 1, 1, 1)
-#define MPP25_UA2_RXD        MPP(25, 0x4, 1, 0, 1)
-#define MPP25_TDM_RSTn        MPP(25, 0x6, 0, 1, 1)
+#define MPP25_UA2_RXD        MPP(25, 0x4, 0, 0, 1)
+#define MPP25_TDM_RSTn        MPP(25, 0x6, 0, 0, 1)
 #define MPP25_UNUSED        MPP(25, 0x1, 0, 0, 1)
 
 
 #define MPP26_GPIO        MPP(26, 0x0, 1, 1, 1)
-#define MPP26_UA2_CTSn        MPP(26, 0x4, 1, 0, 1)
-#define MPP26_TDM_PCLK        MPP(26, 0x6, 1, 1, 1)
+#define MPP26_UA2_CTSn        MPP(26, 0x4, 0, 0, 1)
+#define MPP26_TDM_PCLK        MPP(26, 0x6, 0, 0, 1)
 #define MPP26_UNUSED        MPP(26, 0x1, 0, 0, 1)
 
 
 #define MPP27_GPIO        MPP(27, 0x0, 1, 1, 1)
-#define MPP27_UA2_RTSn        MPP(27, 0x4, 0, 1, 1)
-#define MPP27_TDM_FSYNC        MPP(27, 0x6, 1, 1, 1)
+#define MPP27_UA2_RTSn        MPP(27, 0x4, 0, 0, 1)
+#define MPP27_TDM_FSYNC        MPP(27, 0x6, 0, 0, 1)
 #define MPP27_UNUSED        MPP(27, 0x1, 0, 0, 1)
 
 
 #define MPP28_GPIO        MPP(28, 0x0, 1, 1, 1)
-#define MPP28_UA3_TXD        MPP(28, 0x4, 0, 1, 1)
-#define MPP28_TDM_DRX        MPP(28, 0x6, 1, 0, 1)
+#define MPP28_UA3_TXD        MPP(28, 0x4, 0, 0, 1)
+#define MPP28_TDM_DRX        MPP(28, 0x6, 0, 0, 1)
 #define MPP28_UNUSED        MPP(28, 0x1, 0, 0, 1)
 
 #define MPP29_GPIO        MPP(29, 0x0, 1, 1, 1)
-#define MPP29_UA3_RXD        MPP(29, 0x4, 1, 0, 1)
-#define MPP29_SYSRST_OUTn    MPP(29, 0x5, 0, 1, 1)
-#define MPP29_TDM_DTX        MPP(29, 0x6, 0, 1, 1)
+#define MPP29_UA3_RXD        MPP(29, 0x4, 0, 0, 1)
+#define MPP29_SYSRST_OUTn    MPP(29, 0x5, 0, 0, 1)
+#define MPP29_TDM_DTX        MPP(29, 0x6, 0, 0, 1)
 #define MPP29_UNUSED        MPP(29, 0x1, 0, 0, 1)
 
 #define MPP30_GPIO        MPP(30, 0x0, 1, 1, 1)
-#define MPP30_UA3_CTSn        MPP(30, 0x4, 1, 0, 1)
+#define MPP30_UA3_CTSn        MPP(30, 0x4, 0, 0, 1)
 #define MPP30_UNUSED        MPP(30, 0x1, 0, 0, 1)
 
 #define MPP31_GPIO        MPP(31, 0x0, 1, 1, 1)
-#define MPP31_UA3_RTSn        MPP(31, 0x4, 0, 1, 1)
-#define MPP31_TDM1_SCSn        MPP(31, 0x6, 0, 1, 1)
+#define MPP31_UA3_RTSn        MPP(31, 0x4, 0, 0, 1)
+#define MPP31_TDM1_SCSn        MPP(31, 0x6, 0, 0, 1)
 #define MPP31_UNUSED        MPP(31, 0x1, 0, 0, 1)
 
 
 #define MPP32_GPIO        MPP(32, 0x1, 1, 1, 1)
-#define MPP32_UA3_TDX        MPP(32, 0x4, 0, 1, 1)
-#define MPP32_SYSRST_OUTn    MPP(32, 0x5, 0, 1, 1)
-#define MPP32_TDM0_RXQ        MPP(32, 0x6, 0, 1, 1)
+#define MPP32_UA3_TDX        MPP(32, 0x4, 0, 0, 1)
+#define MPP32_SYSRST_OUTn    MPP(32, 0x5, 0, 0, 1)
+#define MPP32_TDM0_RXQ        MPP(32, 0x6, 0, 0, 1)
 #define MPP32_UNUSED        MPP(32, 0x3, 0, 0, 1)
 
 
 #define MPP33_GPIO        MPP(33, 0x1, 1, 1, 1)
-#define MPP33_UA3_RDX        MPP(33, 0x4, 1, 0, 1)
-#define MPP33_TDM0_TXQ        MPP(33, 0x6, 0, 1, 1)
+#define MPP33_UA3_RDX        MPP(33, 0x4, 0, 0, 1)
+#define MPP33_TDM0_TXQ        MPP(33, 0x6, 0, 0, 1)
 #define MPP33_UNUSED        MPP(33, 0x3, 0, 0, 1)
 
 
 
 #define MPP34_GPIO        MPP(34, 0x1, 1, 1, 1)
-#define MPP34_UA2_TDX        MPP(34, 0x4, 0, 1, 1)
-#define MPP34_TDM1_RXQ        MPP(34, 0x6, 0, 1, 1)
+#define MPP34_UA2_TDX        MPP(34, 0x4, 0, 0, 1)
+#define MPP34_TDM1_RXQ        MPP(34, 0x6, 0, 0, 1)
 #define MPP34_UNUSED        MPP(34, 0x3, 0, 0, 1)
 
 
 
 #define MPP35_GPIO        MPP(35, 0x1, 1, 1, 1)
-#define MPP35_UA2_RDX        MPP(35, 0x4, 1, 0, 1)
-#define MPP35_TDM1_TXQ        MPP(35, 0x6, 0, 1, 1)
+#define MPP35_UA2_RDX        MPP(35, 0x4, 0, 0, 1)
+#define MPP35_TDM1_TXQ        MPP(35, 0x6, 0, 0, 1)
 #define MPP35_UNUSED        MPP(35, 0x3, 0, 0, 1)
 
 #define MPP36_GPIO        MPP(36, 0x1, 1, 1, 1)
-#define MPP36_UA0_CTSn        MPP(36, 0x2, 1, 0, 1)
-#define MPP36_UA2_TDX        MPP(36, 0x4, 0, 1, 1)
-#define MPP36_TDM0_SCSn        MPP(36, 0x6, 0, 1, 1)
+#define MPP36_UA0_CTSn        MPP(36, 0x2, 0, 0, 1)
+#define MPP36_UA2_TDX        MPP(36, 0x4, 0, 0, 1)
+#define MPP36_TDM0_SCSn        MPP(36, 0x6, 0, 0, 1)
 #define MPP36_UNUSED        MPP(36, 0x3, 0, 0, 1)
 
 
 #define MPP37_GPIO        MPP(37, 0x1, 1, 1, 1)
-#define MPP37_UA0_RTSn        MPP(37, 0x2, 0, 1, 1)
-#define MPP37_UA2_RXD        MPP(37, 0x4, 1, 0, 1)
-#define MPP37_SYSRST_OUTn    MPP(37, 0x5, 0, 1, 1)
-#define MPP37_TDM_SCLK        MPP(37, 0x6, 0, 1, 1)
+#define MPP37_UA0_RTSn        MPP(37, 0x2, 0, 0, 1)
+#define MPP37_UA2_RXD        MPP(37, 0x4, 0, 0, 1)
+#define MPP37_SYSRST_OUTn    MPP(37, 0x5, 0, 0, 1)
+#define MPP37_TDM_SCLK        MPP(37, 0x6, 0, 0, 1)
 #define MPP37_UNUSED        MPP(37, 0x3, 0, 0, 1)
 
 
 
 
 #define MPP38_GPIO        MPP(38, 0x1, 1, 1, 1)
-#define MPP38_UA1_CTSn        MPP(38, 0x2, 1, 0, 1)
-#define MPP38_UA3_TXD        MPP(38, 0x4, 0, 1, 1)
-#define MPP38_SYSRST_OUTn    MPP(38, 0x5, 0, 1, 1)
-#define MPP38_TDM_SMOSI        MPP(38, 0x6, 0, 1, 1)
+#define MPP38_UA1_CTSn        MPP(38, 0x2, 0, 0, 1)
+#define MPP38_UA3_TXD        MPP(38, 0x4, 0, 0, 1)
+#define MPP38_SYSRST_OUTn    MPP(38, 0x5, 0, 0, 1)
+#define MPP38_TDM_SMOSI        MPP(38, 0x6, 0, 0, 1)
 #define MPP38_UNUSED        MPP(38, 0x3, 0, 0, 1)
 
 
 
 
 #define MPP39_GPIO        MPP(39, 0x1, 1, 1, 1)
-#define MPP39_UA1_RTSn        MPP(39, 0x2, 0, 1, 1)
-#define MPP39_UA3_RXD        MPP(39, 0x4, 1, 0, 1)
-#define MPP39_SYSRST_OUTn    MPP(39, 0x5, 0, 1, 1)
-#define MPP39_TDM_SMISO        MPP(39, 0x6, 1, 0, 1)
+#define MPP39_UA1_RTSn        MPP(39, 0x2, 0, 0, 1)
+#define MPP39_UA3_RXD        MPP(39, 0x4, 0, 0, 1)
+#define MPP39_SYSRST_OUTn    MPP(39, 0x5, 0, 0, 1)
+#define MPP39_TDM_SMISO        MPP(39, 0x6, 0, 0, 1)
 #define MPP39_UNUSED        MPP(39, 0x3, 0, 0, 1)
 
 
 
 #define MPP40_GPIO        MPP(40, 0x1, 1, 1, 1)
-#define MPP40_TDM_INTn        MPP(40, 0x6, 1, 0, 1)
+#define MPP40_TDM_INTn        MPP(40, 0x6, 0, 0, 1)
 #define MPP40_UNUSED        MPP(40, 0x0, 0, 0, 1)
 
 
 
 #define MPP41_GPIO        MPP(41, 0x1, 1, 1, 1)
-#define MPP41_TDM_RSTn        MPP(41, 0x6, 0, 1, 1)
+#define MPP41_TDM_RSTn        MPP(41, 0x6, 0, 0, 1)
 #define MPP41_UNUSED        MPP(41, 0x0, 0, 0, 1)
 
 
 
 #define MPP42_GPIO        MPP(42, 0x1, 1, 1, 1)
-#define MPP42_TDM_PCLK        MPP(42, 0x6, 1, 1, 1)
+#define MPP42_TDM_PCLK        MPP(42, 0x6, 0, 0, 1)
 #define MPP42_UNUSED        MPP(42, 0x0, 0, 0, 1)
 
 
 
 #define MPP43_GPIO        MPP(43, 0x1, 1, 1, 1)
-#define MPP43_TDM_FSYNC        MPP(43, 0x6, 1, 1, 1)
+#define MPP43_TDM_FSYNC        MPP(43, 0x6, 0, 0, 1)
 #define MPP43_UNUSED        MPP(43, 0x0, 0, 0, 1)
 
 
 
 #define MPP44_GPIO        MPP(44, 0x1, 1, 1, 1)
-#define MPP44_TDM_DRX        MPP(44, 0x6, 1, 0, 1)
+#define MPP44_TDM_DRX        MPP(44, 0x6, 0, 0, 1)
 #define MPP44_UNUSED        MPP(44, 0x0, 0, 0, 1)
 
 
 
 #define MPP45_GPIO        MPP(45, 0x1, 1, 1, 1)
-#define MPP45_SATA0_ACTn    MPP(45, 0x3, 0, 1, 1)
-#define MPP45_TDM_DRX        MPP(45, 0x6, 0, 1, 1)
+#define MPP45_SATA0_ACTn    MPP(45, 0x3, 0, 0, 1)
+#define MPP45_TDM_DRX        MPP(45, 0x6, 0, 0, 1)
 #define MPP45_UNUSED        MPP(45, 0x0, 0, 0, 1)
 
 
 #define MPP46_GPIO        MPP(46, 0x1, 1, 1, 1)
-#define MPP46_TDM_SCSn        MPP(46, 0x6, 0, 1, 1)
+#define MPP46_TDM_SCSn        MPP(46, 0x6, 0, 0, 1)
 #define MPP46_UNUSED        MPP(46, 0x0, 0, 0, 1)
 
 
@@ -323,14 +323,14 @@
 
 
 #define MPP48_GPIO        MPP(48, 0x1, 1, 1, 1)
-#define MPP48_SATA1_ACTn    MPP(48, 0x3, 0, 1, 1)
+#define MPP48_SATA1_ACTn    MPP(48, 0x3, 0, 0, 1)
 #define MPP48_UNUSED        MPP(48, 0x2, 0, 0, 1)
 
 
 
 #define MPP49_GPIO        MPP(49, 0x1, 1, 1, 1)
-#define MPP49_SATA0_ACTn    MPP(49, 0x3, 0, 1, 1)
-#define MPP49_M_BB        MPP(49, 0x4, 1, 0, 1)
+#define MPP49_SATA0_ACTn    MPP(49, 0x3, 0, 0, 1)
+#define MPP49_M_BB        MPP(49, 0x4, 0, 0, 1)
 #define MPP49_UNUSED        MPP(49, 0x2, 0, 0, 1)
 
 
--- linux-3.2.0.orig/arch/arm/mach-vexpress/platsmp.c
+++ linux-3.2.0/arch/arm/mach-vexpress/platsmp.c
@@ -13,8 +13,6 @@
 #include <linux/smp.h>
 #include <linux/io.h>
 
-#include <asm/unified.h>
-
 #include <mach/motherboard.h>
 #define V2M_PA_CS7 0x10000000
 
@@ -46,6 +44,6 @@
 	 * secondary CPU branches to this address.
 	 */
 	writel(~0, MMIO_P2V(V2M_SYS_FLAGSCLR));
-	writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+	writel(virt_to_phys(versatile_secondary_startup),
 		MMIO_P2V(V2M_SYS_FLAGSSET));
 }
--- linux-3.2.0.orig/arch/arm/include/asm/div64.h
+++ linux-3.2.0/arch/arm/include/asm/div64.h
@@ -73,6 +73,7 @@
 #define do_div(n, base)							\
 ({									\
 	unsigned int __r, __b = (base);					\
+	asm("" : "+r" (__b));						\
 	if (!__builtin_constant_p(__b) || __b == 0 ||			\
 	    (__LINUX_ARM_ARCH__ < 4 && (__b & (__b - 1)) != 0)) {	\
 		/* non-constant divisor (or zero): slow path */		\
--- linux-3.2.0.orig/arch/arm/include/asm/cacheflush.h
+++ linux-3.2.0/arch/arm/include/asm/cacheflush.h
@@ -249,7 +249,7 @@
  * Harvard caches are synchronised for the user space address range.
  * This is used for the ARM private sys_cacheflush system call.
  */
-#define flush_cache_user_range(vma,start,end) \
+#define flush_cache_user_range(start,end) \
 	__cpuc_coherent_user_range((start) & PAGE_MASK, PAGE_ALIGN(end))
 
 /*
--- linux-3.2.0.orig/arch/arm/include/asm/sched_clock.h
+++ linux-3.2.0/arch/arm/include/asm/sched_clock.h
@@ -8,113 +8,7 @@
 #ifndef ASM_SCHED_CLOCK
 #define ASM_SCHED_CLOCK
 
-#include <linux/kernel.h>
-#include <linux/types.h>
-
-struct clock_data {
-	u64 epoch_ns;
-	u32 epoch_cyc;
-	u32 epoch_cyc_copy;
-	u32 mult;
-	u32 shift;
-};
-
-#define DEFINE_CLOCK_DATA(name)	struct clock_data name
-
-static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
-{
-	return (cyc * mult) >> shift;
-}
-
-/*
- * Atomically update the sched_clock epoch.  Your update callback will
- * be called from a timer before the counter wraps - read the current
- * counter value, and call this function to safely move the epochs
- * forward.  Only use this from the update callback.
- */
-static inline void update_sched_clock(struct clock_data *cd, u32 cyc, u32 mask)
-{
-	unsigned long flags;
-	u64 ns = cd->epoch_ns +
-		cyc_to_ns((cyc - cd->epoch_cyc) & mask, cd->mult, cd->shift);
-
-	/*
-	 * Write epoch_cyc and epoch_ns in a way that the update is
-	 * detectable in cyc_to_fixed_sched_clock().
-	 */
-	raw_local_irq_save(flags);
-	cd->epoch_cyc = cyc;
-	smp_wmb();
-	cd->epoch_ns = ns;
-	smp_wmb();
-	cd->epoch_cyc_copy = cyc;
-	raw_local_irq_restore(flags);
-}
-
-/*
- * If your clock rate is known at compile time, using this will allow
- * you to optimize the mult/shift loads away.  This is paired with
- * init_fixed_sched_clock() to ensure that your mult/shift are correct.
- */
-static inline unsigned long long cyc_to_fixed_sched_clock(struct clock_data *cd,
-	u32 cyc, u32 mask, u32 mult, u32 shift)
-{
-	u64 epoch_ns;
-	u32 epoch_cyc;
-
-	/*
-	 * Load the epoch_cyc and epoch_ns atomically.  We do this by
-	 * ensuring that we always write epoch_cyc, epoch_ns and
-	 * epoch_cyc_copy in strict order, and read them in strict order.
-	 * If epoch_cyc and epoch_cyc_copy are not equal, then we're in
-	 * the middle of an update, and we should repeat the load.
-	 */
-	do {
-		epoch_cyc = cd->epoch_cyc;
-		smp_rmb();
-		epoch_ns = cd->epoch_ns;
-		smp_rmb();
-	} while (epoch_cyc != cd->epoch_cyc_copy);
-
-	return epoch_ns + cyc_to_ns((cyc - epoch_cyc) & mask, mult, shift);
-}
-
-/*
- * Otherwise, you need to use this, which will obtain the mult/shift
- * from the clock_data structure.  Use init_sched_clock() with this.
- */
-static inline unsigned long long cyc_to_sched_clock(struct clock_data *cd,
-	u32 cyc, u32 mask)
-{
-	return cyc_to_fixed_sched_clock(cd, cyc, mask, cd->mult, cd->shift);
-}
-
-/*
- * Initialize the clock data - calculate the appropriate multiplier
- * and shift.  Also setup a timer to ensure that the epoch is refreshed
- * at the appropriate time interval, which will call your update
- * handler.
- */
-void init_sched_clock(struct clock_data *, void (*)(void),
-	unsigned int, unsigned long);
-
-/*
- * Use this initialization function rather than init_sched_clock() if
- * you're using cyc_to_fixed_sched_clock, which will warn if your
- * constants are incorrect.
- */
-static inline void init_fixed_sched_clock(struct clock_data *cd,
-	void (*update)(void), unsigned int bits, unsigned long rate,
-	u32 mult, u32 shift)
-{
-	init_sched_clock(cd, update, bits, rate);
-	if (cd->mult != mult || cd->shift != shift) {
-		pr_crit("sched_clock: wrong multiply/shift: %u>>%u vs calculated %u>>%u\n"
-			"sched_clock: fix multiply/shift to avoid scheduler hiccups\n",
-			mult, shift, cd->mult, cd->shift);
-	}
-}
-
 extern void sched_clock_postinit(void);
+extern void setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate);
 
 #endif
--- linux-3.2.0.orig/arch/arm/include/asm/unified.h
+++ linux-3.2.0/arch/arm/include/asm/unified.h
@@ -37,8 +37,8 @@
 #define THUMB(x...)	x
 #ifdef __ASSEMBLY__
 #define W(instr)	instr.w
-#endif
 #define BSYM(sym)	sym + 1
+#endif
 
 #else	/* !CONFIG_THUMB2_KERNEL */
 
@@ -49,8 +49,8 @@
 #define THUMB(x...)
 #ifdef __ASSEMBLY__
 #define W(instr)	instr
-#endif
 #define BSYM(sym)	sym
+#endif
 
 #endif	/* CONFIG_THUMB2_KERNEL */
 
--- linux-3.2.0.orig/arch/arm/include/asm/assembler.h
+++ linux-3.2.0/arch/arm/include/asm/assembler.h
@@ -137,6 +137,11 @@
 	disable_irq
 	.endm
 
+	.macro	save_and_disable_irqs_notrace, oldcpsr
+	mrs	\oldcpsr, cpsr
+	disable_irq_notrace
+	.endm
+
 /*
  * Restore interrupt state previously stored in a register.  We don't
  * guarantee that this will preserve the flags.
--- linux-3.2.0.orig/arch/arm/include/asm/vfpmacros.h
+++ linux-3.2.0/arch/arm/include/asm/vfpmacros.h
@@ -28,7 +28,7 @@
 	ldr	\tmp, =elf_hwcap		    @ may not have MVFR regs
 	ldr	\tmp, [\tmp, #0]
 	tst	\tmp, #HWCAP_VFPv3D16
-	ldceq	p11, cr0, [\base],#32*4		    @ FLDMIAD \base!, {d16-d31}
+	ldceql	p11, cr0, [\base],#32*4		    @ FLDMIAD \base!, {d16-d31}
 	addne	\base, \base, #32*4		    @ step over unused register space
 #else
 	VFPFMRX	\tmp, MVFR0			    @ Media and VFP Feature Register 0
@@ -52,7 +52,7 @@
 	ldr	\tmp, =elf_hwcap		    @ may not have MVFR regs
 	ldr	\tmp, [\tmp, #0]
 	tst	\tmp, #HWCAP_VFPv3D16
-	stceq	p11, cr0, [\base],#32*4		    @ FSTMIAD \base!, {d16-d31}
+	stceql	p11, cr0, [\base],#32*4		    @ FSTMIAD \base!, {d16-d31}
 	addne	\base, \base, #32*4		    @ step over unused register space
 #else
 	VFPFMRX	\tmp, MVFR0			    @ Media and VFP Feature Register 0
--- linux-3.2.0.orig/arch/arm/include/asm/processor.h
+++ linux-3.2.0/arch/arm/include/asm/processor.h
@@ -123,6 +123,8 @@
 
 #endif
 
+#define HAVE_ARCH_PICK_MMAP_LAYOUT
+
 #endif
 
 #endif /* __ASM_ARM_PROCESSOR_H */
--- linux-3.2.0.orig/arch/arm/include/asm/system.h
+++ linux-3.2.0/arch/arm/include/asm/system.h
@@ -101,6 +101,7 @@
 extern void cpu_init(void);
 
 void arm_machine_restart(char mode, const char *cmd);
+void soft_restart(unsigned long);
 extern void (*arm_pm_restart)(char str, const char *cmd);
 
 #define UDBG_UNDEFINED	(1 << 0)
--- linux-3.2.0.orig/arch/arm/include/asm/pmu.h
+++ linux-3.2.0/arch/arm/include/asm/pmu.h
@@ -125,7 +125,7 @@
 
 u64 armpmu_event_update(struct perf_event *event,
 			struct hw_perf_event *hwc,
-			int idx, int overflow);
+			int idx);
 
 int armpmu_event_set_period(struct perf_event *event,
 			    struct hw_perf_event *hwc,
--- linux-3.2.0.orig/arch/arm/include/asm/tls.h
+++ linux-3.2.0/arch/arm/include/asm/tls.h
@@ -7,6 +7,8 @@
 
 	.macro set_tls_v6k, tp, tmp1, tmp2
 	mcr	p15, 0, \tp, c13, c0, 3		@ set TLS register
+	mov	\tmp1, #0
+	mcr	p15, 0, \tmp1, c13, c0, 2	@ clear user r/w TLS register
 	.endm
 
 	.macro set_tls_v6, tp, tmp1, tmp2
@@ -15,6 +17,8 @@
 	mov	\tmp2, #0xffff0fff
 	tst	\tmp1, #HWCAP_TLS		@ hardware TLS available?
 	mcrne	p15, 0, \tp, c13, c0, 3		@ yes, set TLS register
+	movne	\tmp1, #0
+	mcrne	p15, 0, \tmp1, c13, c0, 2	@ clear user r/w TLS register
 	streq	\tp, [\tmp2, #-15]		@ set TLS value at 0xffff0ff0
 	.endm
 
--- linux-3.2.0.orig/arch/arm/include/asm/idmap.h
+++ linux-3.2.0/arch/arm/include/asm/idmap.h
@@ -0,0 +1,14 @@
+#ifndef __ASM_IDMAP_H
+#define __ASM_IDMAP_H
+
+#include <linux/compiler.h>
+#include <asm/pgtable.h>
+
+/* Tag a function as requiring to be executed via an identity mapping. */
+#define __idmap __section(.idmap.text) noinline notrace
+
+extern pgd_t *idmap_pgd;
+
+void setup_mm_for_reboot(void);
+
+#endif	/* __ASM_IDMAP_H */
--- linux-3.2.0.orig/arch/arm/include/asm/mutex.h
+++ linux-3.2.0/arch/arm/include/asm/mutex.h
@@ -7,121 +7,10 @@
  */
 #ifndef _ASM_MUTEX_H
 #define _ASM_MUTEX_H
-
-#if __LINUX_ARM_ARCH__ < 6
-/* On pre-ARMv6 hardware the swp based implementation is the most efficient. */
-# include <asm-generic/mutex-xchg.h>
-#else
-
 /*
- * Attempting to lock a mutex on ARMv6+ can be done with a bastardized
- * atomic decrement (it is not a reliable atomic decrement but it satisfies
- * the defined semantics for our purpose, while being smaller and faster
- * than a real atomic decrement or atomic swap.  The idea is to attempt
- * decrementing the lock value only once.  If once decremented it isn't zero,
- * or if its store-back fails due to a dispute on the exclusive store, we
- * simply bail out immediately through the slow path where the lock will be
- * reattempted until it succeeds.
+ * On pre-ARMv6 hardware this results in a swp-based implementation,
+ * which is the most efficient. For ARMv6+, we emit a pair of exclusive
+ * accesses instead.
  */
-static inline void
-__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
-	int __ex_flag, __res;
-
-	__asm__ (
-
-		"ldrex	%0, [%2]	\n\t"
-		"sub	%0, %0, #1	\n\t"
-		"strex	%1, %0, [%2]	"
-
-		: "=&r" (__res), "=&r" (__ex_flag)
-		: "r" (&(count)->counter)
-		: "cc","memory" );
-
-	__res |= __ex_flag;
-	if (unlikely(__res != 0))
-		fail_fn(count);
-}
-
-static inline int
-__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
-	int __ex_flag, __res;
-
-	__asm__ (
-
-		"ldrex	%0, [%2]	\n\t"
-		"sub	%0, %0, #1	\n\t"
-		"strex	%1, %0, [%2]	"
-
-		: "=&r" (__res), "=&r" (__ex_flag)
-		: "r" (&(count)->counter)
-		: "cc","memory" );
-
-	__res |= __ex_flag;
-	if (unlikely(__res != 0))
-		__res = fail_fn(count);
-	return __res;
-}
-
-/*
- * Same trick is used for the unlock fast path. However the original value,
- * rather than the result, is used to test for success in order to have
- * better generated assembly.
- */
-static inline void
-__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
-{
-	int __ex_flag, __res, __orig;
-
-	__asm__ (
-
-		"ldrex	%0, [%3]	\n\t"
-		"add	%1, %0, #1	\n\t"
-		"strex	%2, %1, [%3]	"
-
-		: "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
-		: "r" (&(count)->counter)
-		: "cc","memory" );
-
-	__orig |= __ex_flag;
-	if (unlikely(__orig != 0))
-		fail_fn(count);
-}
-
-/*
- * If the unlock was done on a contended lock, or if the unlock simply fails
- * then the mutex remains locked.
- */
-#define __mutex_slowpath_needs_to_unlock()	1
-
-/*
- * For __mutex_fastpath_trylock we use another construct which could be
- * described as a "single value cmpxchg".
- *
- * This provides the needed trylock semantics like cmpxchg would, but it is
- * lighter and less generic than a true cmpxchg implementation.
- */
-static inline int
-__mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
-{
-	int __ex_flag, __res, __orig;
-
-	__asm__ (
-
-		"1: ldrex	%0, [%3]	\n\t"
-		"subs		%1, %0, #1	\n\t"
-		"strexeq	%2, %1, [%3]	\n\t"
-		"movlt		%0, #0		\n\t"
-		"cmpeq		%2, #0		\n\t"
-		"bgt		1b		"
-
-		: "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
-		: "r" (&count->counter)
-		: "cc", "memory" );
-
-	return __orig;
-}
-
-#endif
+#include <asm-generic/mutex-xchg.h>
 #endif
--- linux-3.2.0.orig/arch/arm/include/asm/pgtable.h
+++ linux-3.2.0/arch/arm/include/asm/pgtable.h
@@ -232,6 +232,18 @@
 #define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext)
 #define pte_clear(mm,addr,ptep)	set_pte_ext(ptep, __pte(0), 0)
 
+#define pte_none(pte)		(!pte_val(pte))
+#define pte_present(pte)	(pte_val(pte) & L_PTE_PRESENT)
+#define pte_write(pte)		(!(pte_val(pte) & L_PTE_RDONLY))
+#define pte_dirty(pte)		(pte_val(pte) & L_PTE_DIRTY)
+#define pte_young(pte)		(pte_val(pte) & L_PTE_YOUNG)
+#define pte_exec(pte)		(!(pte_val(pte) & L_PTE_XN))
+#define pte_special(pte)	(0)
+
+#define pte_present_user(pte) \
+	((pte_val(pte) & (L_PTE_PRESENT | L_PTE_USER)) == \
+	 (L_PTE_PRESENT | L_PTE_USER))
+
 #if __LINUX_ARM_ARCH__ < 6
 static inline void __sync_icache_dcache(pte_t pteval)
 {
@@ -243,25 +255,15 @@
 static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
 			      pte_t *ptep, pte_t pteval)
 {
-	if (addr >= TASK_SIZE)
-		set_pte_ext(ptep, pteval, 0);
-	else {
+	unsigned long ext = 0;
+
+	if (addr < TASK_SIZE && pte_present_user(pteval)) {
 		__sync_icache_dcache(pteval);
-		set_pte_ext(ptep, pteval, PTE_EXT_NG);
+		ext |= PTE_EXT_NG;
 	}
-}
 
-#define pte_none(pte)		(!pte_val(pte))
-#define pte_present(pte)	(pte_val(pte) & L_PTE_PRESENT)
-#define pte_write(pte)		(!(pte_val(pte) & L_PTE_RDONLY))
-#define pte_dirty(pte)		(pte_val(pte) & L_PTE_DIRTY)
-#define pte_young(pte)		(pte_val(pte) & L_PTE_YOUNG)
-#define pte_exec(pte)		(!(pte_val(pte) & L_PTE_XN))
-#define pte_special(pte)	(0)
-
-#define pte_present_user(pte) \
-	((pte_val(pte) & (L_PTE_PRESENT | L_PTE_USER)) == \
-	 (L_PTE_PRESENT | L_PTE_USER))
+	set_pte_ext(ptep, pteval, ext);
+}
 
 #define PTE_BIT_FUNC(fn,op) \
 static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
@@ -288,13 +290,13 @@
  *
  *   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
  *   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
- *   <--------------- offset --------------------> <- type --> 0 0 0
+ *   <--------------- offset ----------------------> < type -> 0 0 0
  *
- * This gives us up to 63 swap files and 32GB per swap file.  Note that
+ * This gives us up to 31 swap files and 64GB per swap file.  Note that
  * the offset field is always non-zero.
  */
 #define __SWP_TYPE_SHIFT	3
-#define __SWP_TYPE_BITS		6
+#define __SWP_TYPE_BITS		5
 #define __SWP_TYPE_MASK		((1 << __SWP_TYPE_BITS) - 1)
 #define __SWP_OFFSET_SHIFT	(__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
 
@@ -336,6 +338,7 @@
  * We provide our own arch_get_unmapped_area to cope with VIPT caches.
  */
 #define HAVE_ARCH_UNMAPPED_AREA
+#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
 
 /*
  * remap a physical page `pfn' of size `size' with page protection `prot'
@@ -346,9 +349,6 @@
 
 #define pgtable_cache_init() do { } while (0)
 
-void identity_mapping_add(pgd_t *, unsigned long, unsigned long);
-void identity_mapping_del(pgd_t *, unsigned long, unsigned long);
-
 #endif /* !__ASSEMBLY__ */
 
 #endif /* CONFIG_MMU */
--- linux-3.2.0.orig/arch/arm/include/asm/edac.h
+++ linux-3.2.0/arch/arm/include/asm/edac.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011 Calxeda, Inc.
+ * Based on PPC version Copyright 2007 MontaVista Software, 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 <http://www.gnu.org/licenses/>.
+ */
+#ifndef ASM_EDAC_H
+#define ASM_EDAC_H
+/*
+ * ECC atomic, DMA, SMP and interrupt safe scrub function.
+ * Implements the per arch atomic_scrub() that EDAC use for software
+ * ECC scrubbing.  It reads memory and then writes back the original
+ * value, allowing the hardware to detect and correct memory errors.
+ */
+static inline void atomic_scrub(void *va, u32 size)
+{
+#if __LINUX_ARM_ARCH__ >= 6
+	unsigned int *virt_addr = va;
+	unsigned int temp, temp2;
+	unsigned int i;
+
+	for (i = 0; i < size / sizeof(*virt_addr); i++, virt_addr++) {
+		/* Very carefully read and write to memory atomically
+		 * so we are interrupt, DMA and SMP safe.
+		 */
+		__asm__ __volatile__("\n"
+			"1:	ldrex	%0, [%2]\n"
+			"	strex	%1, %0, [%2]\n"
+			"	teq	%1, #0\n"
+			"	bne	1b\n"
+			: "=&r"(temp), "=&r"(temp2)
+			: "r"(virt_addr)
+			: "cc");
+	}
+#endif
+}
+
+#endif
--- linux-3.2.0.orig/arch/arm/include/asm/hardware/timer-sp.h
+++ linux-3.2.0/arch/arm/include/asm/hardware/timer-sp.h
@@ -1,2 +1,15 @@
-void sp804_clocksource_init(void __iomem *, const char *);
+void __sp804_clocksource_and_sched_clock_init(void __iomem *,
+					      const char *, int);
+
+static inline void sp804_clocksource_init(void __iomem *base, const char *name)
+{
+	__sp804_clocksource_and_sched_clock_init(base, name, 0);
+}
+
+static inline void sp804_clocksource_and_sched_clock_init(void __iomem *base,
+							  const char *name)
+{
+	__sp804_clocksource_and_sched_clock_init(base, name, 1);
+}
+
 void sp804_clockevents_init(void __iomem *, unsigned int, const char *);
--- linux-3.2.0.orig/arch/arm/include/asm/mach/arch.h
+++ linux-3.2.0/arch/arm/include/asm/mach/arch.h
@@ -31,10 +31,10 @@
 	unsigned int		video_start;	/* start of video RAM	*/
 	unsigned int		video_end;	/* end of video RAM	*/
 
-	unsigned int		reserve_lp0 :1;	/* never has lp0	*/
-	unsigned int		reserve_lp1 :1;	/* never has lp1	*/
-	unsigned int		reserve_lp2 :1;	/* never has lp2	*/
-	unsigned int		soft_reboot :1;	/* soft reboot		*/
+	unsigned char		reserve_lp0 :1;	/* never has lp0	*/
+	unsigned char		reserve_lp1 :1;	/* never has lp1	*/
+	unsigned char		reserve_lp2 :1;	/* never has lp2	*/
+	char			restart_mode;	/* default restart mode	*/
 	void			(*fixup)(struct tag *, char **,
 					 struct meminfo *);
 	void			(*reserve)(void);/* reserve mem blocks	*/
@@ -46,6 +46,7 @@
 #ifdef CONFIG_MULTI_IRQ_HANDLER
 	void			(*handle_irq)(struct pt_regs *);
 #endif
+	void			(*restart)(char, const char *);
 };
 
 /*
--- 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 <mach/hardware.h>
 #include <asm/mach/map.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/tc.h>
 #include <plat/board.h>
 #include <plat/mux.h>
--- 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 <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 
 #include <linux/spi/spi.h>
 #include <linux/spi/ads7846.h>
@@ -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-osk.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-osk.c
@@ -51,7 +51,7 @@
 #include <plat/usb.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
-#include <plat/common.h>
+#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-h3.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-h3.c
@@ -45,7 +45,7 @@
 #include <plat/usb.h>
 #include <plat/keypad.h>
 #include <plat/dma.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/flash.h>
 
 #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/reset.c
+++ linux-3.2.0/arch/arm/mach-omap1/reset.c
@@ -5,10 +5,9 @@
 #include <linux/io.h>
 
 #include <mach/hardware.h>
-#include <mach/system.h>
 #include <plat/prcm.h>
 
-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/board-ams-delta.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-ams-delta.c
@@ -35,7 +35,7 @@
 #include <plat/mux.h>
 #include <plat/usb.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <mach/camera.h>
 
 #include <mach/ams-delta-fiq.h>
@@ -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-h2.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-h2.c
@@ -43,7 +43,7 @@
 #include <plat/irda.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/flash.h>
 
 #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/board-sx1.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-sx1.c
@@ -40,7 +40,7 @@
 #include <plat/usb.h>
 #include <plat/tc.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/keypad.h>
 #include <plat/board-sx1.h>
 
@@ -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/board-palmtt.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-palmtt.c
@@ -39,7 +39,7 @@
 #include <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 
 #include <linux/spi/spi.h>
 #include <linux/spi/ads7846.h>
@@ -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/board-fsample.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-fsample.c
@@ -32,7 +32,7 @@
 #include <plat/flash.h>
 #include <plat/fpga.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 
 /* 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-innovator.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-innovator.c
@@ -37,7 +37,7 @@
 #include <plat/tc.h>
 #include <plat/usb.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/mmc.h>
 
 /* 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/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-perseus2.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-perseus2.c
@@ -32,7 +32,7 @@
 #include <plat/fpga.h>
 #include <plat/flash.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 
 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/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 <plat/common.h>
+
+#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-generic.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-generic.c
@@ -25,7 +25,7 @@
 #include <plat/mux.h>
 #include <plat/usb.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#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-htcherald.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-htcherald.c
@@ -41,7 +41,7 @@
 #include <asm/mach/arch.h>
 
 #include <plat/omap7xx.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 #include <plat/keypad.h>
 #include <plat/usb.h>
@@ -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-nokia770.c
+++ linux-3.2.0/arch/arm/mach-omap1/board-nokia770.c
@@ -30,7 +30,7 @@
 #include <plat/usb.h>
 #include <plat/board.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/hwa742.h>
 #include <plat/lcd_mipid.h>
 #include <plat/mmc.h>
@@ -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/time.c
+++ linux-3.2.0/arch/arm/mach-omap1/time.c
@@ -37,7 +37,6 @@
 #include <linux/init.h>
 #include <linux/delay.h>
 #include <linux/interrupt.h>
-#include <linux/sched.h>
 #include <linux/spinlock.h>
 #include <linux/clk.h>
 #include <linux/err.h>
@@ -54,7 +53,7 @@
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
 
-#include <plat/common.h>
+#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 <plat/board.h>
 #include <plat/irda.h>
 #include <plat/keypad.h>
-#include <plat/common.h>
+#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/timer32k.c
+++ linux-3.2.0/arch/arm/mach-omap1/timer32k.c
@@ -52,7 +52,7 @@
 #include <asm/irq.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/time.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/dmtimer.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 <linux/export.h>
 
 #include <mach/hardware.h>
-#include <mach/system.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include <plat/board-voiceblue.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/flash.h>
 #include <plat/mux.h>
 #include <plat/tc.h>
@@ -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-realview/platsmp.c
+++ linux-3.2.0/arch/arm/mach-realview/platsmp.c
@@ -17,7 +17,6 @@
 #include <asm/hardware/gic.h>
 #include <asm/mach-types.h>
 #include <asm/smp_scu.h>
-#include <asm/unified.h>
 
 #include <mach/board-eb.h>
 #include <mach/board-pb11mp.h>
@@ -75,6 +74,6 @@
 	 * until it receives a soft interrupt, and then the
 	 * secondary CPU branches to this address.
 	 */
-	__raw_writel(BSYM(virt_to_phys(versatile_secondary_startup)),
+	__raw_writel(virt_to_phys(versatile_secondary_startup),
 		     __io_address(REALVIEW_SYS_FLAGSSET));
 }
--- 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 <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/smp.h>
-#include <asm/unified.h>
 
 #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/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/mach-imx/hotplug.c
+++ linux-3.2.0/arch/arm/mach-imx/hotplug.c
@@ -12,6 +12,7 @@
 
 #include <linux/errno.h>
 #include <asm/cacheflush.h>
+#include <asm/cp15.h>
 #include <mach/common.h>
 
 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-pxa/reset.c
+++ linux-3.2.0/arch/arm/mach-pxa/reset.c
@@ -88,7 +88,7 @@
 	switch (mode) {
 	case 's':
 		/* Jump into ROM at address 0 */
-		cpu_reset(0);
+		soft_restart(0);
 		break;
 	case 'g':
 		do_gpio_reset();
--- linux-3.2.0.orig/arch/arm/mach-pxa/time.c
+++ linux-3.2.0/arch/arm/mach-pxa/time.c
@@ -16,7 +16,6 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/clockchips.h>
-#include <linux/sched.h>
 
 #include <asm/div64.h>
 #include <asm/mach/irq.h>
@@ -32,18 +31,10 @@
  * long as there is always less than 582 seconds between successive
  * calls to sched_clock() which should always be the case in practice.
  */
-static DEFINE_CLOCK_DATA(cd);
 
-unsigned long long notrace sched_clock(void)
+static u32 notrace pxa_read_sched_clock(void)
 {
-	u32 cyc = OSCR;
-	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
-}
-
-static void notrace pxa_update_sched_clock(void)
-{
-	u32 cyc = OSCR;
-	update_sched_clock(&cd, cyc, (u32)~0);
+	return OSCR;
 }
 
 
@@ -119,7 +110,7 @@
 	OIER = 0;
 	OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3;
 
-	init_sched_clock(&cd, pxa_update_sched_clock, 32, clock_tick_rate);
+	setup_sched_clock(pxa_read_sched_clock, 32, clock_tick_rate);
 
 	clockevents_calc_mult_shift(&ckevt_pxa_osmr0, clock_tick_rate, 4);
 	ckevt_pxa_osmr0.max_delta_ns =
--- linux-3.2.0.orig/arch/arm/mach-pxa/raumfeld.c
+++ linux-3.2.0/arch/arm/mach-pxa/raumfeld.c
@@ -951,12 +951,12 @@
 
 static struct eeti_ts_platform_data eeti_ts_pdata = {
 	.irq_active_high = 1,
+	.irq_gpio = GPIO_TOUCH_IRQ,
 };
 
 static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = {
 	.type	= "eeti_ts",
 	.addr	= 0x0a,
-	.irq	= gpio_to_irq(GPIO_TOUCH_IRQ),
 	.platform_data = &eeti_ts_pdata,
 };
 
--- 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-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-s3c24xx/dma.c
+++ linux-3.2.0/arch/arm/plat-s3c24xx/dma.c
@@ -431,7 +431,7 @@
  * when necessary.
 */
 
-int s3c2410_dma_enqueue(unsigned int channel, void *id,
+int s3c2410_dma_enqueue(enum dma_ch channel, void *id,
 			dma_addr_t data, int size)
 {
 	struct s3c2410_dma_chan *chan = s3c_dma_lookup_channel(channel);
@@ -1249,7 +1249,7 @@
 	struct s3c2410_dma_chan *cp = s3c2410_chans + dma_channels - 1;
 	int channel;
 
-	for (channel = dma_channels - 1; channel >= 0; cp++, channel--)
+	for (channel = dma_channels - 1; channel >= 0; cp--, channel--)
 		s3c2410_dma_resume_chan(cp);
 }
 
--- 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-picoxcell/time.c
+++ linux-3.2.0/arch/arm/mach-picoxcell/time.c
@@ -11,7 +11,6 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
-#include <linux/sched.h>
 
 #include <asm/mach/time.h>
 #include <asm/sched_clock.h>
@@ -66,21 +65,11 @@
 	dw_apb_clocksource_register(cs);
 }
 
-static DEFINE_CLOCK_DATA(cd);
 static void __iomem *sched_io_base;
 
-unsigned long long notrace sched_clock(void)
+unsigned u32 notrace picoxcell_read_sched_clock(void)
 {
-	cycle_t cyc = sched_io_base ? __raw_readl(sched_io_base) : 0;
-
-	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
-}
-
-static void notrace picoxcell_update_sched_clock(void)
-{
-	cycle_t cyc = sched_io_base ? __raw_readl(sched_io_base) : 0;
-
-	update_sched_clock(&cd, cyc, (u32)~0);
+	return __raw_readl(sched_io_base);
 }
 
 static const struct of_device_id picoxcell_rtc_ids[] __initconst = {
@@ -100,7 +89,7 @@
 	timer_get_base_and_rate(sched_timer, &sched_io_base, &rate);
 	of_node_put(sched_timer);
 
-	init_sched_clock(&cd, picoxcell_update_sched_clock, 32, rate);
+	setup_sched_clock(picoxcell_read_sched_clock, 32, rate);
 }
 
 static const struct of_device_id picoxcell_timer_ids[] __initconst = {
--- linux-3.2.0.orig/arch/arm/mach-ux500/Kconfig
+++ linux-3.2.0/arch/arm/mach-ux500/Kconfig
@@ -7,6 +7,7 @@
 	select HAS_MTU
 	select ARM_ERRATA_753970
 	select ARM_ERRATA_754322
+	select ARM_ERRATA_764369
 
 menu "Ux500 SoC"
 
--- linux-3.2.0.orig/arch/arm/mach-ux500/headsmp.S
+++ linux-3.2.0/arch/arm/mach-ux500/headsmp.S
@@ -32,6 +32,8 @@
 	 * should now contain the SVC stack for this core
 	 */
 	b	secondary_startup
+ENDPROC(u8500_secondary_startup)
 
+	.align 2
 1:	.long	.
 	.long	pen_release
--- linux-3.2.0.orig/arch/arm/mach-ux500/board-mop500-sdi.c
+++ linux-3.2.0/arch/arm/mach-ux500/board-mop500-sdi.c
@@ -233,6 +233,8 @@
 {
 	u32 periphid = 0x10480180;
 
+	/* On Snowball MMC_CAP_SD_HIGHSPEED isn't supported on sdi0 */
+	mop500_sdi0_data.capabilities &= ~MMC_CAP_SD_HIGHSPEED;
 	mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;
 
 	/* On-board eMMC */
--- 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/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 <will.deacon@arm.com>
+ *
+ * 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 <linux/linkage.h>
+#include <asm/assembler.h>
+
+/*
+ * 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/mach-s3c2410/include/mach/system-reset.h
+++ linux-3.2.0/arch/arm/mach-s3c2410/include/mach/system-reset.h
@@ -19,7 +19,7 @@
 arch_reset(char mode, const char *cmd)
 {
 	if (mode == 's') {
-		cpu_reset(0);
+		soft_restart(0);
 	}
 
 	if (s3c24xx_reset_hook)
@@ -28,5 +28,5 @@
 	arch_wdt_reset();
 
 	/* we'll take a jump through zero as a poor second */
-	cpu_reset(0);
+	soft_restart(0);
 }
--- 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 <linux/clk.h>
 #include <linux/jiffies.h>
 #include <linux/err.h>
-#include <linux/sched.h>
 #include <asm/mach/time.h>
 #include <asm/sched_clock.h>
 
@@ -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/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 <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/err.h>
@@ -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-u300/timer.c
+++ linux-3.2.0/arch/arm/mach-u300/timer.c
@@ -9,7 +9,6 @@
  * Author: Linus Walleij <linus.walleij@stericsson.com>
  */
 #include <linux/interrupt.h>
-#include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/timex.h>
 #include <linux/clockchips.h>
@@ -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-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/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/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-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-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-sa1100/time.c
+++ linux-3.2.0/arch/arm/mach-sa1100/time.c
@@ -12,7 +12,6 @@
 #include <linux/errno.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
-#include <linux/sched.h>	/* just for sched_clock() - funny that */
 #include <linux/timex.h>
 #include <linux/clockchips.h>
 
@@ -20,29 +19,9 @@
 #include <asm/sched_clock.h>
 #include <mach/hardware.h>
 
-/*
- * 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-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-orion5x/common.c
+++ linux-3.2.0/arch/arm/mach-orion5x/common.c
@@ -29,6 +29,7 @@
 #include <mach/hardware.h>
 #include <mach/orion5x.h>
 #include <plat/orion_nand.h>
+#include <plat/ehci-orion.h>
 #include <plat/time.h>
 #include <plat/common.h>
 #include "common.h"
@@ -72,7 +73,8 @@
 void __init orion5x_ehci0_init(void)
 {
 	orion_ehci_init(&orion5x_mbus_dram_info,
-			ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL);
+			ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL,
+			EHCI_PHY_ORION);
 }
 
 
@@ -93,7 +95,8 @@
 {
 	orion_ge00_init(eth_data, &orion5x_mbus_dram_info,
 			ORION5X_ETH_PHYS_BASE, IRQ_ORION5X_ETH_SUM,
-			IRQ_ORION5X_ETH_ERR, orion5x_tclk);
+			IRQ_ORION5X_ETH_ERR, orion5x_tclk,
+			MV643XX_TX_CSUM_DEFAULT_LIMIT);
 }
 
 
--- linux-3.2.0.orig/arch/arm/mach-orion5x/mpp.h
+++ linux-3.2.0/arch/arm/mach-orion5x/mpp.h
@@ -65,8 +65,8 @@
 #define MPP8_GIGE               MPP(8,  0x1, 0, 0, 1,   1,   1)
 
 #define MPP9_UNUSED		MPP(9,  0x0, 0, 0, 1,   1,   1)
-#define MPP9_GPIO		MPP(9,  0x0, 0, 0, 1,   1,   1)
-#define MPP9_GIGE               MPP(9,  0x1, 1, 1, 1,   1,   1)
+#define MPP9_GPIO		MPP(9,  0x0, 1, 1, 1,   1,   1)
+#define MPP9_GIGE               MPP(9,  0x1, 0, 0, 1,   1,   1)
 
 #define MPP10_UNUSED		MPP(10, 0x0, 0, 0, 1,   1,   1)
 #define MPP10_GPIO		MPP(10, 0x0, 1, 1, 1,   1,   1)
--- linux-3.2.0.orig/arch/arm/plat-samsung/adc.c
+++ linux-3.2.0/arch/arm/plat-samsung/adc.c
@@ -157,11 +157,13 @@
 		return -EINVAL;
 	}
 
-	if (client->is_ts && adc->ts_pend)
-		return -EAGAIN;
-
 	spin_lock_irqsave(&adc->lock, flags);
 
+	if (client->is_ts && adc->ts_pend) {
+		spin_unlock_irqrestore(&adc->lock, flags);
+		return -EAGAIN;
+	}
+
 	client->channel = channel;
 	client->nr_samples = nr_samples;
 
--- linux-3.2.0.orig/arch/arm/plat-samsung/include/plat/watchdog-reset.h
+++ linux-3.2.0/arch/arm/plat-samsung/include/plat/watchdog-reset.h
@@ -24,7 +24,7 @@
 
 	__raw_writel(0, S3C2410_WTCON);	  /* disable watchdog, to be safe  */
 
-	if (s3c2410_wdtclk)
+	if (!IS_ERR(s3c2410_wdtclk))
 		clk_enable(s3c2410_wdtclk);
 
 	/* put initial values into count and data */
--- linux-3.2.0.orig/arch/arm/plat-samsung/include/plat/map-s3c.h
+++ linux-3.2.0/arch/arm/plat-samsung/include/plat/map-s3c.h
@@ -22,7 +22,7 @@
 #define S3C24XX_VA_WATCHDOG	S3C_VA_WATCHDOG
 
 #define S3C2412_VA_SSMC		S3C_ADDR_CPU(0x00000000)
-#define S3C2412_VA_EBI		S3C_ADDR_CPU(0x00010000)
+#define S3C2412_VA_EBI		S3C_ADDR_CPU(0x00100000)
 
 #define S3C2410_PA_UART		(0x50000000)
 #define S3C24XX_PA_UART		S3C2410_PA_UART
--- 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 <asm/cacheflush.h>
 #include <asm/hardware/gic.h>
 #include <asm/smp_scu.h>
-#include <asm/unified.h>
 
 #include <mach/hardware.h>
 #include <mach/regs-clock.h>
@@ -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-iop/time.c
+++ linux-3.2.0/arch/arm/plat-iop/time.c
@@ -18,7 +18,6 @@
 #include <linux/time.h>
 #include <linux/init.h>
 #include <linux/timex.h>
-#include <linux/sched.h>
 #include <linux/io.h>
 #include <linux/clocksource.h>
 #include <linux/clockchips.h>
@@ -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-omap2/prminst44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/prminst44xx.c
@@ -16,7 +16,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm44xx.h"
 #include "prminst44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/pm34xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/pm34xx.c
@@ -42,6 +42,7 @@
 #include <plat/gpmc.h>
 #include <plat/dma.h>
 
+#include "common.h"
 #include "cm2xxx_3xxx.h"
 #include "cm-regbits-34xx.h"
 #include "prm-regbits-34xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/cminst44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/cminst44xx.c
@@ -20,7 +20,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "cm.h"
 #include "cm1_44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/vp.c
+++ linux-3.2.0/arch/arm/mach-omap2/vp.c
@@ -1,7 +1,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "voltage.h"
 #include "vp.h"
@@ -41,6 +41,11 @@
 	u32 val, sys_clk_rate, timeout, waittime;
 	u32 vddmin, vddmax, vstepmin, vstepmax;
 
+	if (!voltdm->pmic || !voltdm->pmic->uv_to_vsel) {
+		pr_err("%s: No PMIC info for vdd_%s\n", __func__, voltdm->name);
+		return;
+	}
+
 	if (!voltdm->read || !voltdm->write) {
 		pr_err("%s: No read/write API for accessing vdd_%s regs\n",
 			__func__, voltdm->name);
--- linux-3.2.0.orig/arch/arm/mach-omap2/vp44xx_data.c
+++ linux-3.2.0/arch/arm/mach-omap2/vp44xx_data.c
@@ -19,7 +19,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm44xx.h"
 #include "prm-regbits-44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/omap_hwmod.c
+++ linux-3.2.0/arch/arm/mach-omap2/omap_hwmod.c
@@ -137,7 +137,7 @@
 #include <linux/mutex.h>
 #include <linux/spinlock.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/cpu.h>
 #include "clockdomain.h"
 #include "powerdomain.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/prcm_mpu44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/prcm_mpu44xx.c
@@ -15,7 +15,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prcm_mpu44xx.h"
 #include "cm-regbits-44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3logic.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3logic.c
@@ -40,7 +40,7 @@
 
 #include <plat/mux.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc-smsc911x.h>
 #include <plat/gpmc.h>
 #include <plat/sdrc.h>
@@ -210,6 +210,7 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3logic_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
@@ -219,4 +220,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3logic_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/vc44xx_data.c
+++ linux-3.2.0/arch/arm/mach-omap2/vc44xx_data.c
@@ -18,7 +18,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm44xx.h"
 #include "prm-regbits-44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-h4.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-h4.c
@@ -34,7 +34,7 @@
 
 #include <plat/usb.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/menelaus.h>
 #include <plat/dma.h>
 #include <plat/gpmc.h>
@@ -398,4 +398,5 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_h4_init,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/display.c
+++ linux-3.2.0/arch/arm/mach-omap2/display.c
@@ -22,12 +22,13 @@
 #include <linux/io.h>
 #include <linux/clk.h>
 #include <linux/err.h>
+#include <linux/delay.h>
 
 #include <video/omapdss.h>
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap-pm.h>
-#include <plat/common.h>
+#include "common.h"
 
 #include "control.h"
 #include "display.h"
--- 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 <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm-regbits-34xx.h"
 #include "voltage.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/cpuidle34xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/cpuidle34xx.c
@@ -34,6 +34,7 @@
 
 #include "pm.h"
 #include "control.h"
+#include "common.h"
 
 #ifdef CONFIG_CPU_IDLE
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-devkit8000.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-devkit8000.c
@@ -41,7 +41,7 @@
 #include <asm/mach/flash.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/nand.h>
 #include <plat/usb.h>
@@ -662,4 +662,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= devkit8000_init,
 	.timer		= &omap3_secure_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3beagle.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3beagle.c
@@ -40,7 +40,7 @@
 #include <asm/mach/flash.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <video/omapdss.h>
 #include <video/omap-panel-dvi.h>
 #include <plat/gpmc.h>
@@ -561,4 +561,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3_beagle_init,
 	.timer		= &omap3_secure_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-rm680.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-rm680.c
@@ -25,7 +25,7 @@
 #include <plat/mmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/onenand.h>
 
 #include "mux.h"
@@ -151,4 +151,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= rm680_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-4430sdp.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-4430sdp.c
@@ -27,13 +27,12 @@
 #include <linux/leds_pwm.h>
 
 #include <mach/hardware.h>
-#include <mach/omap4-common.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 #include <plat/mmc.h>
 #include <plat/omap4-keypad.h>
@@ -52,8 +51,9 @@
 #define ETH_KS8851_QUART		138
 #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO	184
 #define OMAP4_SFH7741_ENABLE_GPIO		188
-#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
+#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
 #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
+#define HDMI_GPIO_HPD  63 /* Hotplug detect */
 #define DISPLAY_SEL_GPIO	59	/* LCD2/PicoDLP switch */
 #define DLP_POWER_ON_GPIO	40
 
@@ -597,12 +597,8 @@
 
 static void sdp4430_hdmi_mux_init(void)
 {
-	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
-	omap_mux_init_signal("hdmi_hpd",
-			OMAP_PIN_INPUT_PULLUP);
 	omap_mux_init_signal("hdmi_cec",
 			OMAP_PIN_INPUT_PULLUP);
-	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
 	omap_mux_init_signal("hdmi_ddc_scl",
 			OMAP_PIN_INPUT_PULLUP);
 	omap_mux_init_signal("hdmi_ddc_sda",
@@ -610,8 +606,9 @@
 }
 
 static struct gpio sdp4430_hdmi_gpios[] = {
-	{ HDMI_GPIO_HPD,	GPIOF_OUT_INIT_HIGH,	"hdmi_gpio_hpd"   },
+	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH,	"hdmi_gpio_ls_oe" },
+	{ HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
 };
 
 static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
@@ -628,8 +625,7 @@
 
 static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
 {
-	gpio_free(HDMI_GPIO_LS_OE);
-	gpio_free(HDMI_GPIO_HPD);
+	gpio_free_array(sdp4430_hdmi_gpios, ARRAY_SIZE(sdp4430_hdmi_gpios));
 }
 
 static struct nokia_dsi_panel_data dsi1_panel = {
@@ -745,6 +741,10 @@
 		pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
 }
 
+static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
+	.hpd_gpio = HDMI_GPIO_HPD,
+};
+
 static struct omap_dss_device sdp4430_hdmi_device = {
 	.name = "hdmi",
 	.driver_name = "hdmi_panel",
@@ -752,6 +752,7 @@
 	.platform_enable = sdp4430_panel_enable_hdmi,
 	.platform_disable = sdp4430_panel_disable_hdmi,
 	.channel = OMAP_DSS_CHANNEL_DIGIT,
+	.data = &sdp4430_hdmi_data,
 };
 
 static struct picodlp_panel_data sdp4430_picodlp_pdata = {
@@ -829,6 +830,10 @@
 	sdp4430_hdmi_mux_init();
 	sdp4430_picodlp_init();
 	omap_display_init(&sdp4430_dss_data);
+
+	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
+	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
+	omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
 }
 
 #ifdef CONFIG_OMAP_MUX
@@ -986,4 +991,5 @@
 	.init_irq	= gic_init_irq,
 	.init_machine	= omap_4430sdp_init,
 	.timer		= &omap4_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- 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 <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 
 #include <mach/board-zoom.h>
--- linux-3.2.0.orig/arch/arm/mach-omap2/voltagedomains3xxx_data.c
+++ linux-3.2.0/arch/arm/mach-omap2/voltagedomains3xxx_data.c
@@ -18,7 +18,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/cpu.h>
 
 #include "prm-regbits-34xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/voltage.c
+++ linux-3.2.0/arch/arm/mach-omap2/voltage.c
@@ -27,7 +27,7 @@
 #include <linux/slab.h>
 #include <linux/clk.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm-regbits-34xx.h"
 #include "prm-regbits-44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-am3517crane.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-am3517crane.c
@@ -27,7 +27,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 
 #include "mux.h"
@@ -100,4 +100,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= am3517_crane_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-ldp.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-ldp.c
@@ -36,7 +36,7 @@
 
 #include <plat/mcspi.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <mach/board-zoom.h>
 
@@ -436,4 +436,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_ldp_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-3630sdp.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-3630sdp.c
@@ -16,7 +16,7 @@
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 #include <plat/gpmc-smc91x.h>
 #include <plat/usb.h>
@@ -217,4 +217,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_sdp_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/prm44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/prm44xx.c
@@ -17,7 +17,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/cpu.h>
 #include <plat/prcm.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-am3517evm.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-am3517evm.c
@@ -32,7 +32,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
@@ -493,4 +493,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= am3517_evm_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- 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 <linux/wl12xx.h>
 
 #include <mach/hardware.h>
-#include <mach/omap4-common.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 #include <video/omapdss.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 #include <plat/mmc.h>
 #include <video/omap-panel-dvi.h>
@@ -51,8 +50,9 @@
 #define GPIO_HUB_NRESET		62
 #define GPIO_WIFI_PMENA		43
 #define GPIO_WIFI_IRQ		53
-#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
+#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
 #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
+#define HDMI_GPIO_HPD  63 /* Hotplug detect */
 
 /* wl127x BT, FM, GPS connectivity chip */
 static int wl1271_gpios[] = {46, -1, -1};
@@ -481,12 +481,8 @@
 
 static void omap4_panda_hdmi_mux_init(void)
 {
-	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
-	omap_mux_init_signal("hdmi_hpd",
-			OMAP_PIN_INPUT_PULLUP);
 	omap_mux_init_signal("hdmi_cec",
 			OMAP_PIN_INPUT_PULLUP);
-	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
 	omap_mux_init_signal("hdmi_ddc_scl",
 			OMAP_PIN_INPUT_PULLUP);
 	omap_mux_init_signal("hdmi_ddc_sda",
@@ -494,8 +490,9 @@
 }
 
 static struct gpio panda_hdmi_gpios[] = {
-	{ HDMI_GPIO_HPD,	GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd"   },
+	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
+	{ HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
 };
 
 static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev)
@@ -512,10 +509,13 @@
 
 static void omap4_panda_panel_disable_hdmi(struct omap_dss_device *dssdev)
 {
-	gpio_free(HDMI_GPIO_LS_OE);
-	gpio_free(HDMI_GPIO_HPD);
+	gpio_free_array(panda_hdmi_gpios, ARRAY_SIZE(panda_hdmi_gpios));
 }
 
+static struct omap_dss_hdmi_data omap4_panda_hdmi_data = {
+	.hpd_gpio = HDMI_GPIO_HPD,
+};
+
 static struct omap_dss_device  omap4_panda_hdmi_device = {
 	.name = "hdmi",
 	.driver_name = "hdmi_panel",
@@ -523,6 +523,7 @@
 	.platform_enable = omap4_panda_panel_enable_hdmi,
 	.platform_disable = omap4_panda_panel_disable_hdmi,
 	.channel = OMAP_DSS_CHANNEL_DIGIT,
+	.data = &omap4_panda_hdmi_data,
 };
 
 static struct omap_dss_device *omap4_panda_dss_devices[] = {
@@ -546,6 +547,10 @@
 
 	omap4_panda_hdmi_mux_init();
 	omap_display_init(&omap4_panda_dss_data);
+
+	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
+	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
+	omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
 }
 
 static void __init omap4_panda_init(void)
@@ -579,4 +584,5 @@
 	.init_irq	= gic_init_irq,
 	.init_machine	= omap4_panda_init,
 	.timer		= &omap4_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/pm.c
+++ linux-3.2.0/arch/arm/mach-omap2/pm.c
@@ -18,7 +18,7 @@
 
 #include <plat/omap-pm.h>
 #include <plat/omap_device.h>
-#include <plat/common.h>
+#include "common.h"
 
 #include "voltage.h"
 #include "powerdomain.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-3430sdp.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-3430sdp.c
@@ -33,7 +33,7 @@
 #include <plat/mcspi.h>
 #include <plat/board.h>
 #include <plat/usb.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/dma.h>
 #include <plat/gpmc.h>
 #include <video/omapdss.h>
@@ -730,4 +730,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_3430sdp_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-zoom.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-zoom.c
@@ -21,7 +21,7 @@
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 #include <plat/usb.h>
 
@@ -137,6 +137,7 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_zoom_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
@@ -147,4 +148,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_zoom_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/control.c
+++ linux-3.2.0/arch/arm/mach-omap2/control.c
@@ -15,7 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/sdrc.h>
 
 #include "cm-regbits-34xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-apollon.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-apollon.c
@@ -37,7 +37,7 @@
 #include <plat/led.h>
 #include <plat/usb.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 
 #include <video/omapdss.h>
@@ -356,4 +356,5 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_apollon_init,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3stalker.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3stalker.c
@@ -35,7 +35,7 @@
 #include <asm/mach/flash.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/nand.h>
 #include <plat/usb.h>
@@ -456,4 +456,5 @@
 	.init_irq		= omap3_init_irq,
 	.init_machine		= omap3_stalker_init,
 	.timer			= &omap3_secure_timer,
+	.restart		= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/omap-hotplug.c
+++ linux-3.2.0/arch/arm/mach-omap2/omap-hotplug.c
@@ -19,7 +19,8 @@
 #include <linux/smp.h>
 
 #include <asm/cacheflush.h>
-#include <mach/omap4-common.h>
+
+#include "common.h"
 
 int platform_cpu_kill(unsigned int cpu)
 {
--- linux-3.2.0.orig/arch/arm/mach-omap2/cm2xxx_3xxx.c
+++ linux-3.2.0/arch/arm/mach-omap2/cm2xxx_3xxx.c
@@ -18,7 +18,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "cm.h"
 #include "cm2xxx_3xxx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-n8x0.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-n8x0.c
@@ -26,7 +26,7 @@
 #include <asm/mach-types.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/menelaus.h>
 #include <mach/irqs.h>
 #include <plat/mcspi.h>
@@ -691,6 +691,7 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(NOKIA_N810, "Nokia N810")
@@ -701,6 +702,7 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
@@ -711,4 +713,5 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-rx51.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-rx51.c
@@ -25,7 +25,7 @@
 
 #include <plat/mcspi.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/dma.h>
 #include <plat/gpmc.h>
 #include <plat/usb.h>
@@ -129,4 +129,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= rx51_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/common.c
+++ linux-3.2.0/arch/arm/mach-omap2/common.c
@@ -17,7 +17,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 #include <plat/mux.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/timer.c
+++ linux-3.2.0/arch/arm/mach-omap2/timer.c
@@ -41,7 +41,7 @@
 #include <plat/dmtimer.h>
 #include <asm/localtimer.h>
 #include <asm/sched_clock.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/omap_hwmod.h>
 #include <plat/omap_device.h>
 #include <plat/omap-pm.h>
@@ -254,7 +254,6 @@
 /*
  * clocksource
  */
-static DEFINE_CLOCK_DATA(cd);
 static cycle_t clocksource_read_cycles(struct clocksource *cs)
 {
 	return (cycle_t)__omap_dm_timer_read_counter(&clksrc, 1);
@@ -268,23 +267,12 @@
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
-static void notrace dmtimer_update_sched_clock(void)
+static u32 notrace dmtimer_read_sched_clock(void)
 {
-	u32 cyc;
-
-	cyc = __omap_dm_timer_read_counter(&clksrc, 1);
-
-	update_sched_clock(&cd, cyc, (u32)~0);
-}
-
-unsigned long long notrace sched_clock(void)
-{
-	u32 cyc = 0;
-
 	if (clksrc.reserved)
-		cyc = __omap_dm_timer_read_counter(&clksrc, 1);
+		return __omap_dm_timer_read_counter(clksrc.io_base, 1);
 
-	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
+	return 0;
 }
 
 /* Setup free-running counter for clocksource */
@@ -301,7 +289,7 @@
 
 	__omap_dm_timer_load_start(&clksrc,
 			OMAP_TIMER_CTRL_ST | OMAP_TIMER_CTRL_AR, 0, 1);
-	init_sched_clock(&cd, dmtimer_update_sched_clock, 32, clksrc.rate);
+	setup_sched_clock(dmtimer_read_sched_clock, 32, clksrc.rate);
 
 	if (clocksource_register_hz(&clocksource_gpt, clksrc.rate))
 		pr_err("Could not register clocksource %s\n",
--- linux-3.2.0.orig/arch/arm/mach-omap2/sdrc.c
+++ linux-3.2.0/arch/arm/mach-omap2/sdrc.c
@@ -23,7 +23,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/clock.h>
 #include <plat/sram.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3touchbook.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -44,7 +44,7 @@
 #include <asm/mach/flash.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/nand.h>
 #include <plat/usb.h>
@@ -383,4 +383,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3_touchbook_init,
 	.timer		= &omap3_secure_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/cm44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/cm44xx.c
@@ -18,7 +18,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "cm.h"
 #include "cm1_44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/common.h
+++ linux-3.2.0/arch/arm/mach-omap2/common.h
@@ -0,0 +1,186 @@
+/*
+ * Header for code common to all OMAP2+ 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_OMAP2PLUS_COMMON_H
+#define __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H
+
+#include <linux/delay.h>
+#include <plat/common.h>
+
+#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 struct sys_timer omap2_timer;
+extern struct sys_timer omap3_timer;
+extern struct sys_timer omap3_secure_timer;
+extern struct sys_timer omap4_timer;
+
+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);
+void omap_prcm_restart(char, const char *);
+
+/*
+ * 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);
+
+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);
+
+/*
+ * wfi used in low power code. Directly opcode is used instead
+ * of instruction to avoid mulit-omap build break
+ */
+#ifdef CONFIG_THUMB2_KERNEL
+#define do_wfi() __asm__ __volatile__ ("wfi" : : : "memory")
+#else
+#define do_wfi()			\
+		__asm__ __volatile__ (".word	0xe320f003" : : : "memory")
+#endif
+
+#ifdef CONFIG_CACHE_L2X0
+extern void __iomem *l2cache_base;
+#endif
+
+extern void __iomem *gic_dist_base_addr;
+
+extern void __init gic_init_irq(void);
+extern void omap_smc1(u32 fn, u32 arg);
+
+#ifdef CONFIG_SMP
+/* Needed for secondary core boot */
+extern void omap_secondary_startup(void);
+extern u32 omap_modify_auxcoreboot0(u32 set_mask, u32 clear_mask);
+extern void omap_auxcoreboot_addr(u32 cpu_addr);
+extern u32 omap_read_auxcoreboot0(void);
+#endif
+
+#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-overo.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-overo.c
@@ -43,7 +43,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <video/omapdss.h>
 #include <video/omap-panel-generic-dpi.h>
 #include <video/omap-panel-dvi.h>
@@ -564,4 +564,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= overo_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-generic.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-generic.c
@@ -20,8 +20,7 @@
 #include <asm/mach/arch.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
-#include <mach/omap4-common.h>
+#include "common.h"
 #include "common-board-devices.h"
 
 /*
@@ -107,6 +106,7 @@
 	.init_machine	= omap_generic_init,
 	.timer		= &omap2_timer,
 	.dt_compat	= omap242x_boards_compat,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 #endif
 
@@ -125,6 +125,7 @@
 	.init_machine	= omap_generic_init,
 	.timer		= &omap2_timer,
 	.dt_compat	= omap243x_boards_compat,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 #endif
 
@@ -143,6 +144,7 @@
 	.init_machine	= omap3_init,
 	.timer		= &omap3_timer,
 	.dt_compat	= omap3_boards_compat,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 #endif
 
@@ -161,5 +163,6 @@
 	.init_machine	= omap4_init,
 	.timer		= &omap4_timer,
 	.dt_compat	= omap4_boards_compat,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 #endif
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-cm-t35.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-cm-t35.c
@@ -37,7 +37,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/nand.h>
 #include <plat/gpmc.h>
 #include <plat/usb.h>
@@ -636,6 +636,7 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= cm_t35_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(CM_T3730, "Compulab CM-T3730")
@@ -646,4 +647,5 @@
 	.init_irq       = omap3_init_irq,
 	.init_machine   = cm_t3730_init,
 	.timer          = &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/omap-smp.c
+++ linux-3.2.0/arch/arm/mach-omap2/omap-smp.c
@@ -24,7 +24,8 @@
 #include <asm/hardware/gic.h>
 #include <asm/smp_scu.h>
 #include <mach/hardware.h>
-#include <mach/omap4-common.h>
+
+#include "common.h"
 
 /* SCU base address */
 static void __iomem *scu_base;
--- linux-3.2.0.orig/arch/arm/mach-omap2/sdram-nokia.c
+++ linux-3.2.0/arch/arm/mach-omap2/sdram-nokia.c
@@ -18,7 +18,7 @@
 #include <linux/io.h>
 
 #include <plat/io.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/clock.h>
 #include <plat/sdrc.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/omap4-common.c
+++ linux-3.2.0/arch/arm/mach-omap2/omap4-common.c
@@ -22,7 +22,8 @@
 #include <plat/irqs.h>
 
 #include <mach/hardware.h>
-#include <mach/omap4-common.h>
+
+#include "common.h"
 
 #ifdef CONFIG_CACHE_L2X0
 void __iomem *l2cache_base;
--- linux-3.2.0.orig/arch/arm/mach-omap2/voltagedomains44xx_data.c
+++ linux-3.2.0/arch/arm/mach-omap2/voltagedomains44xx_data.c
@@ -21,7 +21,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm-regbits-44xx.h"
 #include "prm44xx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-cm-t3517.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-cm-t3517.c
@@ -39,7 +39,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/usb.h>
 #include <plat/nand.h>
 #include <plat/gpmc.h>
@@ -301,4 +301,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= cm_t3517_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/sdrc2xxx.c
+++ linux-3.2.0/arch/arm/mach-omap2/sdrc2xxx.c
@@ -24,7 +24,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/clock.h>
 #include <plat/sram.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3pandora.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3pandora.c
@@ -41,7 +41,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <mach/hardware.h>
 #include <plat/mcspi.h>
 #include <plat/usb.h>
@@ -608,4 +608,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3pandora_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/prm2xxx_3xxx.c
+++ linux-3.2.0/arch/arm/mach-omap2/prm2xxx_3xxx.c
@@ -16,7 +16,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/cpu.h>
 #include <plat/prcm.h>
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/gpmc.c
+++ linux-3.2.0/arch/arm/mach-omap2/gpmc.c
@@ -528,7 +528,13 @@
 
 	case GPMC_CONFIG_DEV_SIZE:
 		regval  = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
+
+		/* clear 2 target bits */
+		regval &= ~GPMC_CONFIG1_DEVICESIZE(3);
+
+		/* set the proper value */
 		regval |= GPMC_CONFIG1_DEVICESIZE(wval);
+
 		gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, regval);
 		break;
 
--- linux-3.2.0.orig/arch/arm/mach-omap2/id.c
+++ linux-3.2.0/arch/arm/mach-omap2/id.c
@@ -21,7 +21,7 @@
 
 #include <asm/cputype.h>
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/cpu.h>
 
 #include <mach/id.h>
--- linux-3.2.0.orig/arch/arm/mach-omap2/omap-iommu.c
+++ linux-3.2.0/arch/arm/mach-omap2/omap-iommu.c
@@ -150,7 +150,8 @@
 		platform_device_put(omap_iommu_pdev[i]);
 	return err;
 }
-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/arch/arm/mach-omap2/board-igep0020.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-igep0020.c
@@ -28,7 +28,7 @@
 #include <asm/mach/arch.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <video/omapdss.h>
@@ -674,6 +674,7 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= igep_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
 
 MACHINE_START(IGEP0030, "IGEP OMAP3 module")
@@ -684,4 +685,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= igep_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/vc3xxx_data.c
+++ linux-3.2.0/arch/arm/mach-omap2/vc3xxx_data.c
@@ -18,7 +18,7 @@
 #include <linux/err.h>
 #include <linux/init.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "prm-regbits-34xx.h"
 #include "voltage.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/pm24xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/pm24xx.c
@@ -42,6 +42,7 @@
 #include <plat/dma.h>
 #include <plat/board.h>
 
+#include "common.h"
 #include "prm2xxx_3xxx.h"
 #include "prm-regbits-24xx.h"
 #include "cm2xxx_3xxx.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/smartreflex.c
+++ linux-3.2.0/arch/arm/mach-omap2/smartreflex.c
@@ -26,7 +26,7 @@
 #include <linux/slab.h>
 #include <linux/pm_runtime.h>
 
-#include <plat/common.h>
+#include "common.h"
 
 #include "pm.h"
 #include "smartreflex.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/prcm.c
+++ linux-3.2.0/arch/arm/mach-omap2/prcm.c
@@ -25,8 +25,7 @@
 #include <linux/delay.h>
 #include <linux/export.h>
 
-#include <mach/system.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/prcm.h>
 #include <plat/irqs.h>
 
@@ -59,7 +58,7 @@
 EXPORT_SYMBOL(omap_prcm_get_reset_sources);
 
 /* Resets clock rates and reboots the system. Only called from system.h */
-static void omap_prcm_arch_reset(char mode, const char *cmd)
+void omap_prcm_restart(char mode, const char *cmd)
 {
 	s16 prcm_offs = 0;
 
@@ -110,8 +109,6 @@
 	omap2_prm_read_mod_reg(prcm_offs, OMAP2_RM_RSTCTRL); /* OCP barrier */
 }
 
-void (*arch_reset)(char, const char *) = omap_prcm_arch_reset;
-
 /**
  * omap2_cm_wait_idlest - wait for IDLEST bit to indicate module readiness
  * @reg: physical address of module IDLEST register
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-2430sdp.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-2430sdp.c
@@ -34,7 +34,7 @@
 #include <asm/mach/map.h>
 
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/gpmc.h>
 #include <plat/usb.h>
 #include <plat/gpmc-smc91x.h>
@@ -303,4 +303,5 @@
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_2430sdp_init,
 	.timer		= &omap2_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-ti8168evm.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-ti8168evm.c
@@ -22,7 +22,7 @@
 
 #include <plat/irqs.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 
 static struct omap_board_config_kernel ti8168_evm_config[] __initdata = {
 };
@@ -48,4 +48,5 @@
 	.init_irq	= ti816x_init_irq,
 	.timer		= &omap3_timer,
 	.init_machine	= ti8168_evm_init,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- 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 <plat/omap-serial.h>
 #endif
 
-#include <plat/common.h>
+#include "common.h"
 #include <plat/board.h>
 #include <plat/clock.h>
 #include <plat/dma.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 <plat/common.h>
+#include "common.h"
 #include <plat/omap-pm.h>
 #include "voltage.h"
 #include "powerdomain.h"
@@ -43,7 +43,7 @@
 #include "clockdomain.h"
 #include <plat/omap_hwmod.h>
 #include <plat/multi.h>
-#include <plat/common.h>
+#include "common.h"
 
 /*
  * The machine specific code may provide the extra mapping besides the
--- linux-3.2.0.orig/arch/arm/mach-omap2/i2c.c
+++ linux-3.2.0/arch/arm/mach-omap2/i2c.c
@@ -21,7 +21,7 @@
 
 #include <plat/cpu.h>
 #include <plat/i2c.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/omap_hwmod.h>
 
 #include "mux.h"
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-omap3evm.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-omap3evm.c
@@ -43,7 +43,7 @@
 
 #include <plat/board.h>
 #include <plat/usb.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/mcspi.h>
 #include <video/omapdss.h>
 #include <video/omap-panel-dvi.h>
@@ -683,4 +683,5 @@
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3_evm_init,
 	.timer		= &omap3_timer,
+	.restart	= omap_prcm_restart,
 MACHINE_END
--- linux-3.2.0.orig/arch/arm/mach-omap2/pm44xx.c
+++ linux-3.2.0/arch/arm/mach-omap2/pm44xx.c
@@ -16,8 +16,8 @@
 #include <linux/err.h>
 #include <linux/slab.h>
 
+#include "common.h"
 #include "powerdomain.h"
-#include <mach/omap4-common.h>
 
 struct power_state {
 	struct powerdomain *pwrdm;
--- linux-3.2.0.orig/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ linux-3.2.0/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -27,7 +27,7 @@
 
 #include <plat/mcspi.h>
 #include <plat/board.h>
-#include <plat/common.h>
+#include "common.h"
 #include <plat/dma.h>
 #include <plat/gpmc.h>
 #include <plat/onenand.h>
--- linux-3.2.0.orig/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
+++ linux-3.2.0/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
@@ -941,10 +941,10 @@
 #define OMAP4_DSI2_LANEENABLE_MASK				(0x7 << 29)
 #define OMAP4_DSI1_LANEENABLE_SHIFT				24
 #define OMAP4_DSI1_LANEENABLE_MASK				(0x1f << 24)
-#define OMAP4_DSI2_PIPD_SHIFT					19
-#define OMAP4_DSI2_PIPD_MASK					(0x1f << 19)
-#define OMAP4_DSI1_PIPD_SHIFT					14
-#define OMAP4_DSI1_PIPD_MASK					(0x1f << 14)
+#define OMAP4_DSI1_PIPD_SHIFT					19
+#define OMAP4_DSI1_PIPD_MASK					(0x1f << 19)
+#define OMAP4_DSI2_PIPD_SHIFT					14
+#define OMAP4_DSI2_PIPD_MASK					(0x1f << 14)
 
 /* CONTROL_MCBSPLP */
 #define OMAP4_ALBCTRLRX_FSX_SHIFT				31
--- 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/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/counter_32k.c
+++ linux-3.2.0/arch/arm/plat-omap/counter_32k.c
@@ -17,7 +17,6 @@
 #include <linux/clk.h>
 #include <linux/err.h>
 #include <linux/io.h>
-#include <linux/sched.h>
 #include <linux/clocksource.h>
 
 #include <asm/sched_clock.h>
@@ -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/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 <mach/hardware.h>
--- 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/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 <linux/delay.h>
-
 #include <plat/i2c.h>
 #include <plat/omap_hwmod.h>
 
-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/mach-ixp4xx/common.c
+++ linux-3.2.0/arch/arm/mach-ixp4xx/common.c
@@ -17,7 +17,6 @@
 #include <linux/mm.h>
 #include <linux/init.h>
 #include <linux/serial.h>
-#include <linux/sched.h>
 #include <linux/tty.h>
 #include <linux/platform_device.h>
 #include <linux/serial_core.h>
@@ -29,6 +28,7 @@
 #include <linux/clockchips.h>
 #include <linux/io.h>
 #include <linux/export.h>
+#include <linux/gpio.h>
 
 #include <mach/udc.h>
 #include <mach/hardware.h>
@@ -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 <msvoboda@ra.rockwell.com>
- * Based on PXA implementation by Philipp Zabel <philipp.zabel@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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 <linux/kernel.h>
-#include <mach/hardware.h>
-
-#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 <asm-generic/gpio.h>			/* 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/vfp/vfpmodule.c
+++ linux-3.2.0/arch/arm/vfp/vfpmodule.c
@@ -11,6 +11,7 @@
 #include <linux/types.h>
 #include <linux/cpu.h>
 #include <linux/cpu_pm.h>
+#include <linux/hardirq.h>
 #include <linux/kernel.h>
 #include <linux/notifier.h>
 #include <linux/signal.h>
@@ -428,7 +429,10 @@
 
 static void vfp_enable(void *unused)
 {
-	u32 access = get_copro_access();
+	u32 access;
+
+	BUG_ON(preemptible());
+	access = get_copro_access();
 
 	/*
 	 * Enable full access to VFP (cp10 and cp11)
@@ -449,10 +453,16 @@
 
 		/* disable, just in case */
 		fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
+	} else if (vfp_current_hw_state[ti->cpu]) {
+#ifndef CONFIG_SMP
+		fmxr(FPEXC, fpexc | FPEXC_EN);
+		vfp_save_state(vfp_current_hw_state[ti->cpu], fpexc);
+		fmxr(FPEXC, fpexc);
+#endif
 	}
 
 	/* clear any information we had about last context state */
-	memset(vfp_current_hw_state, 0, sizeof(vfp_current_hw_state));
+	vfp_current_hw_state[ti->cpu] = NULL;
 
 	return 0;
 }
@@ -556,7 +566,7 @@
 	unsigned int cpu_arch = cpu_architecture();
 
 	if (cpu_arch >= CPU_ARCH_ARMv6)
-		vfp_enable(NULL);
+		on_each_cpu(vfp_enable, NULL, 1);
 
 	/*
 	 * First check that there is a VFP that we can use.
@@ -577,8 +587,6 @@
 	} else {
 		hotcpu_notifier(vfp_hotplug, 0);
 
-		smp_call_function(vfp_enable, NULL, 1);
-
 		VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT;  /* Extract the architecture version */
 		printk("implementor %02x architecture %d part %02x variant %x rev %x\n",
 			(vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT,
@@ -620,8 +628,10 @@
 			if ((fmrx(MVFR1) & 0x000fff00) == 0x00011100)
 				elf_hwcap |= HWCAP_NEON;
 #endif
+#ifdef CONFIG_VFPv3
 			if ((fmrx(MVFR1) & 0xf0000000) == 0x10000000)
 				elf_hwcap |= HWCAP_VFPv4;
+#endif
 		}
 	}
 	return 0;
--- linux-3.2.0.orig/arch/arm/vfp/vfphw.S
+++ linux-3.2.0/arch/arm/vfp/vfphw.S
@@ -61,13 +61,13 @@
 
 @ VFP hardware support entry point.
 @
-@  r0  = faulted instruction
-@  r2  = faulted PC+4
-@  r9  = successful return
+@  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
+@  r2  = PC value to resume execution after successful emulation
+@  r9  = normal "successful" return address
 @  r10 = vfp_state union
 @  r11 = CPU number
-@  lr  = failure return
-
+@  lr  = unrecognised instruction return address
+@  IRQs enabled.
 ENTRY(vfp_support_entry)
 	DBGSTR3	"instr %08x pc %08x state %p", r0, r2, r10
 
@@ -161,9 +161,12 @@
 					@ exception before retrying branch
 					@ out before setting an FPEXC that
 					@ stops us reading stuff
-	VFPFMXR	FPEXC, r1		@ restore FPEXC last
-	sub	r2, r2, #4
-	str	r2, [sp, #S_PC]		@ retry the instruction
+	VFPFMXR	FPEXC, r1		@ Restore FPEXC last
+	sub	r2, r2, #4		@ Retry current instruction - if Thumb
+	str	r2, [sp, #S_PC]		@ mode it's two 16-bit instructions,
+					@ else it's one 32-bit instruction, so
+					@ always subtract 4 from the following
+					@ instruction address.
 #ifdef CONFIG_PREEMPT
 	get_thread_info	r10
 	ldr	r4, [r10, #TI_PREEMPT]	@ get preempt count
--- linux-3.2.0.orig/arch/arm/vfp/entry.S
+++ linux-3.2.0/arch/arm/vfp/entry.S
@@ -7,18 +7,20 @@
  * 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.
- *
- * Basic entry code, called from the kernel's undefined instruction trap.
- *  r0  = faulted instruction
- *  r5  = faulted PC+4
- *  r9  = successful return
- *  r10 = thread_info structure
- *  lr  = failure return
  */
 #include <asm/thread_info.h>
 #include <asm/vfpmacros.h>
 #include "../kernel/entry-header.S"
 
+@ VFP entry point.
+@
+@  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
+@  r2  = PC value to resume execution after successful emulation
+@  r9  = normal "successful" return address
+@  r10 = this threads thread_info structure
+@  lr  = unrecognised instruction return address
+@  IRQs disabled.
+@
 ENTRY(do_vfp)
 #ifdef CONFIG_PREEMPT
 	ldr	r4, [r10, #TI_PREEMPT]	@ get preempt count
--- 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/mm/proc-arm1020e.S
+++ linux-3.2.0/arch/arm/mm/proc-arm1020e.S
@@ -95,6 +95,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm1020e_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -107,6 +108,8 @@
 	bic	ip, ip, #0x1100 		@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm1020e_reset)
+	.popsection
 
 /*
  * cpu_arm1020e_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/cache-v7.S
+++ linux-3.2.0/arch/arm/mm/cache-v7.S
@@ -54,9 +54,15 @@
 	and	r1, r1, #7			@ mask of the bits for current cache only
 	cmp	r1, #2				@ see what cache we have at this level
 	blt	skip				@ skip if no cache, or just i-cache
+#ifdef CONFIG_PREEMPT
+	save_and_disable_irqs_notrace r9	@ make cssr&csidr read atomic
+#endif
 	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
 	isb					@ isb to sych the new cssr&csidr
 	mrc	p15, 1, r1, c0, c0, 0		@ read the new csidr
+#ifdef CONFIG_PREEMPT
+	restore_irqs_notrace r9
+#endif
 	and	r2, r1, #7			@ extract the length of the cache lines
 	add	r2, r2, #4			@ add 4 (line length offset)
 	ldr	r4, =0x3ff
--- linux-3.2.0.orig/arch/arm/mm/fault.c
+++ linux-3.2.0/arch/arm/mm/fault.c
@@ -231,7 +231,7 @@
 
 static int __kprobes
 __do_page_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
-		struct task_struct *tsk)
+		unsigned int flags, struct task_struct *tsk)
 {
 	struct vm_area_struct *vma;
 	int fault;
@@ -253,21 +253,12 @@
 		goto out;
 	}
 
-	/*
-	 * If for any reason at all we couldn't handle the fault, make
-	 * sure we exit gracefully rather than endlessly redo the fault.
-	 */
-	fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, (fsr & FSR_WRITE) ? FAULT_FLAG_WRITE : 0);
-	if (unlikely(fault & VM_FAULT_ERROR))
-		return fault;
-	if (fault & VM_FAULT_MAJOR)
-		tsk->maj_flt++;
-	else
-		tsk->min_flt++;
-	return fault;
+	return handle_mm_fault(mm, vma, addr & PAGE_MASK, flags);
 
 check_stack:
-	if (vma->vm_flags & VM_GROWSDOWN && !expand_stack(vma, addr))
+	/* Don't allow expansion below FIRST_USER_ADDRESS */
+	if (vma->vm_flags & VM_GROWSDOWN &&
+	    addr >= FIRST_USER_ADDRESS && !expand_stack(vma, addr))
 		goto good_area;
 out:
 	return fault;
@@ -279,6 +270,9 @@
 	struct task_struct *tsk;
 	struct mm_struct *mm;
 	int fault, sig, code;
+	int write = fsr & FSR_WRITE;
+	unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE |
+				(write ? FAULT_FLAG_WRITE : 0);
 
 	if (notify_page_fault(regs, fsr))
 		return 0;
@@ -305,6 +299,7 @@
 	if (!down_read_trylock(&mm->mmap_sem)) {
 		if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc))
 			goto no_context;
+retry:
 		down_read(&mm->mmap_sem);
 	} else {
 		/*
@@ -320,14 +315,41 @@
 #endif
 	}
 
-	fault = __do_page_fault(mm, addr, fsr, tsk);
-	up_read(&mm->mmap_sem);
+	fault = __do_page_fault(mm, addr, fsr, flags, tsk);
+
+	/* If we need to retry but a fatal signal is pending, handle the
+	 * signal first. We do not need to release the mmap_sem because
+	 * it would already be released in __lock_page_or_retry in
+	 * mm/filemap.c. */
+	if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
+		return 0;
+
+	/*
+	 * Major/minor page fault accounting is only done on the
+	 * initial attempt. If we go through a retry, it is extremely
+	 * likely that the page will be found in page cache at that point.
+	 */
 
 	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);
-	if (fault & VM_FAULT_MAJOR)
-		perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, addr);
-	else if (fault & VM_FAULT_MINOR)
-		perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, addr);
+	if (!(fault & VM_FAULT_ERROR) && flags & FAULT_FLAG_ALLOW_RETRY) {
+		if (fault & VM_FAULT_MAJOR) {
+			tsk->maj_flt++;
+			perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1,
+					regs, addr);
+		} else {
+			tsk->min_flt++;
+			perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1,
+					regs, addr);
+		}
+		if (fault & VM_FAULT_RETRY) {
+			/* Clear FAULT_FLAG_ALLOW_RETRY to avoid any risk
+			* of starvation. */
+			flags &= ~FAULT_FLAG_ALLOW_RETRY;
+			goto retry;
+		}
+	}
+
+	up_read(&mm->mmap_sem);
 
 	/*
 	 * Handle the "normal" case first - VM_FAULT_MAJOR / VM_FAULT_MINOR
--- linux-3.2.0.orig/arch/arm/mm/proc-fa526.S
+++ linux-3.2.0/arch/arm/mm/proc-fa526.S
@@ -57,6 +57,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	4
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_fa526_reset)
 /* TODO: Use CP8 if possible... */
 	mov	ip, #0
@@ -73,6 +74,8 @@
 	nop
 	nop
 	mov	pc, r0
+ENDPROC(cpu_fa526_reset)
+	.popsection
 
 /*
  * cpu_fa526_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/nommu.c
+++ linux-3.2.0/arch/arm/mm/nommu.c
@@ -43,7 +43,7 @@
 /*
  * We don't need to do anything here for nommu machines.
  */
-void setup_mm_for_reboot(char mode)
+void setup_mm_for_reboot(void)
 {
 }
 
--- linux-3.2.0.orig/arch/arm/mm/flush.c
+++ linux-3.2.0/arch/arm/mm/flush.c
@@ -236,8 +236,6 @@
 	struct page *page;
 	struct address_space *mapping;
 
-	if (!pte_present_user(pteval))
-		return;
 	if (cache_is_vipt_nonaliasing() && !pte_exec(pteval))
 		/* only flush non-aliasing VIPT caches for exec mappings */
 		return;
--- linux-3.2.0.orig/arch/arm/mm/proc-arm925.S
+++ linux-3.2.0/arch/arm/mm/proc-arm925.S
@@ -108,6 +108,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm925_reset)
 	/* Send software reset to MPU and DSP */
 	mov	ip, #0xff000000
@@ -115,6 +116,8 @@
 	orr	ip, ip, #0x0000ce00
 	mov	r4, #1
 	strh	r4, [ip, #0x10]
+ENDPROC(cpu_arm925_reset)
+	.popsection
 
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
--- linux-3.2.0.orig/arch/arm/mm/Kconfig
+++ linux-3.2.0/arch/arm/mm/Kconfig
@@ -867,7 +867,7 @@
 config ARM_DMA_MEM_BUFFERABLE
 	bool "Use non-cacheable memory for DMA" if (CPU_V6 || CPU_V6K) && !CPU_V7
 	depends on !(MACH_REALVIEW_PB1176 || REALVIEW_EB_ARM11MP || \
-		     MACH_REALVIEW_PB11MP)
+		     MACH_REALVIEW_PB11MP || ARCH_HIGHBANK)
 	default y if CPU_V6 || CPU_V6K || CPU_V7
 	help
 	  Historically, the kernel has used strongly ordered mappings to
--- linux-3.2.0.orig/arch/arm/mm/proc-arm940.S
+++ linux-3.2.0/arch/arm/mm/proc-arm940.S
@@ -48,6 +48,7 @@
  * Params  : r0 = address to jump to
  * Notes   : This sets up everything for a reset
  */
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm940_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c5, 0		@ flush I cache
@@ -58,6 +59,8 @@
 	bic	ip, ip, #0x00001000		@ i-cache
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm940_reset)
+	.popsection
 
 /*
  * cpu_arm940_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm9tdmi.S
+++ linux-3.2.0/arch/arm/mm/proc-arm9tdmi.S
@@ -45,8 +45,11 @@
  * Params  : loc(r0)	address to jump to
  * Purpose : Sets up everything for a reset and jump to the location for soft reset.
  */
+		.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm9tdmi_reset)
 		mov	pc, r0
+ENDPROC(cpu_arm9tdmi_reset)
+		.popsection
 
 		__CPUINIT
 
--- linux-3.2.0.orig/arch/arm/mm/proc-arm922.S
+++ linux-3.2.0/arch/arm/mm/proc-arm922.S
@@ -87,6 +87,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm922_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -99,6 +100,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm922_reset)
+	.popsection
 
 /*
  * cpu_arm922_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-sa110.S
+++ linux-3.2.0/arch/arm/mm/proc-sa110.S
@@ -62,6 +62,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_sa110_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -74,6 +75,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_sa110_reset)
+	.popsection
 
 /*
  * cpu_sa110_do_idle(type)
--- linux-3.2.0.orig/arch/arm/mm/proc-mohawk.S
+++ linux-3.2.0/arch/arm/mm/proc-mohawk.S
@@ -69,6 +69,7 @@
  * (same as arm926)
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_mohawk_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -79,6 +80,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_mohawk_reset)
+	.popsection
 
 /*
  * cpu_mohawk_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-feroceon.S
+++ linux-3.2.0/arch/arm/mm/proc-feroceon.S
@@ -98,6 +98,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_feroceon_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -110,6 +111,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_feroceon_reset)
+	.popsection
 
 /*
  * cpu_feroceon_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm720.S
+++ linux-3.2.0/arch/arm/mm/proc-arm720.S
@@ -101,6 +101,7 @@
  * Params  : r0 = address to jump to
  * Notes   : This sets up everything for a reset
  */
+		.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm720_reset)
 		mov	ip, #0
 		mcr	p15, 0, ip, c7, c7, 0		@ invalidate cache
@@ -112,6 +113,8 @@
 		bic	ip, ip, #0x2100			@ ..v....s........
 		mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 		mov	pc, r0
+ENDPROC(cpu_arm720_reset)
+		.popsection
 
 	__CPUINIT
 
--- linux-3.2.0.orig/arch/arm/mm/proc-arm946.S
+++ linux-3.2.0/arch/arm/mm/proc-arm946.S
@@ -55,6 +55,7 @@
  * Params  : r0 = address to jump to
  * Notes   : This sets up everything for a reset
  */
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm946_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c5, 0		@ flush I cache
@@ -65,6 +66,8 @@
 	bic	ip, ip, #0x00001000		@ i-cache
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm946_reset)
+	.popsection
 
 /*
  * cpu_arm946_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm920.S
+++ linux-3.2.0/arch/arm/mm/proc-arm920.S
@@ -85,6 +85,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm920_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -97,6 +98,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm920_reset)
+	.popsection
 
 /*
  * cpu_arm920_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/cache-l2x0.c
+++ linux-3.2.0/arch/arm/mm/cache-l2x0.c
@@ -32,6 +32,7 @@
 static DEFINE_RAW_SPINLOCK(l2x0_lock);
 static uint32_t l2x0_way_mask;	/* Bitmask of active ways */
 static uint32_t l2x0_size;
+static unsigned long sync_reg_offset = L2X0_CACHE_SYNC;
 
 struct l2x0_regs l2x0_saved_regs;
 
@@ -61,12 +62,7 @@
 {
 	void __iomem *base = l2x0_base;
 
-#ifdef CONFIG_PL310_ERRATA_753970
-	/* write to an unmmapped register */
-	writel_relaxed(0, base + L2X0_DUMMY_REG);
-#else
-	writel_relaxed(0, base + L2X0_CACHE_SYNC);
-#endif
+	writel_relaxed(0, base + sync_reg_offset);
 	cache_wait(base + L2X0_CACHE_SYNC, 1);
 }
 
@@ -85,10 +81,13 @@
 }
 
 #if defined(CONFIG_PL310_ERRATA_588369) || defined(CONFIG_PL310_ERRATA_727915)
+static inline void debug_writel(unsigned long val)
+{
+	if (outer_cache.set_debug)
+		outer_cache.set_debug(val);
+}
 
-#define debug_writel(val)	outer_cache.set_debug(val)
-
-static void l2x0_set_debug(unsigned long val)
+static void pl310_set_debug(unsigned long val)
 {
 	writel_relaxed(val, l2x0_base + L2X0_DEBUG_CTRL);
 }
@@ -98,7 +97,7 @@
 {
 }
 
-#define l2x0_set_debug	NULL
+#define pl310_set_debug	NULL
 #endif
 
 #ifdef CONFIG_PL310_ERRATA_588369
@@ -331,6 +330,11 @@
 		else
 			ways = 8;
 		type = "L310";
+#ifdef CONFIG_PL310_ERRATA_753970
+		/* Unmapped register. */
+		sync_reg_offset = L2X0_DUMMY_REG;
+#endif
+		outer_cache.set_debug = pl310_set_debug;
 		break;
 	case L2X0_CACHE_ID_PART_L210:
 		ways = (aux >> 13) & 0xf;
@@ -379,7 +383,6 @@
 	outer_cache.flush_all = l2x0_flush_all;
 	outer_cache.inv_all = l2x0_inv_all;
 	outer_cache.disable = l2x0_disable;
-	outer_cache.set_debug = l2x0_set_debug;
 
 	printk(KERN_INFO "%s cache controller enabled\n", type);
 	printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x, Cache size: %d B\n",
--- linux-3.2.0.orig/arch/arm/mm/proc-v6.S
+++ linux-3.2.0/arch/arm/mm/proc-v6.S
@@ -55,6 +55,7 @@
  *	- loc   - location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_v6_reset)
 	mrc	p15, 0, r1, c1, c0, 0		@ ctrl register
 	bic	r1, r1, #0x1			@ ...............m
@@ -62,6 +63,8 @@
 	mov	r1, #0
 	mcr	p15, 0, r1, c7, c5, 4		@ ISB
 	mov	pc, r0
+ENDPROC(cpu_v6_reset)
+	.popsection
 
 /*
  *	cpu_v6_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm1026.S
+++ linux-3.2.0/arch/arm/mm/proc-arm1026.S
@@ -84,6 +84,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm1026_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -96,6 +97,8 @@
 	bic	ip, ip, #0x1100 		@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm1026_reset)
+	.popsection
 
 /*
  * cpu_arm1026_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm1022.S
+++ linux-3.2.0/arch/arm/mm/proc-arm1022.S
@@ -84,6 +84,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm1022_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -96,6 +97,8 @@
 	bic	ip, ip, #0x1100 		@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm1022_reset)
+	.popsection
 
 /*
  * cpu_arm1022_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/idmap.c
+++ linux-3.2.0/arch/arm/mm/idmap.c
@@ -1,8 +1,12 @@
 #include <linux/kernel.h>
 
 #include <asm/cputype.h>
+#include <asm/idmap.h>
 #include <asm/pgalloc.h>
 #include <asm/pgtable.h>
+#include <asm/sections.h>
+
+pgd_t *idmap_pgd;
 
 static void idmap_add_pmd(pud_t *pud, unsigned long addr, unsigned long end,
 	unsigned long prot)
@@ -28,7 +32,7 @@
 	} while (pud++, addr = next, addr != end);
 }
 
-void identity_mapping_add(pgd_t *pgd, unsigned long addr, unsigned long end)
+static void identity_mapping_add(pgd_t *pgd, unsigned long addr, unsigned long end)
 {
 	unsigned long prot, next;
 
@@ -43,48 +47,41 @@
 	} while (pgd++, addr = next, addr != end);
 }
 
-#ifdef CONFIG_SMP
-static void idmap_del_pmd(pud_t *pud, unsigned long addr, unsigned long end)
-{
-	pmd_t *pmd = pmd_offset(pud, addr);
-	pmd_clear(pmd);
-}
+extern char  __idmap_text_start[], __idmap_text_end[];
 
-static void idmap_del_pud(pgd_t *pgd, unsigned long addr, unsigned long end)
+static int __init init_static_idmap(void)
 {
-	pud_t *pud = pud_offset(pgd, addr);
-	unsigned long next;
+	phys_addr_t idmap_start, idmap_end;
 
-	do {
-		next = pud_addr_end(addr, end);
-		idmap_del_pmd(pud, addr, next);
-	} while (pud++, addr = next, addr != end);
-}
+	idmap_pgd = pgd_alloc(&init_mm);
+	if (!idmap_pgd)
+		return -ENOMEM;
 
-void identity_mapping_del(pgd_t *pgd, unsigned long addr, unsigned long end)
-{
-	unsigned long next;
+	/* Add an identity mapping for the physical address of the section. */
+	idmap_start = virt_to_phys((void *)__idmap_text_start);
+	idmap_end = virt_to_phys((void *)__idmap_text_end);
 
-	pgd += pgd_index(addr);
-	do {
-		next = pgd_addr_end(addr, end);
-		idmap_del_pud(pgd, addr, next);
-	} while (pgd++, addr = next, addr != end);
+	pr_info("Setting up static identity map for 0x%llx - 0x%llx\n",
+		(long long)idmap_start, (long long)idmap_end);
+	identity_mapping_add(idmap_pgd, idmap_start, idmap_end);
+
+	return 0;
 }
-#endif
+early_initcall(init_static_idmap);
 
 /*
- * In order to soft-boot, we need to insert a 1:1 mapping in place of
- * the user-mode pages.  This will then ensure that we have predictable
- * results when turning the mmu off
+ * In order to soft-boot, we need to switch to a 1:1 mapping for the
+ * cpu_reset functions. This will then ensure that we have predictable
+ * results when turning off the mmu.
  */
-void setup_mm_for_reboot(char mode)
+void setup_mm_for_reboot(void)
 {
-	/*
-	 * We need to access to user-mode page tables here. For kernel threads
-	 * we don't have any user-mode mappings so we use the context that we
-	 * "borrowed".
-	 */
-	identity_mapping_add(current->active_mm->pgd, 0, TASK_SIZE);
+	/* Clean and invalidate L1. */
+	flush_cache_all();
+
+	/* Switch to the identity mapping. */
+	cpu_switch_mm(idmap_pgd, &init_mm);
+
+	/* Flush the TLB. */
 	local_flush_tlb_all();
 }
--- linux-3.2.0.orig/arch/arm/mm/tlb-v7.S
+++ linux-3.2.0/arch/arm/mm/tlb-v7.S
@@ -39,10 +39,18 @@
 	mov	r0, r0, lsr #PAGE_SHIFT		@ align address
 	mov	r1, r1, lsr #PAGE_SHIFT
 	asid	r3, r3				@ mask ASID
+#ifdef CONFIG_ARM_ERRATA_720789
+	ALT_SMP(W(mov)	r3, #0	)
+	ALT_UP(W(nop)		)
+#endif
 	orr	r0, r3, r0, lsl #PAGE_SHIFT	@ Create initial MVA
 	mov	r1, r1, lsl #PAGE_SHIFT
 1:
+#ifdef CONFIG_ARM_ERRATA_720789
+	ALT_SMP(mcr	p15, 0, r0, c8, c3, 3)	@ TLB invalidate U MVA all ASID (shareable)
+#else
 	ALT_SMP(mcr	p15, 0, r0, c8, c3, 1)	@ TLB invalidate U MVA (shareable)
+#endif
 	ALT_UP(mcr	p15, 0, r0, c8, c7, 1)	@ TLB invalidate U MVA
 
 	add	r0, r0, #PAGE_SZ
@@ -67,7 +75,11 @@
 	mov	r0, r0, lsl #PAGE_SHIFT
 	mov	r1, r1, lsl #PAGE_SHIFT
 1:
+#ifdef CONFIG_ARM_ERRATA_720789
+	ALT_SMP(mcr	p15, 0, r0, c8, c3, 3)	@ TLB invalidate U MVA all ASID (shareable)
+#else
 	ALT_SMP(mcr	p15, 0, r0, c8, c3, 1)	@ TLB invalidate U MVA (shareable)
+#endif
 	ALT_UP(mcr	p15, 0, r0, c8, c7, 1)	@ TLB invalidate U MVA
 	add	r0, r0, #PAGE_SZ
 	cmp	r0, r1
--- linux-3.2.0.orig/arch/arm/mm/proc-xscale.S
+++ linux-3.2.0/arch/arm/mm/proc-xscale.S
@@ -142,6 +142,7 @@
  * Beware PXA270 erratum E7.
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_xscale_reset)
 	mov	r1, #PSR_F_BIT|PSR_I_BIT|SVC_MODE
 	msr	cpsr_c, r1			@ reset CPSR
@@ -160,6 +161,8 @@
 	@ already containing those two last instructions to survive.
 	mcr	p15, 0, ip, c8, c7, 0		@ invalidate I & D TLBs
 	mov	pc, r0
+ENDPROC(cpu_xscale_reset)
+	.popsection
 
 /*
  * cpu_xscale_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/abort-ev6.S
+++ linux-3.2.0/arch/arm/mm/abort-ev6.S
@@ -26,18 +26,23 @@
 	mrc	p15, 0, r1, c5, c0, 0		@ get FSR
 	mrc	p15, 0, r0, c6, c0, 0		@ get FAR
 /*
- * Faulty SWP instruction on 1136 doesn't set bit 11 in DFSR (erratum 326103).
- * The test below covers all the write situations, including Java bytecodes
+ * Faulty SWP instruction on 1136 doesn't set bit 11 in DFSR.
  */
-	bic	r1, r1, #1 << 11		@ clear bit 11 of FSR
+#ifdef CONFIG_ARM_ERRATA_326103
+	ldr	ip, =0x4107b36
+	mrc	p15, 0, r3, c0, c0, 0		@ get processor id
+	teq	ip, r3, lsr #4			@ r0 ARM1136?
+	bne	do_DataAbort
 	tst	r5, #PSR_J_BIT			@ Java?
+	tsteq	r5, #PSR_T_BIT			@ Thumb?
 	bne	do_DataAbort
-	do_thumb_abort fsr=r1, pc=r4, psr=r5, tmp=r3
-	ldreq	r3, [r4]			@ read aborted ARM instruction
+	bic	r1, r1, #1 << 11		@ clear bit 11 of FSR
+	ldr	r3, [r4]			@ read aborted ARM instruction
 #ifdef CONFIG_CPU_ENDIAN_BE8
-	reveq	r3, r3
+	rev	r3, r3
 #endif
 	do_ldrd_abort tmp=ip, insn=r3
 	tst	r3, #1 << 20			@ L = 0 -> write
 	orreq	r1, r1, #1 << 11		@ yes.
+#endif
 	b	do_DataAbort
--- linux-3.2.0.orig/arch/arm/mm/proc-arm926.S
+++ linux-3.2.0/arch/arm/mm/proc-arm926.S
@@ -77,6 +77,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm926_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -89,6 +90,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm926_reset)
+	.popsection
 
 /*
  * cpu_arm926_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-arm6_7.S
+++ linux-3.2.0/arch/arm/mm/proc-arm6_7.S
@@ -225,6 +225,7 @@
  * Params  : r0 = address to jump to
  * Notes   : This sets up everything for a reset
  */
+		.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm6_reset)
 ENTRY(cpu_arm7_reset)
 		mov	r1, #0
@@ -235,6 +236,9 @@
 		mov	r1, #0x30
 		mcr	p15, 0, r1, c1, c0, 0		@ turn off MMU etc
 		mov	pc, r0
+ENDPROC(cpu_arm6_reset)
+ENDPROC(cpu_arm7_reset)
+		.popsection
 
 		__CPUINIT
 
--- linux-3.2.0.orig/arch/arm/mm/proc-v7.S
+++ linux-3.2.0/arch/arm/mm/proc-v7.S
@@ -63,6 +63,7 @@
  *      caches disabled.
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_v7_reset)
 	mrc	p15, 0, r1, c1, c0, 0		@ ctrl register
 	bic	r1, r1, #0x1			@ ...............m
@@ -71,6 +72,7 @@
 	isb
 	mov	pc, r0
 ENDPROC(cpu_v7_reset)
+	.popsection
 
 /*
  *	cpu_v7_do_idle()
@@ -271,10 +273,6 @@
  *	Initialise TLB, Caches, and MMU state ready to switch the MMU
  *	on.  Return in r0 the new CP15 C1 control register setting.
  *
- *	We automatically detect if we have a Harvard cache, and use the
- *	Harvard cache control instructions insead of the unified cache
- *	control instructions.
- *
  *	This should be able to cover all ARMv7 cores.
  *
  *	It is assumed that:
@@ -356,9 +354,7 @@
 	mcreq	p15, 0, r10, c15, c0, 1		@ write diagnostic register
 #endif
 #ifdef CONFIG_ARM_ERRATA_743622
-	teq	r6, #0x20			@ present in r2p0
-	teqne	r6, #0x21			@ present in r2p1
-	teqne	r6, #0x22			@ present in r2p2
+	teq	r5, #0x00200000			@ only present in r2p*
 	mrceq	p15, 0, r10, c15, c0, 1		@ read diagnostic register
 	orreq	r10, r10, #1 << 6		@ set bit #6
 	mcreq	p15, 0, r10, c15, c0, 1		@ write diagnostic register
@@ -373,9 +369,7 @@
 #endif
 
 3:	mov	r10, #0
-#ifdef HARVARD_CACHE
 	mcr	p15, 0, r10, c7, c5, 0		@ I+BTB cache invalidate
-#endif
 	dsb
 #ifdef CONFIG_MMU
 	mcr	p15, 0, r10, c8, c7, 0		@ invalidate I + D TLBs
@@ -390,6 +384,18 @@
 	mcr	p15, 0, r5, c10, c2, 0		@ write PRRR
 	mcr	p15, 0, r6, c10, c2, 1		@ write NMRR
 #endif
+#ifndef CONFIG_ARM_THUMBEE
+	mrc	p15, 0, r0, c0, c1, 0		@ read ID_PFR0 for ThumbEE
+	and	r0, r0, #(0xf << 12)		@ ThumbEE enabled field
+	teq	r0, #(1 << 12)			@ check if ThumbEE is present
+	bne	1f
+	mov	r5, #0
+	mcr	p14, 6, r5, c1, c0, 0		@ Initialize TEEHBR to 0
+	mrc	p14, 6, r0, c0, c0, 0		@ load TEECR
+	orr	r0, r0, #1			@ set the 1st bit in order to
+	mcr	p14, 6, r0, c0, c0, 0		@ stop userspace TEEHBR access
+1:
+#endif
 	adr	r5, v7_crval
 	ldmia	r5, {r5, r6}
 #ifdef CONFIG_CPU_ENDIAN_BE8
--- linux-3.2.0.orig/arch/arm/mm/proc-arm1020.S
+++ linux-3.2.0/arch/arm/mm/proc-arm1020.S
@@ -95,6 +95,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm1020_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -107,6 +108,8 @@
 	bic	ip, ip, #0x1100 		@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm1020_reset)
+	.popsection
 
 /*
  * cpu_arm1020_do_idle()
--- linux-3.2.0.orig/arch/arm/mm/proc-sa1100.S
+++ linux-3.2.0/arch/arm/mm/proc-sa1100.S
@@ -70,6 +70,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_sa1100_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c7, 0		@ invalidate I,D caches
@@ -82,6 +83,8 @@
 	bic	ip, ip, #0x1100			@ ...i...s........
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_sa1100_reset)
+	.popsection
 
 /*
  * cpu_sa1100_do_idle(type)
--- linux-3.2.0.orig/arch/arm/mm/proc-arm740.S
+++ linux-3.2.0/arch/arm/mm/proc-arm740.S
@@ -49,6 +49,7 @@
  * Params  : r0 = address to jump to
  * Notes   : This sets up everything for a reset
  */
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm740_reset)
 	mov	ip, #0
 	mcr	p15, 0, ip, c7, c0, 0		@ invalidate cache
@@ -56,6 +57,8 @@
 	bic	ip, ip, #0x0000000c		@ ............wc..
 	mcr	p15, 0, ip, c1, c0, 0		@ ctrl register
 	mov	pc, r0
+ENDPROC(cpu_arm740_reset)
+	.popsection
 
 	__CPUINIT
 
--- linux-3.2.0.orig/arch/arm/mm/mmap.c
+++ linux-3.2.0/arch/arm/mm/mmap.c
@@ -11,10 +11,49 @@
 #include <linux/random.h>
 #include <asm/cachetype.h>
 
+static inline unsigned long COLOUR_ALIGN_DOWN(unsigned long addr,
+					      unsigned long pgoff)
+{
+	unsigned long base = addr & ~(SHMLBA-1);
+	unsigned long off = (pgoff << PAGE_SHIFT) & (SHMLBA-1);
+
+	if (base + off <= addr)
+		return base + off;
+
+	return base - off;
+}
+
 #define COLOUR_ALIGN(addr,pgoff)		\
 	((((addr)+SHMLBA-1)&~(SHMLBA-1)) +	\
 	 (((pgoff)<<PAGE_SHIFT) & (SHMLBA-1)))
 
+/* gap between mmap and stack */
+#define MIN_GAP (128*1024*1024UL)
+#define MAX_GAP ((TASK_SIZE)/6*5)
+
+static int mmap_is_legacy(void)
+{
+	if (current->personality & ADDR_COMPAT_LAYOUT)
+		return 1;
+
+	if (rlimit(RLIMIT_STACK) == RLIM_INFINITY)
+		return 1;
+
+	return sysctl_legacy_va_layout;
+}
+
+static unsigned long mmap_base(unsigned long rnd)
+{
+	unsigned long gap = rlimit(RLIMIT_STACK);
+
+	if (gap < MIN_GAP)
+		gap = MIN_GAP;
+	else if (gap > MAX_GAP)
+		gap = MAX_GAP;
+
+	return PAGE_ALIGN(TASK_SIZE - gap - rnd);
+}
+
 /*
  * We need to ensure that shared mappings are correctly aligned to
  * avoid aliasing issues with VIPT caches.  We need to ensure that
@@ -68,13 +107,9 @@
 	if (len > mm->cached_hole_size) {
 	        start_addr = addr = mm->free_area_cache;
 	} else {
-	        start_addr = addr = TASK_UNMAPPED_BASE;
+	        start_addr = addr = mm->mmap_base;
 	        mm->cached_hole_size = 0;
 	}
-	/* 8 bits of randomness in 20 address space bits */
-	if ((current->flags & PF_RANDOMIZE) &&
-	    !(current->personality & ADDR_NO_RANDOMIZE))
-		addr += (get_random_int() % (1 << 8)) << PAGE_SHIFT;
 
 full_search:
 	if (do_align)
@@ -111,6 +146,134 @@
 	}
 }
 
+unsigned long
+arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
+			const unsigned long len, const unsigned long pgoff,
+			const unsigned long flags)
+{
+	struct vm_area_struct *vma;
+	struct mm_struct *mm = current->mm;
+	unsigned long addr = addr0;
+	int do_align = 0;
+	int aliasing = cache_is_vipt_aliasing();
+
+	/*
+	 * We only need to do colour alignment if either the I or D
+	 * caches alias.
+	 */
+	if (aliasing)
+		do_align = filp || (flags & MAP_SHARED);
+
+	/* requested length too big for entire address space */
+	if (len > TASK_SIZE)
+		return -ENOMEM;
+
+	if (flags & MAP_FIXED) {
+		if (aliasing && flags & MAP_SHARED &&
+		    (addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1))
+			return -EINVAL;
+		return addr;
+	}
+
+	/* requesting a specific address */
+	if (addr) {
+		if (do_align)
+			addr = COLOUR_ALIGN(addr, pgoff);
+		else
+			addr = PAGE_ALIGN(addr);
+		vma = find_vma(mm, addr);
+		if (TASK_SIZE - len >= addr &&
+				(!vma || addr + len <= vma->vm_start))
+			return addr;
+	}
+
+	/* check if free_area_cache is useful for us */
+	if (len <= mm->cached_hole_size) {
+		mm->cached_hole_size = 0;
+		mm->free_area_cache = mm->mmap_base;
+	}
+
+	/* either no address requested or can't fit in requested address hole */
+	addr = mm->free_area_cache;
+	if (do_align) {
+		unsigned long base = COLOUR_ALIGN_DOWN(addr - len, pgoff);
+		addr = base + len;
+	}
+
+	/* make sure it can fit in the remaining address space */
+	if (addr > len) {
+		vma = find_vma(mm, addr-len);
+		if (!vma || addr <= vma->vm_start)
+			/* remember the address as a hint for next time */
+			return (mm->free_area_cache = addr-len);
+	}
+
+	if (mm->mmap_base < len)
+		goto bottomup;
+
+	addr = mm->mmap_base - len;
+	if (do_align)
+		addr = COLOUR_ALIGN_DOWN(addr, pgoff);
+
+	do {
+		/*
+		 * Lookup failure means no vma is above this address,
+		 * else if new region fits below vma->vm_start,
+		 * return with success:
+		 */
+		vma = find_vma(mm, addr);
+		if (!vma || addr+len <= vma->vm_start)
+			/* remember the address as a hint for next time */
+			return (mm->free_area_cache = addr);
+
+		/* remember the largest hole we saw so far */
+		if (addr + mm->cached_hole_size < vma->vm_start)
+			mm->cached_hole_size = vma->vm_start - addr;
+
+		/* try just below the current vma->vm_start */
+		addr = vma->vm_start - len;
+		if (do_align)
+			addr = COLOUR_ALIGN_DOWN(addr, pgoff);
+	} while (len < vma->vm_start);
+
+bottomup:
+	/*
+	 * A failed mmap() very likely causes application failure,
+	 * so fall back to the bottom-up function here. This scenario
+	 * can happen with large stack limits and large mmap()
+	 * allocations.
+	 */
+	mm->cached_hole_size = ~0UL;
+	mm->free_area_cache = TASK_UNMAPPED_BASE;
+	addr = arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
+	/*
+	 * Restore the topdown base:
+	 */
+	mm->free_area_cache = mm->mmap_base;
+	mm->cached_hole_size = ~0UL;
+
+	return addr;
+}
+
+void arch_pick_mmap_layout(struct mm_struct *mm)
+{
+	unsigned long random_factor = 0UL;
+
+	/* 8 bits of randomness in 20 address space bits */
+	if ((current->flags & PF_RANDOMIZE) &&
+	    !(current->personality & ADDR_NO_RANDOMIZE))
+		random_factor = (get_random_int() % (1 << 8)) << PAGE_SHIFT;
+
+	if (mmap_is_legacy()) {
+		mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
+		mm->get_unmapped_area = arch_get_unmapped_area;
+		mm->unmap_area = arch_unmap_area;
+	} else {
+		mm->mmap_base = mmap_base(random_factor);
+		mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+		mm->unmap_area = arch_unmap_area_topdown;
+	}
+}
 
 /*
  * You really shouldn't be using read() or write() on /dev/mem.  This
--- linux-3.2.0.orig/arch/arm/mm/proc-arm7tdmi.S
+++ linux-3.2.0/arch/arm/mm/proc-arm7tdmi.S
@@ -45,8 +45,11 @@
  * Params  : loc(r0)	address to jump to
  * Purpose : Sets up everything for a reset and jump to the location for soft reset.
  */
+		.pushsection	.idmap.text, "ax"
 ENTRY(cpu_arm7tdmi_reset)
 		mov	pc, r0
+ENDPROC(cpu_arm7tdmi_reset)
+		.popsection
 
 		__CPUINIT
 
--- linux-3.2.0.orig/arch/arm/mm/proc-xsc3.S
+++ linux-3.2.0/arch/arm/mm/proc-xsc3.S
@@ -105,6 +105,7 @@
  * loc: location to jump to for soft reset
  */
 	.align	5
+	.pushsection	.idmap.text, "ax"
 ENTRY(cpu_xsc3_reset)
 	mov	r1, #PSR_F_BIT|PSR_I_BIT|SVC_MODE
 	msr	cpsr_c, r1			@ reset CPSR
@@ -119,6 +120,8 @@
 	@ already containing those two last instructions to survive.
 	mcr	p15, 0, ip, c8, c7, 0		@ invalidate I and D TLBs
 	mov	pc, r0
+ENDPROC(cpu_xsc3_reset)
+	.popsection
 
 /*
  * cpu_xsc3_do_idle()
--- linux-3.2.0.orig/arch/arm/kernel/sys_arm.c
+++ linux-3.2.0/arch/arm/kernel/sys_arm.c
@@ -115,7 +115,7 @@
 		  "Ir" (THREAD_START_SP - sizeof(regs)),
 		  "r" (&regs),
 		  "Ir" (sizeof(regs))
-		: "r0", "r1", "r2", "r3", "ip", "lr", "memory");
+		: "r0", "r1", "r2", "r3", "r8", "r9", "ip", "lr", "memory");
 
  out:
 	return ret;
--- linux-3.2.0.orig/arch/arm/kernel/vmlinux.lds.S
+++ linux-3.2.0/arch/arm/kernel/vmlinux.lds.S
@@ -13,6 +13,12 @@
 	*(.proc.info.init)						\
 	VMLINUX_SYMBOL(__proc_info_end) = .;
 
+#define IDMAP_TEXT							\
+	ALIGN_FUNCTION();						\
+	VMLINUX_SYMBOL(__idmap_text_start) = .;				\
+	*(.idmap.text)							\
+	VMLINUX_SYMBOL(__idmap_text_end) = .;
+
 #ifdef CONFIG_HOTPLUG_CPU
 #define ARM_CPU_DISCARD(x)
 #define ARM_CPU_KEEP(x)		x
@@ -92,6 +98,7 @@
 			SCHED_TEXT
 			LOCK_TEXT
 			KPROBES_TEXT
+			IDMAP_TEXT
 #ifdef CONFIG_MMU
 			*(.fixup)
 #endif
--- linux-3.2.0.orig/arch/arm/kernel/machine_kexec.c
+++ linux-3.2.0/arch/arm/kernel/machine_kexec.c
@@ -12,12 +12,11 @@
 #include <asm/mmu_context.h>
 #include <asm/cacheflush.h>
 #include <asm/mach-types.h>
+#include <asm/system.h>
 
 extern const unsigned char relocate_new_kernel[];
 extern const unsigned int relocate_new_kernel_size;
 
-extern void setup_mm_for_reboot(char mode);
-
 extern unsigned long kexec_start_address;
 extern unsigned long kexec_indirection_page;
 extern unsigned long kexec_mach_type;
@@ -111,14 +110,6 @@
 
 	if (kexec_reinit)
 		kexec_reinit();
-	local_irq_disable();
-	local_fiq_disable();
-	setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/
-	flush_cache_all();
-	outer_flush_all();
-	outer_disable();
-	cpu_proc_fin();
-	outer_inv_all();
-	flush_cache_all();
-	cpu_reset(reboot_code_buffer_phys);
+
+	soft_restart(reboot_code_buffer_phys);
 }
--- linux-3.2.0.orig/arch/arm/kernel/setup.c
+++ linux-3.2.0/arch/arm/kernel/setup.c
@@ -908,8 +908,8 @@
 		arm_dma_zone_size = mdesc->dma_zone_size;
 	}
 #endif
-	if (mdesc->soft_reboot)
-		reboot_setup("s");
+	if (mdesc->restart_mode)
+		reboot_setup(&mdesc->restart_mode);
 
 	init_mm.start_code = (unsigned long) _text;
 	init_mm.end_code   = (unsigned long) _etext;
@@ -928,6 +928,9 @@
 	paging_init(mdesc);
 	request_standard_resources(mdesc);
 
+	if (mdesc->restart)
+		arm_pm_restart = mdesc->restart;
+
 	unflatten_device_tree();
 
 #ifdef CONFIG_SMP
--- linux-3.2.0.orig/arch/arm/kernel/signal.c
+++ linux-3.2.0/arch/arm/kernel/signal.c
@@ -227,6 +227,8 @@
 	if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE)
 		return -EINVAL;
 
+	vfp_flush_hwstate(thread);
+
 	/*
 	 * Copy the floating point registers. There can be unused
 	 * registers see asm/hwcap.h for details.
@@ -251,9 +253,6 @@
 	__get_user_error(h->fpinst, &frame->ufp_exc.fpinst, err);
 	__get_user_error(h->fpinst2, &frame->ufp_exc.fpinst2, err);
 
-	if (!err)
-		vfp_flush_hwstate(thread);
-
 	return err ? -EFAULT : 0;
 }
 
--- linux-3.2.0.orig/arch/arm/kernel/head.S
+++ linux-3.2.0/arch/arm/kernel/head.S
@@ -170,11 +170,11 @@
 	 * Create identity mapping to cater for __enable_mmu.
 	 * This identity mapping will be removed by paging_init().
 	 */
-	adr	r0, __enable_mmu_loc
+	adr	r0, __turn_mmu_on_loc
 	ldmia	r0, {r3, r5, r6}
 	sub	r0, r0, r3			@ virt->phys offset
-	add	r5, r5, r0			@ phys __enable_mmu
-	add	r6, r6, r0			@ phys __enable_mmu_end
+	add	r5, r5, r0			@ phys __turn_mmu_on
+	add	r6, r6, r0			@ phys __turn_mmu_on_end
 	mov	r5, r5, lsr #SECTION_SHIFT
 	mov	r6, r6, lsr #SECTION_SHIFT
 
@@ -287,10 +287,10 @@
 ENDPROC(__create_page_tables)
 	.ltorg
 	.align
-__enable_mmu_loc:
+__turn_mmu_on_loc:
 	.long	.
-	.long	__enable_mmu
-	.long	__enable_mmu_end
+	.long	__turn_mmu_on
+	.long	__turn_mmu_on_end
 
 #if defined(CONFIG_SMP)
 	__CPUINIT
@@ -398,15 +398,17 @@
  * other registers depend on the function called upon completion
  */
 	.align	5
-__turn_mmu_on:
+	.pushsection	.idmap.text, "ax"
+ENTRY(__turn_mmu_on)
 	mov	r0, r0
 	mcr	p15, 0, r0, c1, c0, 0		@ write control reg
 	mrc	p15, 0, r3, c0, c0, 0		@ read id reg
 	mov	r3, r3
 	mov	r3, r13
 	mov	pc, r3
-__enable_mmu_end:
+__turn_mmu_on_end:
 ENDPROC(__turn_mmu_on)
+	.popsection
 
 
 #ifdef CONFIG_SMP_ON_UP
--- linux-3.2.0.orig/arch/arm/kernel/sched_clock.c
+++ linux-3.2.0/arch/arm/kernel/sched_clock.c
@@ -14,61 +14,153 @@
 
 #include <asm/sched_clock.h>
 
+struct clock_data {
+	u64 epoch_ns;
+	u32 epoch_cyc;
+	u32 epoch_cyc_copy;
+	u32 mult;
+	u32 shift;
+};
+
 static void sched_clock_poll(unsigned long wrap_ticks);
 static DEFINE_TIMER(sched_clock_timer, sched_clock_poll, 0, 0);
-static void (*sched_clock_update_fn)(void);
+
+static struct clock_data cd = {
+	.mult	= NSEC_PER_SEC / HZ,
+};
+
+static u32 __read_mostly sched_clock_mask = 0xffffffff;
+
+static u32 notrace jiffy_sched_clock_read(void)
+{
+	return (u32)(jiffies - INITIAL_JIFFIES);
+}
+
+static u32 __read_mostly (*read_sched_clock)(void) = jiffy_sched_clock_read;
+
+static inline u64 cyc_to_ns(u64 cyc, u32 mult, u32 shift)
+{
+	return (cyc * mult) >> shift;
+}
+
+static unsigned long long cyc_to_sched_clock(u32 cyc, u32 mask)
+{
+	u64 epoch_ns;
+	u32 epoch_cyc;
+
+	/*
+	 * Load the epoch_cyc and epoch_ns atomically.  We do this by
+	 * ensuring that we always write epoch_cyc, epoch_ns and
+	 * epoch_cyc_copy in strict order, and read them in strict order.
+	 * If epoch_cyc and epoch_cyc_copy are not equal, then we're in
+	 * the middle of an update, and we should repeat the load.
+	 */
+	do {
+		epoch_cyc = cd.epoch_cyc;
+		smp_rmb();
+		epoch_ns = cd.epoch_ns;
+		smp_rmb();
+	} while (epoch_cyc != cd.epoch_cyc_copy);
+
+	return epoch_ns + cyc_to_ns((cyc - epoch_cyc) & mask, cd.mult, cd.shift);
+}
+
+/*
+ * Atomically update the sched_clock epoch.
+ */
+static void notrace update_sched_clock(void)
+{
+	unsigned long flags;
+	u32 cyc;
+	u64 ns;
+
+	cyc = read_sched_clock();
+	ns = cd.epoch_ns +
+		cyc_to_ns((cyc - cd.epoch_cyc) & sched_clock_mask,
+			  cd.mult, cd.shift);
+	/*
+	 * Write epoch_cyc and epoch_ns in a way that the update is
+	 * detectable in cyc_to_fixed_sched_clock().
+	 */
+	raw_local_irq_save(flags);
+	cd.epoch_cyc = cyc;
+	smp_wmb();
+	cd.epoch_ns = ns;
+	smp_wmb();
+	cd.epoch_cyc_copy = cyc;
+	raw_local_irq_restore(flags);
+}
 
 static void sched_clock_poll(unsigned long wrap_ticks)
 {
 	mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks));
-	sched_clock_update_fn();
+	update_sched_clock();
 }
 
-void __init init_sched_clock(struct clock_data *cd, void (*update)(void),
-	unsigned int clock_bits, unsigned long rate)
+void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate)
 {
 	unsigned long r, w;
 	u64 res, wrap;
 	char r_unit;
 
-	sched_clock_update_fn = update;
+	BUG_ON(bits > 32);
+	WARN_ON(!irqs_disabled());
+	WARN_ON(read_sched_clock != jiffy_sched_clock_read);
+	read_sched_clock = read;
+	sched_clock_mask = (1 << bits) - 1;
 
 	/* calculate the mult/shift to convert counter ticks to ns. */
-	clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 0);
+	clocks_calc_mult_shift(&cd.mult, &cd.shift, rate, NSEC_PER_SEC, 0);
 
 	r = rate;
 	if (r >= 4000000) {
 		r /= 1000000;
 		r_unit = 'M';
-	} else {
+	} else if (r >= 1000) {
 		r /= 1000;
 		r_unit = 'k';
-	}
+	} else
+		r_unit = ' ';
 
 	/* calculate how many ns until we wrap */
-	wrap = cyc_to_ns((1ULL << clock_bits) - 1, cd->mult, cd->shift);
+	wrap = cyc_to_ns((1ULL << bits) - 1, cd.mult, cd.shift);
 	do_div(wrap, NSEC_PER_MSEC);
 	w = wrap;
 
 	/* calculate the ns resolution of this counter */
-	res = cyc_to_ns(1ULL, cd->mult, cd->shift);
+	res = cyc_to_ns(1ULL, cd.mult, cd.shift);
 	pr_info("sched_clock: %u bits at %lu%cHz, resolution %lluns, wraps every %lums\n",
-		clock_bits, r, r_unit, res, w);
+		bits, r, r_unit, res, w);
 
 	/*
 	 * Start the timer to keep sched_clock() properly updated and
 	 * sets the initial epoch.
 	 */
 	sched_clock_timer.data = msecs_to_jiffies(w - (w / 10));
-	update();
+	update_sched_clock();
 
 	/*
 	 * Ensure that sched_clock() starts off at 0ns
 	 */
-	cd->epoch_ns = 0;
+	cd.epoch_ns = 0;
+
+	pr_debug("Registered %pF as sched_clock source\n", read);
+}
+
+unsigned long long notrace sched_clock(void)
+{
+	u32 cyc = read_sched_clock();
+	return cyc_to_sched_clock(cyc, sched_clock_mask);
 }
 
 void __init sched_clock_postinit(void)
 {
+	/*
+	 * If no sched_clock function has been provided at that point,
+	 * make it the final one one.
+	 */
+	if (read_sched_clock == jiffy_sched_clock_read)
+		setup_sched_clock(jiffy_sched_clock_read, 32, HZ);
+
 	sched_clock_poll(sched_clock_timer.data);
 }
--- linux-3.2.0.orig/arch/arm/kernel/irq.c
+++ linux-3.2.0/arch/arm/kernel/irq.c
@@ -156,10 +156,10 @@
 	}
 
 	c = irq_data_get_irq_chip(d);
-	if (c->irq_set_affinity)
-		c->irq_set_affinity(d, affinity, true);
-	else
+	if (!c->irq_set_affinity)
 		pr_debug("IRQ%u: unable to set affinity\n", d->irq);
+	else if (c->irq_set_affinity(d, affinity, true) == IRQ_SET_MASK_OK && ret)
+		cpumask_copy(d->affinity, affinity);
 
 	return ret;
 }
--- linux-3.2.0.orig/arch/arm/kernel/perf_event_xscale.c
+++ linux-3.2.0/arch/arm/kernel/perf_event_xscale.c
@@ -253,11 +253,14 @@
 		struct perf_event *event = cpuc->events[idx];
 		struct hw_perf_event *hwc;
 
+		if (!event)
+			continue;
+
 		if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx))
 			continue;
 
 		hwc = &event->hw;
-		armpmu_event_update(event, hwc, idx, 1);
+		armpmu_event_update(event, hwc, idx);
 		data.period = event->hw.last_period;
 		if (!armpmu_event_set_period(event, hwc, idx))
 			continue;
@@ -590,11 +593,14 @@
 		struct perf_event *event = cpuc->events[idx];
 		struct hw_perf_event *hwc;
 
-		if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx))
+		if (!event)
+			continue;
+
+		if (!xscale2_pmnc_counter_has_overflowed(of_flags, idx))
 			continue;
 
 		hwc = &event->hw;
-		armpmu_event_update(event, hwc, idx, 1);
+		armpmu_event_update(event, hwc, idx);
 		data.period = event->hw.last_period;
 		if (!armpmu_event_set_period(event, hwc, idx))
 			continue;
@@ -661,7 +667,7 @@
 static void
 xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx)
 {
-	unsigned long flags, ien, evtsel;
+	unsigned long flags, ien, evtsel, of_flags;
 	struct pmu_hw_events *events = cpu_pmu->get_hw_events();
 
 	ien = xscale2pmu_read_int_enable();
@@ -670,26 +676,31 @@
 	switch (idx) {
 	case XSCALE_CYCLE_COUNTER:
 		ien &= ~XSCALE2_CCOUNT_INT_EN;
+		of_flags = XSCALE2_CCOUNT_OVERFLOW;
 		break;
 	case XSCALE_COUNTER0:
 		ien &= ~XSCALE2_COUNT0_INT_EN;
 		evtsel &= ~XSCALE2_COUNT0_EVT_MASK;
 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT0_EVT_SHFT;
+		of_flags = XSCALE2_COUNT0_OVERFLOW;
 		break;
 	case XSCALE_COUNTER1:
 		ien &= ~XSCALE2_COUNT1_INT_EN;
 		evtsel &= ~XSCALE2_COUNT1_EVT_MASK;
 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT1_EVT_SHFT;
+		of_flags = XSCALE2_COUNT1_OVERFLOW;
 		break;
 	case XSCALE_COUNTER2:
 		ien &= ~XSCALE2_COUNT2_INT_EN;
 		evtsel &= ~XSCALE2_COUNT2_EVT_MASK;
 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT2_EVT_SHFT;
+		of_flags = XSCALE2_COUNT2_OVERFLOW;
 		break;
 	case XSCALE_COUNTER3:
 		ien &= ~XSCALE2_COUNT3_INT_EN;
 		evtsel &= ~XSCALE2_COUNT3_EVT_MASK;
 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT3_EVT_SHFT;
+		of_flags = XSCALE2_COUNT3_OVERFLOW;
 		break;
 	default:
 		WARN_ONCE(1, "invalid counter number (%d)\n", idx);
@@ -699,6 +710,7 @@
 	raw_spin_lock_irqsave(&events->pmu_lock, flags);
 	xscale2pmu_write_event_select(evtsel);
 	xscale2pmu_write_int_enable(ien);
+	xscale2pmu_write_overflow_flags(of_flags);
 	raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
 }
 
--- linux-3.2.0.orig/arch/arm/kernel/suspend.c
+++ linux-3.2.0/arch/arm/kernel/suspend.c
@@ -1,13 +1,12 @@
 #include <linux/init.h>
 
+#include <asm/idmap.h>
 #include <asm/pgalloc.h>
 #include <asm/pgtable.h>
 #include <asm/memory.h>
 #include <asm/suspend.h>
 #include <asm/tlbflush.h>
 
-static pgd_t *suspend_pgd;
-
 extern int __cpu_suspend(unsigned long, int (*)(unsigned long));
 extern void cpu_resume_mmu(void);
 
@@ -21,7 +20,7 @@
 	*save_ptr = virt_to_phys(ptr);
 
 	/* This must correspond to the LDM in cpu_resume() assembly */
-	*ptr++ = virt_to_phys(suspend_pgd);
+	*ptr++ = virt_to_phys(idmap_pgd);
 	*ptr++ = sp;
 	*ptr++ = virt_to_phys(cpu_do_resume);
 
@@ -42,7 +41,7 @@
 	struct mm_struct *mm = current->active_mm;
 	int ret;
 
-	if (!suspend_pgd)
+	if (!idmap_pgd)
 		return -EINVAL;
 
 	/*
@@ -59,14 +58,3 @@
 
 	return ret;
 }
-
-static int __init cpu_suspend_init(void)
-{
-	suspend_pgd = pgd_alloc(&init_mm);
-	if (suspend_pgd) {
-		unsigned long addr = virt_to_phys(cpu_resume_mmu);
-		identity_mapping_add(suspend_pgd, addr, addr + SECTION_SIZE);
-	}
-	return suspend_pgd ? 0 : -ENOMEM;
-}
-core_initcall(cpu_suspend_init);
--- linux-3.2.0.orig/arch/arm/kernel/sleep.S
+++ linux-3.2.0/arch/arm/kernel/sleep.S
@@ -54,6 +54,7 @@
  * r0 = control register value
  */
 	.align	5
+	.pushsection	.idmap.text,"ax"
 ENTRY(cpu_resume_mmu)
 	ldr	r3, =cpu_resume_after_mmu
 	mcr	p15, 0, r0, c1, c0, 0	@ turn on MMU, I-cache, etc
@@ -62,6 +63,7 @@
 	mov	r0, r0
 	mov	pc, r3			@ jump to virtual address
 ENDPROC(cpu_resume_mmu)
+	.popsection
 cpu_resume_after_mmu:
 	bl	cpu_init		@ restore the und/abt/irq banked regs
 	mov	r0, #0			@ return zero on success
--- linux-3.2.0.orig/arch/arm/kernel/hw_breakpoint.c
+++ linux-3.2.0/arch/arm/kernel/hw_breakpoint.c
@@ -160,6 +160,12 @@
 		arch >= ARM_DEBUG_ARCH_V7_1;
 }
 
+/* Can we determine the watchpoint access type from the fsr? */
+static int debug_exception_updates_fsr(void)
+{
+	return 0;
+}
+
 /* Determine number of WRP registers available. */
 static int get_num_wrp_resources(void)
 {
@@ -620,18 +626,35 @@
 	info->address &= ~alignment_mask;
 	info->ctrl.len <<= offset;
 
-	/*
-	 * Currently we rely on an overflow handler to take
-	 * care of single-stepping the breakpoint when it fires.
-	 * In the case of userspace breakpoints on a core with V7 debug,
-	 * we can use the mismatch feature as a poor-man's hardware
-	 * single-step, but this only works for per-task breakpoints.
-	 */
-	if (!bp->overflow_handler && (arch_check_bp_in_kernelspace(bp) ||
-	    !core_has_mismatch_brps() || !bp->hw.bp_target)) {
-		pr_warning("overflow handler required but none found\n");
-		ret = -EINVAL;
+	if (!bp->overflow_handler) {
+		/*
+		 * Mismatch breakpoints are required for single-stepping
+		 * breakpoints.
+		 */
+		if (!core_has_mismatch_brps())
+			return -EINVAL;
+
+		/* We don't allow mismatch breakpoints in kernel space. */
+		if (arch_check_bp_in_kernelspace(bp))
+			return -EPERM;
+
+		/*
+		 * Per-cpu breakpoints are not supported by our stepping
+		 * mechanism.
+		 */
+		if (!bp->hw.bp_target)
+			return -EINVAL;
+
+		/*
+		 * We only support specific access types if the fsr
+		 * reports them.
+		 */
+		if (!debug_exception_updates_fsr() &&
+		    (info->ctrl.type == ARM_BREAKPOINT_LOAD ||
+		     info->ctrl.type == ARM_BREAKPOINT_STORE))
+			return -EINVAL;
 	}
+
 out:
 	return ret;
 }
@@ -707,10 +730,12 @@
 				goto unlock;
 
 			/* Check that the access type matches. */
-			access = (fsr & ARM_FSR_ACCESS_MASK) ? HW_BREAKPOINT_W :
-				 HW_BREAKPOINT_R;
-			if (!(access & hw_breakpoint_type(wp)))
-				goto unlock;
+			if (debug_exception_updates_fsr()) {
+				access = (fsr & ARM_FSR_ACCESS_MASK) ?
+					  HW_BREAKPOINT_W : HW_BREAKPOINT_R;
+				if (!(access & hw_breakpoint_type(wp)))
+					goto unlock;
+			}
 
 			/* We have a winner. */
 			info->trigger = addr;
--- linux-3.2.0.orig/arch/arm/kernel/traps.c
+++ linux-3.2.0/arch/arm/kernel/traps.c
@@ -362,18 +362,10 @@
 
 asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
 {
-	unsigned int correction = thumb_mode(regs) ? 2 : 4;
 	unsigned int instr;
 	siginfo_t info;
 	void __user *pc;
 
-	/*
-	 * According to the ARM ARM, PC is 2 or 4 bytes ahead,
-	 * depending whether we're in Thumb mode or not.
-	 * Correct this offset.
-	 */
-	regs->ARM_pc -= correction;
-
 	pc = (void __user *)instruction_pointer(regs);
 
 	if (processor_mode(regs) == SVC_MODE) {
@@ -388,20 +380,23 @@
 #endif
 			instr = *(u32 *) pc;
 	} else if (thumb_mode(regs)) {
-		get_user(instr, (u16 __user *)pc);
+		if (get_user(instr, (u16 __user *)pc))
+			goto die_sig;
 		if (is_wide_instruction(instr)) {
 			unsigned int instr2;
-			get_user(instr2, (u16 __user *)pc+1);
+			if (get_user(instr2, (u16 __user *)pc+1))
+				goto die_sig;
 			instr <<= 16;
 			instr |= instr2;
 		}
-	} else {
-		get_user(instr, (u32 __user *)pc);
+	} else if (get_user(instr, (u32 __user *)pc)) {
+		goto die_sig;
 	}
 
 	if (call_undef_hook(regs, instr) == 0)
 		return;
 
+die_sig:
 #ifdef CONFIG_DEBUG_USER
 	if (user_debug & UDBG_UNDEFINED) {
 		printk(KERN_INFO "%s (%d): undefined instruction: pc=%p\n",
@@ -488,7 +483,9 @@
 		if (end > vma->vm_end)
 			end = vma->vm_end;
 
-		flush_cache_user_range(vma, start, end);
+		up_read(&mm->mmap_sem);
+		flush_cache_user_range(start, end);
+		return;
 	}
 	up_read(&mm->mmap_sem);
 }
--- linux-3.2.0.orig/arch/arm/kernel/smp.c
+++ linux-3.2.0/arch/arm/kernel/smp.c
@@ -31,6 +31,7 @@
 #include <asm/cpu.h>
 #include <asm/cputype.h>
 #include <asm/exception.h>
+#include <asm/idmap.h>
 #include <asm/topology.h>
 #include <asm/mmu_context.h>
 #include <asm/pgtable.h>
@@ -61,7 +62,6 @@
 {
 	struct cpuinfo_arm *ci = &per_cpu(cpu_data, cpu);
 	struct task_struct *idle = ci->idle;
-	pgd_t *pgd;
 	int ret;
 
 	/*
@@ -84,29 +84,11 @@
 	}
 
 	/*
-	 * Allocate initial page tables to allow the new CPU to
-	 * enable the MMU safely.  This essentially means a set
-	 * of our "standard" page tables, with the addition of
-	 * a 1:1 mapping for the physical address of the kernel.
-	 */
-	pgd = pgd_alloc(&init_mm);
-	if (!pgd)
-		return -ENOMEM;
-
-	if (PHYS_OFFSET != PAGE_OFFSET) {
-#ifndef CONFIG_HOTPLUG_CPU
-		identity_mapping_add(pgd, __pa(__init_begin), __pa(__init_end));
-#endif
-		identity_mapping_add(pgd, __pa(_stext), __pa(_etext));
-		identity_mapping_add(pgd, __pa(_sdata), __pa(_edata));
-	}
-
-	/*
 	 * We need to tell the secondary core where to find
 	 * its stack and the page tables.
 	 */
 	secondary_data.stack = task_stack_page(idle) + THREAD_START_SP;
-	secondary_data.pgdir = virt_to_phys(pgd);
+	secondary_data.pgdir = virt_to_phys(idmap_pgd);
 	secondary_data.swapper_pg_dir = virt_to_phys(swapper_pg_dir);
 	__cpuc_flush_dcache_area(&secondary_data, sizeof(secondary_data));
 	outer_clean_range(__pa(&secondary_data), __pa(&secondary_data + 1));
@@ -142,16 +124,6 @@
 	secondary_data.stack = NULL;
 	secondary_data.pgdir = 0;
 
-	if (PHYS_OFFSET != PAGE_OFFSET) {
-#ifndef CONFIG_HOTPLUG_CPU
-		identity_mapping_del(pgd, __pa(__init_begin), __pa(__init_end));
-#endif
-		identity_mapping_del(pgd, __pa(_stext), __pa(_etext));
-		identity_mapping_del(pgd, __pa(_sdata), __pa(_edata));
-	}
-
-	pgd_free(&init_mm, pgd);
-
 	return ret;
 }
 
@@ -295,20 +267,26 @@
 asmlinkage void __cpuinit secondary_start_kernel(void)
 {
 	struct mm_struct *mm = &init_mm;
-	unsigned int cpu = smp_processor_id();
+	unsigned int cpu;
 
-	printk("CPU%u: Booted secondary processor\n", cpu);
+	/*
+	 * The identity mapping is uncached (strongly ordered), so
+	 * switch away from it before attempting any exclusive accesses.
+	 */
+	cpu_switch_mm(mm->pgd, mm);
+	enter_lazy_tlb(mm, current);
+	local_flush_tlb_all();
 
 	/*
 	 * All kernel threads share the same mm context; grab a
 	 * reference and switch to it.
 	 */
+	cpu = smp_processor_id();
 	atomic_inc(&mm->mm_count);
 	current->active_mm = mm;
 	cpumask_set_cpu(cpu, mm_cpumask(mm));
-	cpu_switch_mm(mm->pgd, mm);
-	enter_lazy_tlb(mm, current);
-	local_flush_tlb_all();
+
+	printk("CPU%u: Booted secondary processor\n", cpu);
 
 	cpu_init();
 	preempt_disable();
@@ -471,9 +449,7 @@
 static void ipi_timer(void)
 {
 	struct clock_event_device *evt = &__get_cpu_var(percpu_clockevent);
-	irq_enter();
 	evt->event_handler(evt);
-	irq_exit();
 }
 
 #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
@@ -550,6 +526,10 @@
 	local_fiq_disable();
 	local_irq_disable();
 
+#ifdef CONFIG_HOTPLUG_CPU
+	platform_cpu_kill(cpu);
+#endif
+
 	while (1)
 		cpu_relax();
 }
@@ -572,7 +552,9 @@
 
 	switch (ipinr) {
 	case IPI_TIMER:
+		irq_enter();
 		ipi_timer();
+		irq_exit();
 		break;
 
 	case IPI_RESCHEDULE:
@@ -580,15 +562,21 @@
 		break;
 
 	case IPI_CALL_FUNC:
+		irq_enter();
 		generic_smp_call_function_interrupt();
+		irq_exit();
 		break;
 
 	case IPI_CALL_FUNC_SINGLE:
+		irq_enter();
 		generic_smp_call_function_single_interrupt();
+		irq_exit();
 		break;
 
 	case IPI_CPU_STOP:
+		irq_enter();
 		ipi_cpu_stop(cpu);
+		irq_exit();
 		break;
 
 	default:
--- linux-3.2.0.orig/arch/arm/kernel/ptrace.c
+++ linux-3.2.0/arch/arm/kernel/ptrace.c
@@ -699,10 +699,13 @@
 {
 	int ret;
 	struct thread_info *thread = task_thread_info(target);
-	struct vfp_hard_struct new_vfp = thread->vfpstate.hard;
+	struct vfp_hard_struct new_vfp;
 	const size_t user_fpregs_offset = offsetof(struct user_vfp, fpregs);
 	const size_t user_fpscr_offset = offsetof(struct user_vfp, fpscr);
 
+	vfp_sync_hwstate(thread);
+	new_vfp = thread->vfpstate.hard;
+
 	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
 				  &new_vfp.fpregs,
 				  user_fpregs_offset,
@@ -723,9 +726,8 @@
 	if (ret)
 		return ret;
 
-	vfp_sync_hwstate(thread);
-	thread->vfpstate.hard = new_vfp;
 	vfp_flush_hwstate(thread);
+	thread->vfpstate.hard = new_vfp;
 
 	return 0;
 }
--- linux-3.2.0.orig/arch/arm/kernel/entry-armv.S
+++ linux-3.2.0/arch/arm/kernel/entry-armv.S
@@ -242,6 +242,19 @@
 	b	1b
 #endif
 
+__und_fault:
+	@ Correct the PC such that it is pointing at the instruction
+	@ which caused the fault.  If the faulting instruction was ARM
+	@ the PC will be pointing at the next instruction, and have to
+	@ subtract 4.  Otherwise, it is Thumb, and the PC will be
+	@ pointing at the second half of the Thumb instruction.  We
+	@ have to subtract 2.
+	ldr	r2, [r0, #S_PC]
+	sub	r2, r2, r1
+	str	r2, [r0, #S_PC]
+	b	do_undefinstr
+ENDPROC(__und_fault)
+
 	.align	5
 __und_svc:
 #ifdef CONFIG_KPROBES
@@ -259,25 +272,32 @@
 	@
 	@  r0 - instruction
 	@
-#ifndef	CONFIG_THUMB2_KERNEL
+#ifndef CONFIG_THUMB2_KERNEL
 	ldr	r0, [r4, #-4]
 #else
+	mov	r1, #2
 	ldrh	r0, [r4, #-2]			@ Thumb instruction at LR - 2
 	cmp	r0, #0xe800			@ 32-bit instruction if xx >= 0
-	ldrhhs	r9, [r4]			@ bottom 16 bits
-	orrhs	r0, r9, r0, lsl #16
+	blo	__und_svc_fault
+	ldrh	r9, [r4]			@ bottom 16 bits
+	add	r4, r4, #2
+	str	r4, [sp, #S_PC]
+	orr	r0, r9, r0, lsl #16
 #endif
-	adr	r9, BSYM(1f)
+	adr	r9, BSYM(__und_svc_finish)
 	mov	r2, r4
 	bl	call_fpe
 
+	mov	r1, #4				@ PC correction to apply
+__und_svc_fault:
 	mov	r0, sp				@ struct pt_regs *regs
-	bl	do_undefinstr
+	bl	__und_fault
 
 	@
 	@ IRQs off again before pulling preserved data off the stack
 	@
-1:	disable_irq_notrace
+__und_svc_finish:
+	disable_irq_notrace
 
 	@
 	@ restore SPSR and restart the instruction
@@ -421,25 +441,33 @@
 	mov	r2, r4
 	mov	r3, r5
 
+	@ r2 = regs->ARM_pc, which is either 2 or 4 bytes ahead of the
+	@      faulting instruction depending on Thumb mode.
+	@ r3 = regs->ARM_cpsr
 	@
-	@ fall through to the emulation code, which returns using r9 if
-	@ it has emulated the instruction, or the more conventional lr
-	@ if we are to treat this as a real undefined instruction
-	@
-	@  r0 - instruction
+	@ The emulation code returns using r9 if it has emulated the
+	@ instruction, or the more conventional lr if we are to treat
+	@ this as a real undefined instruction
 	@
 	adr	r9, BSYM(ret_from_exception)
-	adr	lr, BSYM(__und_usr_unknown)
+
 	tst	r3, #PSR_T_BIT			@ Thumb mode?
-	itet	eq				@ explicit IT needed for the 1f label
-	subeq	r4, r2, #4			@ ARM instr at LR - 4
-	subne	r4, r2, #2			@ Thumb instr at LR - 2
-1:	ldreqt	r0, [r4]
+	bne	__und_usr_thumb
+	sub	r4, r2, #4			@ ARM instr at LR - 4
+1:	ldrt	r0, [r4]
 #ifdef CONFIG_CPU_ENDIAN_BE8
-	reveq	r0, r0				@ little endian instruction
+	rev	r0, r0				@ little endian instruction
 #endif
-	beq	call_fpe
+	@ r0 = 32-bit ARM instruction which caused the exception
+	@ r2 = PC value for the following instruction (:= regs->ARM_pc)
+	@ r4 = PC value for the faulting instruction
+	@ lr = 32-bit undefined instruction function
+	adr	lr, BSYM(__und_usr_fault_32)
+	b	call_fpe
+
+__und_usr_thumb:
 	@ Thumb instruction
+	sub	r4, r2, #2			@ First half of thumb instr at LR - 2
 #if CONFIG_ARM_THUMB && __LINUX_ARM_ARCH__ >= 6 && CONFIG_CPU_V7
 /*
  * Thumb-2 instruction handling.  Note that because pre-v6 and >= v6 platforms
@@ -453,7 +481,7 @@
 	ldr	r5, .LCcpu_architecture
 	ldr	r5, [r5]
 	cmp	r5, #CPU_ARCH_ARMv7
-	blo	__und_usr_unknown
+	blo	__und_usr_fault_16		@ 16bit undefined instruction
 /*
  * The following code won't get run unless the running CPU really is v7, so
  * coding round the lack of ldrht on older arches is pointless.  Temporarily
@@ -461,15 +489,18 @@
  */
 	.arch	armv6t2
 #endif
-2:
- ARM(	ldrht	r5, [r4], #2	)
- THUMB(	ldrht	r5, [r4]	)
- THUMB(	add	r4, r4, #2	)
+2:	ldrht	r5, [r4]
 	cmp	r5, #0xe800			@ 32bit instruction if xx != 0
-	blo	__und_usr_unknown
-3:	ldrht	r0, [r4]
+	blo	__und_usr_fault_16		@ 16bit undefined instruction
+3:	ldrht	r0, [r2]
 	add	r2, r2, #2			@ r2 is PC + 2, make it PC + 4
+	str	r2, [sp, #S_PC]			@ it's a 2x16bit instr, update
 	orr	r0, r0, r5, lsl #16
+	adr	lr, BSYM(__und_usr_fault_32)
+	@ r0 = the two 16-bit Thumb instructions which caused the exception
+	@ r2 = PC value for the following Thumb instruction (:= regs->ARM_pc)
+	@ r4 = PC value for the first 16-bit Thumb instruction
+	@ lr = 32bit undefined instruction function
 
 #if __LINUX_ARM_ARCH__ < 7
 /* If the target arch was overridden, change it back: */
@@ -480,17 +511,13 @@
 #endif
 #endif /* __LINUX_ARM_ARCH__ < 7 */
 #else /* !(CONFIG_ARM_THUMB && __LINUX_ARM_ARCH__ >= 6 && CONFIG_CPU_V7) */
-	b	__und_usr_unknown
+	b	__und_usr_fault_16
 #endif
- UNWIND(.fnend		)
+ UNWIND(.fnend)
 ENDPROC(__und_usr)
 
-	@
-	@ fallthrough to call_fpe
-	@
-
 /*
- * The out of line fixup for the ldrt above.
+ * The out of line fixup for the ldrt instructions above.
  */
 	.pushsection .fixup, "ax"
 4:	mov	pc, r9
@@ -521,11 +548,12 @@
  * NEON handler code.
  *
  * Emulators may wish to make use of the following registers:
- *  r0  = instruction opcode.
- *  r2  = PC+4
+ *  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
+ *  r2  = PC value to resume execution after successful emulation
  *  r9  = normal "successful" return address
- *  r10 = this threads thread_info structure.
+ *  r10 = this threads thread_info structure
  *  lr  = unrecognised instruction return address
+ * IRQs disabled, FIQs enabled.
  */
 	@
 	@ Fall-through from Thumb-2 __und_usr
@@ -660,12 +688,17 @@
 	mov	pc, lr
 ENDPROC(no_fp)
 
-__und_usr_unknown:
-	enable_irq
+__und_usr_fault_32:
+	mov	r1, #4
+	b	1f
+__und_usr_fault_16:
+	mov	r1, #2
+1:	enable_irq
 	mov	r0, sp
 	adr	lr, BSYM(ret_from_exception)
-	b	do_undefinstr
-ENDPROC(__und_usr_unknown)
+	b	__und_fault
+ENDPROC(__und_usr_fault_32)
+ENDPROC(__und_usr_fault_16)
 
 	.align	5
 __pabt_usr:
--- linux-3.2.0.orig/arch/arm/kernel/perf_event_v7.c
+++ linux-3.2.0/arch/arm/kernel/perf_event_v7.c
@@ -878,6 +878,11 @@
 
 	counter = ARMV7_IDX_TO_COUNTER(idx);
 	asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (BIT(counter)));
+	isb();
+	/* Clear the overflow flag in case an interrupt is pending. */
+	asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (BIT(counter)));
+	isb();
+
 	return idx;
 }
 
@@ -1024,6 +1029,10 @@
 		struct perf_event *event = cpuc->events[idx];
 		struct hw_perf_event *hwc;
 
+		/* Ignore if we don't have an event. */
+		if (!event)
+			continue;
+
 		/*
 		 * We have a single interrupt for all counters. Check that
 		 * each counter has overflowed before we process it.
@@ -1032,7 +1041,7 @@
 			continue;
 
 		hwc = &event->hw;
-		armpmu_event_update(event, hwc, idx, 1);
+		armpmu_event_update(event, hwc, idx);
 		data.period = event->hw.last_period;
 		if (!armpmu_event_set_period(event, hwc, idx))
 			continue;
--- linux-3.2.0.orig/arch/arm/kernel/process.c
+++ linux-3.2.0/arch/arm/kernel/process.c
@@ -57,7 +57,7 @@
   "ARM" , "Thumb" , "Jazelle", "ThumbEE"
 };
 
-extern void setup_mm_for_reboot(char mode);
+extern void setup_mm_for_reboot(void);
 
 static volatile int hlt_counter;
 
@@ -92,18 +92,24 @@
 __setup("nohlt", nohlt_setup);
 __setup("hlt", hlt_setup);
 
-void arm_machine_restart(char mode, const char *cmd)
+extern void call_with_stack(void (*fn)(void *), void *arg, void *sp);
+typedef void (*phys_reset_t)(unsigned long);
+
+/*
+ * A temporary stack to use for CPU reset. This is static so that we
+ * don't clobber it with the identity mapping. When running with this
+ * stack, any references to the current task *will not work* so you
+ * should really do as little as possible before jumping to your reset
+ * code.
+ */
+static u64 soft_restart_stack[16];
+
+static void __soft_restart(void *addr)
 {
-	/* Disable interrupts first */
-	local_irq_disable();
-	local_fiq_disable();
+	phys_reset_t phys_reset;
 
-	/*
-	 * Tell the mm system that we are going to reboot -
-	 * we may need it to insert some 1:1 mappings so that
-	 * soft boot works.
-	 */
-	setup_mm_for_reboot(mode);
+	/* Take out a flat memory mapping. */
+	setup_mm_for_reboot();
 
 	/* Clean and invalidate caches */
 	flush_cache_all();
@@ -114,18 +120,41 @@
 	/* Push out any further dirty data, and ensure cache is empty */
 	flush_cache_all();
 
-	/*
-	 * Now call the architecture specific reboot code.
-	 */
-	arch_reset(mode, cmd);
+	/* Switch to the identity mapping. */
+	phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset);
+	phys_reset((unsigned long)addr);
 
-	/*
-	 * Whoops - the architecture was unable to reboot.
-	 * Tell the user!
-	 */
-	mdelay(1000);
-	printk("Reboot failed -- System halted\n");
-	while (1);
+	/* Should never get here. */
+	BUG();
+}
+
+void soft_restart(unsigned long addr)
+{
+	u64 *stack = soft_restart_stack + ARRAY_SIZE(soft_restart_stack);
+
+	/* Disable interrupts first */
+	local_irq_disable();
+	local_fiq_disable();
+
+	/* Disable the L2 if we're the last man standing. */
+	if (num_online_cpus() == 1)
+		outer_disable();
+
+	/* Change to the new stack and continue with the reset. */
+	call_with_stack(__soft_restart, (void *)addr, (void *)stack);
+
+	/* Should never get here. */
+	BUG();
+}
+
+void arm_machine_restart(char mode, const char *cmd)
+{
+	/* Disable interrupts first */
+	local_irq_disable();
+	local_fiq_disable();
+
+	/* Call the architecture specific reboot code. */
+	arch_reset(mode, cmd);
 }
 
 /*
@@ -240,6 +269,7 @@
 void machine_halt(void)
 {
 	machine_shutdown();
+	local_irq_disable();
 	while (1);
 }
 
@@ -253,7 +283,16 @@
 void machine_restart(char *cmd)
 {
 	machine_shutdown();
+
 	arm_pm_restart(reboot_mode, cmd);
+
+	/* Give a grace period for failure to restart of 1s */
+	mdelay(1000);
+
+	/* Whoops - the platform was unable to reboot. Tell the user! */
+	printk("Reboot failed -- System halted\n");
+	local_irq_disable();
+	while (1);
 }
 
 void __show_regs(struct pt_regs *regs)
--- linux-3.2.0.orig/arch/arm/kernel/smp_scu.c
+++ linux-3.2.0/arch/arm/kernel/smp_scu.c
@@ -11,6 +11,7 @@
 #include <linux/init.h>
 #include <linux/io.h>
 
+#include <asm/smp_plat.h>
 #include <asm/smp_scu.h>
 #include <asm/cacheflush.h>
 #include <asm/cputype.h>
@@ -74,7 +75,7 @@
 int scu_power_mode(void __iomem *scu_base, unsigned int mode)
 {
 	unsigned int val;
-	int cpu = smp_processor_id();
+	int cpu = cpu_logical_map(smp_processor_id());
 
 	if (mode > 3 || mode == 1 || cpu > 3)
 		return -EINVAL;
--- linux-3.2.0.orig/arch/arm/kernel/perf_event.c
+++ linux-3.2.0/arch/arm/kernel/perf_event.c
@@ -187,7 +187,7 @@
 u64
 armpmu_event_update(struct perf_event *event,
 		    struct hw_perf_event *hwc,
-		    int idx, int overflow)
+		    int idx)
 {
 	struct arm_pmu *armpmu = to_arm_pmu(event->pmu);
 	u64 delta, prev_raw_count, new_raw_count;
@@ -200,13 +200,7 @@
 			     new_raw_count) != prev_raw_count)
 		goto again;
 
-	new_raw_count &= armpmu->max_period;
-	prev_raw_count &= armpmu->max_period;
-
-	if (overflow)
-		delta = armpmu->max_period - prev_raw_count + new_raw_count + 1;
-	else
-		delta = new_raw_count - prev_raw_count;
+	delta = (new_raw_count - prev_raw_count) & armpmu->max_period;
 
 	local64_add(delta, &event->count);
 	local64_sub(delta, &hwc->period_left);
@@ -223,7 +217,7 @@
 	if (hwc->idx < 0)
 		return;
 
-	armpmu_event_update(event, hwc, hwc->idx, 0);
+	armpmu_event_update(event, hwc, hwc->idx);
 }
 
 static void
@@ -239,7 +233,7 @@
 	if (!(hwc->state & PERF_HES_STOPPED)) {
 		armpmu->disable(hwc, hwc->idx);
 		barrier(); /* why? */
-		armpmu_event_update(event, hwc, hwc->idx, 0);
+		armpmu_event_update(event, hwc, hwc->idx);
 		hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
 	}
 }
@@ -519,7 +513,13 @@
 	hwc->config_base	    |= (unsigned long)mapping;
 
 	if (!hwc->sample_period) {
-		hwc->sample_period  = armpmu->max_period;
+		/*
+		 * For non-sampling runs, limit the sample_period to half
+		 * of the counter width. That way, the new counter value
+		 * is far less likely to overtake the previous one unless
+		 * you have some serious IRQ latency issues.
+		 */
+		hwc->sample_period  = armpmu->max_period >> 1;
 		hwc->last_period    = hwc->sample_period;
 		local64_set(&hwc->period_left, hwc->sample_period);
 	}
--- linux-3.2.0.orig/arch/arm/kernel/perf_event_v6.c
+++ linux-3.2.0/arch/arm/kernel/perf_event_v6.c
@@ -463,23 +463,6 @@
 	raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
 }
 
-static int counter_is_active(unsigned long pmcr, int idx)
-{
-	unsigned long mask = 0;
-	if (idx == ARMV6_CYCLE_COUNTER)
-		mask = ARMV6_PMCR_CCOUNT_IEN;
-	else if (idx == ARMV6_COUNTER0)
-		mask = ARMV6_PMCR_COUNT0_IEN;
-	else if (idx == ARMV6_COUNTER1)
-		mask = ARMV6_PMCR_COUNT1_IEN;
-
-	if (mask)
-		return pmcr & mask;
-
-	WARN_ONCE(1, "invalid counter number (%d)\n", idx);
-	return 0;
-}
-
 static irqreturn_t
 armv6pmu_handle_irq(int irq_num,
 		    void *dev)
@@ -509,7 +492,8 @@
 		struct perf_event *event = cpuc->events[idx];
 		struct hw_perf_event *hwc;
 
-		if (!counter_is_active(pmcr, idx))
+		/* Ignore if we don't have an event. */
+		if (!event)
 			continue;
 
 		/*
@@ -520,7 +504,7 @@
 			continue;
 
 		hwc = &event->hw;
-		armpmu_event_update(event, hwc, idx, 1);
+		armpmu_event_update(event, hwc, idx);
 		data.period = event->hw.last_period;
 		if (!armpmu_event_set_period(event, hwc, idx))
 			continue;
--- 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 <linux/init.h>
 #include <linux/err.h>
-#include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
@@ -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/plat-versatile/headsmp.S
+++ linux-3.2.0/arch/arm/plat-versatile/headsmp.S
@@ -38,3 +38,4 @@
 	.align
 1:	.long	.
 	.long	pen_release
+ENDPROC(versatile_secondary_startup)
--- linux-3.2.0.orig/arch/arm/plat-versatile/sched-clock.c
+++ linux-3.2.0/arch/arm/plat-versatile/sched-clock.c
@@ -18,41 +18,24 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+#include <linux/kernel.h>
 #include <linux/io.h>
-#include <linux/sched.h>
 
 #include <asm/sched_clock.h>
 #include <plat/sched_clock.h>
 
-static DEFINE_CLOCK_DATA(cd);
 static void __iomem *ctr;
 
-/*
- * Constants generated by clocks_calc_mult_shift(m, s, 24MHz, NSEC_PER_SEC, 60).
- * This gives a resolution of about 41ns and a wrap period of about 178s.
- */
-#define SC_MULT		2796202667u
-#define SC_SHIFT	26
-
-unsigned long long notrace sched_clock(void)
+static u32 notrace versatile_read_sched_clock(void)
 {
-	if (ctr) {
-		u32 cyc = readl(ctr);
-		return cyc_to_fixed_sched_clock(&cd, cyc, (u32)~0,
-						SC_MULT, SC_SHIFT);
-	} else
-		return 0;
-}
+	if (ctr)
+		return readl(ctr);
 
-static void notrace versatile_update_sched_clock(void)
-{
-	u32 cyc = readl(ctr);
-	update_sched_clock(&cd, cyc, (u32)~0);
+	return 0;
 }
 
 void __init versatile_sched_clock_init(void __iomem *reg, unsigned long rate)
 {
 	ctr = reg;
-	init_fixed_sched_clock(&cd, versatile_update_sched_clock,
-			       32, rate, SC_MULT, SC_SHIFT);
+	setup_sched_clock(versatile_read_sched_clock, 32, rate);
 }
--- linux-3.2.0.orig/arch/arm/mach-ks8695/include/mach/system.h
+++ linux-3.2.0/arch/arm/mach-ks8695/include/mach/system.h
@@ -32,7 +32,7 @@
 	unsigned int reg;
 
 	if (mode == 's')
-		cpu_reset(0);
+		soft_restart(0);
 
 	/* disable timer0 */
 	reg = __raw_readl(KS8695_TMR_VA + KS8695_TMCON);
--- linux-3.2.0.orig/arch/arm/mach-dove/irq.c
+++ linux-3.2.0/arch/arm/mach-dove/irq.c
@@ -61,8 +61,20 @@
 	int pin = irq_to_pmu(d->irq);
 	u32 u;
 
+	/*
+	 * The PMU mask register is not RW0C: it is RW.  This means that
+	 * the bits take whatever value is written to them; if you write
+	 * a '1', you will set the interrupt.
+	 *
+	 * Unfortunately this means there is NO race free way to clear
+	 * these interrupts.
+	 *
+	 * So, let's structure the code so that the window is as small as
+	 * possible.
+	 */
 	u = ~(1 << (pin & 31));
-	writel(u, PMU_INTERRUPT_CAUSE);
+	u &= readl_relaxed(PMU_INTERRUPT_CAUSE);
+	writel_relaxed(u, PMU_INTERRUPT_CAUSE);
 }
 
 static struct irq_chip pmu_irq_chip = {
--- linux-3.2.0.orig/arch/arm/mach-dove/common.c
+++ linux-3.2.0/arch/arm/mach-dove/common.c
@@ -29,6 +29,7 @@
 #include <asm/mach/arch.h>
 #include <linux/irq.h>
 #include <plat/time.h>
+#include <plat/ehci-orion.h>
 #include <plat/common.h>
 #include "common.h"
 
@@ -72,7 +73,7 @@
 void __init dove_ehci0_init(void)
 {
 	orion_ehci_init(&dove_mbus_dram_info,
-			DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0);
+			DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0, EHCI_PHY_NA);
 }
 
 /*****************************************************************************
@@ -91,7 +92,7 @@
 {
 	orion_ge00_init(eth_data, &dove_mbus_dram_info,
 			DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM,
-			0, get_tclk());
+			0, get_tclk(), 1600);
 }
 
 /*****************************************************************************
--- linux-3.2.0.orig/arch/arm/mach-dove/include/mach/pm.h
+++ linux-3.2.0/arch/arm/mach-dove/include/mach/pm.h
@@ -45,7 +45,7 @@
 
 static inline int irq_to_pmu(int irq)
 {
-	if (IRQ_DOVE_PMU_START < irq && irq < NR_IRQS)
+	if (IRQ_DOVE_PMU_START <= irq && irq < NR_IRQS)
 		return irq - IRQ_DOVE_PMU_START;
 
 	return -EINVAL;
--- 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/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-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-ebsa110/core.c
+++ linux-3.2.0/arch/arm/mach-ebsa110/core.c
@@ -283,7 +283,7 @@
 	.atag_offset	= 0x400,
 	.reserve_lp0	= 1,
 	.reserve_lp2	= 1,
-	.soft_reboot	= 1,
+	.restart_mode	= 's',
 	.map_io		= ebsa110_map_io,
 	.init_irq	= ebsa110_init_irq,
 	.timer		= &ebsa110_timer,
--- linux-3.2.0.orig/arch/arm/mach-ebsa110/include/mach/system.h
+++ linux-3.2.0/arch/arm/mach-ebsa110/include/mach/system.h
@@ -34,6 +34,6 @@
 	asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc");
 }
 
-#define arch_reset(mode, cmd)	cpu_reset(0x80000000)
+#define arch_reset(mode, cmd)	soft_restart(0x80000000)
 
 #endif
--- 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/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-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/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-kirkwood/pcie.c
+++ linux-3.2.0/arch/arm/mach-kirkwood/pcie.c
@@ -213,14 +213,19 @@
 	return 1;
 }
 
+/*
+ * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it
+ * is operating as a root complex this needs to be switched to
+ * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on
+ * the device. Decoding setup is handled by the orion code.
+ */
 static void __devinit rc_pci_fixup(struct pci_dev *dev)
 {
-	/*
-	 * Prevent enumeration of root complex.
-	 */
 	if (dev->bus->parent == NULL && dev->devfn == 0) {
 		int i;
 
+		dev->class &= 0xff;
+		dev->class |= PCI_CLASS_BRIDGE_HOST << 8;
 		for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
 			dev->resource[i].start = 0;
 			dev->resource[i].end   = 0;
--- linux-3.2.0.orig/arch/arm/mach-kirkwood/common.c
+++ linux-3.2.0/arch/arm/mach-kirkwood/common.c
@@ -28,6 +28,7 @@
 #include <plat/cache-feroceon-l2.h>
 #include <plat/mvsdio.h>
 #include <plat/orion_nand.h>
+#include <plat/ehci-orion.h>
 #include <plat/common.h>
 #include <plat/time.h>
 #include "common.h"
@@ -74,7 +75,7 @@
 {
 	kirkwood_clk_ctrl |= CGC_USB0;
 	orion_ehci_init(&kirkwood_mbus_dram_info,
-			USB_PHYS_BASE, IRQ_KIRKWOOD_USB);
+			USB_PHYS_BASE, IRQ_KIRKWOOD_USB, EHCI_PHY_NA);
 }
 
 
@@ -87,7 +88,7 @@
 
 	orion_ge00_init(eth_data, &kirkwood_mbus_dram_info,
 			GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM,
-			IRQ_KIRKWOOD_GE00_ERR, kirkwood_tclk);
+			IRQ_KIRKWOOD_GE00_ERR, kirkwood_tclk, 1600);
 }
 
 
@@ -101,7 +102,7 @@
 
 	orion_ge01_init(eth_data, &kirkwood_mbus_dram_info,
 			GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM,
-			IRQ_KIRKWOOD_GE01_ERR, kirkwood_tclk);
+			IRQ_KIRKWOOD_GE01_ERR, kirkwood_tclk, 1600);
 }
 
 
--- linux-3.2.0.orig/arch/arm/mach-kirkwood/mpp.h
+++ linux-3.2.0/arch/arm/mach-kirkwood/mpp.h
@@ -31,313 +31,313 @@
 #define MPP_F6282_MASK		MPP(  0, 0x0, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP0_GPIO		MPP(  0, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP0_NF_IO2		MPP(  0, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP0_SPI_SCn		MPP(  0, 0x2, 0, 1, 1,   1,   1,   1,   1 )
+#define MPP0_NF_IO2		MPP(  0, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP0_SPI_SCn		MPP(  0, 0x2, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP1_GPO		MPP(  1, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP1_NF_IO3		MPP(  1, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP1_SPI_MOSI		MPP(  1, 0x2, 0, 1, 1,   1,   1,   1,   1 )
+#define MPP1_NF_IO3		MPP(  1, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP1_SPI_MOSI		MPP(  1, 0x2, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP2_GPO		MPP(  2, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP2_NF_IO4		MPP(  2, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP2_SPI_SCK		MPP(  2, 0x2, 0, 1, 1,   1,   1,   1,   1 )
+#define MPP2_NF_IO4		MPP(  2, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP2_SPI_SCK		MPP(  2, 0x2, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP3_GPO		MPP(  3, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP3_NF_IO5		MPP(  3, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP3_SPI_MISO		MPP(  3, 0x2, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP3_NF_IO5		MPP(  3, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP3_SPI_MISO		MPP(  3, 0x2, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP4_GPIO		MPP(  4, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP4_NF_IO6		MPP(  4, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP4_UART0_RXD		MPP(  4, 0x2, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP4_SATA1_ACTn		MPP(  4, 0x5, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP4_NF_IO6		MPP(  4, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP4_UART0_RXD		MPP(  4, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP4_SATA1_ACTn		MPP(  4, 0x5, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP4_LCD_VGA_HSYNC	MPP(  4, 0xb, 0, 0, 0,   0,   0,   0,   1 )
-#define MPP4_PTP_CLK		MPP(  4, 0xd, 1, 0, 1,   1,   1,   1,   0 )
+#define MPP4_PTP_CLK		MPP(  4, 0xd, 0, 0, 1,   1,   1,   1,   0 )
 
 #define MPP5_GPO		MPP(  5, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP5_NF_IO7		MPP(  5, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP5_UART0_TXD		MPP(  5, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP5_PTP_TRIG_GEN	MPP(  5, 0x4, 0, 1, 1,   1,   1,   1,   0 )
-#define MPP5_SATA0_ACTn		MPP(  5, 0x5, 0, 1, 0,   1,   1,   1,   1 )
+#define MPP5_NF_IO7		MPP(  5, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP5_UART0_TXD		MPP(  5, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP5_PTP_TRIG_GEN	MPP(  5, 0x4, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP5_SATA0_ACTn		MPP(  5, 0x5, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP5_LCD_VGA_VSYNC	MPP(  5, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
-#define MPP6_SYSRST_OUTn	MPP(  6, 0x1, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP6_SPI_MOSI		MPP(  6, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP6_PTP_TRIG_GEN	MPP(  6, 0x3, 0, 1, 1,   1,   1,   1,   0 )
+#define MPP6_SYSRST_OUTn	MPP(  6, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP6_SPI_MOSI		MPP(  6, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP6_PTP_TRIG_GEN	MPP(  6, 0x3, 0, 0, 1,   1,   1,   1,   0 )
 
 #define MPP7_GPO		MPP(  7, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP7_PEX_RST_OUTn	MPP(  7, 0x1, 0, 1, 1,   1,   1,   1,   0 )
-#define MPP7_SPI_SCn		MPP(  7, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP7_PTP_TRIG_GEN	MPP(  7, 0x3, 0, 1, 1,   1,   1,   1,   0 )
-#define MPP7_LCD_PWM		MPP(  7, 0xb, 0, 1, 0,   0,   0,   0,   1 )
+#define MPP7_PEX_RST_OUTn	MPP(  7, 0x1, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP7_SPI_SCn		MPP(  7, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP7_PTP_TRIG_GEN	MPP(  7, 0x3, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP7_LCD_PWM		MPP(  7, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP8_GPIO		MPP(  8, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP8_TW0_SDA		MPP(  8, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP8_UART0_RTS		MPP(  8, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP8_UART1_RTS		MPP(  8, 0x3, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP8_MII0_RXERR		MPP(  8, 0x4, 1, 0, 0,   1,   1,   1,   1 )
-#define MPP8_SATA1_PRESENTn	MPP(  8, 0x5, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP8_PTP_CLK		MPP(  8, 0xc, 1, 0, 1,   1,   1,   1,   0 )
-#define MPP8_MII0_COL		MPP(  8, 0xd, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP8_TW0_SDA		MPP(  8, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP8_UART0_RTS		MPP(  8, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP8_UART1_RTS		MPP(  8, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP8_MII0_RXERR		MPP(  8, 0x4, 0, 0, 0,   1,   1,   1,   1 )
+#define MPP8_SATA1_PRESENTn	MPP(  8, 0x5, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP8_PTP_CLK		MPP(  8, 0xc, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP8_MII0_COL		MPP(  8, 0xd, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP9_GPIO		MPP(  9, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP9_TW0_SCK		MPP(  9, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP9_UART0_CTS		MPP(  9, 0x2, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP9_UART1_CTS		MPP(  9, 0x3, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP9_SATA0_PRESENTn	MPP(  9, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-#define MPP9_PTP_EVENT_REQ	MPP(  9, 0xc, 1, 0, 1,   1,   1,   1,   0 )
-#define MPP9_MII0_CRS		MPP(  9, 0xd, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP9_TW0_SCK		MPP(  9, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP9_UART0_CTS		MPP(  9, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP9_UART1_CTS		MPP(  9, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP9_SATA0_PRESENTn	MPP(  9, 0x5, 0, 0, 0,   1,   1,   1,   1 )
+#define MPP9_PTP_EVENT_REQ	MPP(  9, 0xc, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP9_MII0_CRS		MPP(  9, 0xd, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP10_GPO		MPP( 10, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP10_SPI_SCK		MPP( 10, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP10_UART0_TXD		MPP( 10, 0X3, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP10_SATA1_ACTn	MPP( 10, 0x5, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP10_PTP_TRIG_GEN	MPP( 10, 0xc, 0, 1, 1,   1,   1,   1,   0 )
+#define MPP10_SPI_SCK		MPP( 10, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP10_UART0_TXD		MPP( 10, 0X3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP10_SATA1_ACTn	MPP( 10, 0x5, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP10_PTP_TRIG_GEN	MPP( 10, 0xc, 0, 0, 1,   1,   1,   1,   0 )
 
 #define MPP11_GPIO		MPP( 11, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP11_SPI_MISO		MPP( 11, 0x2, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP11_UART0_RXD		MPP( 11, 0x3, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP11_PTP_EVENT_REQ	MPP( 11, 0x4, 1, 0, 1,   1,   1,   1,   0 )
-#define MPP11_PTP_TRIG_GEN	MPP( 11, 0xc, 0, 1, 1,   1,   1,   1,   0 )
-#define MPP11_PTP_CLK		MPP( 11, 0xd, 1, 0, 1,   1,   1,   1,   0 )
-#define MPP11_SATA0_ACTn	MPP( 11, 0x5, 0, 1, 0,   1,   1,   1,   1 )
+#define MPP11_SPI_MISO		MPP( 11, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP11_UART0_RXD		MPP( 11, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP11_PTP_EVENT_REQ	MPP( 11, 0x4, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP11_PTP_TRIG_GEN	MPP( 11, 0xc, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP11_PTP_CLK		MPP( 11, 0xd, 0, 0, 1,   1,   1,   1,   0 )
+#define MPP11_SATA0_ACTn	MPP( 11, 0x5, 0, 0, 0,   1,   1,   1,   1 )
 
 #define MPP12_GPO		MPP( 12, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP12_SD_CLK		MPP( 12, 0x1, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP12_AU_SPDIF0		MPP( 12, 0xa, 0, 1, 0,   0,   0,   0,   1 )
-#define MPP12_SPI_MOSI		MPP( 12, 0xb, 0, 1, 0,   0,   0,   0,   1 )
-#define MPP12_TW1_SDA		MPP( 12, 0xd, 1, 0, 0,   0,   0,   0,   1 )
+#define MPP12_SD_CLK		MPP( 12, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP12_AU_SPDIF0		MPP( 12, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP12_SPI_MOSI		MPP( 12, 0xb, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP12_TW1_SDA		MPP( 12, 0xd, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP13_GPIO		MPP( 13, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP13_SD_CMD		MPP( 13, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP13_UART1_TXD		MPP( 13, 0x3, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP13_AU_SPDIFRMCLK	MPP( 13, 0xa, 0, 1, 0,   0,   0,   0,   1 )
-#define MPP13_LCDPWM		MPP( 13, 0xb, 0, 1, 0,   0,   0,   0,   1 )
+#define MPP13_SD_CMD		MPP( 13, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP13_UART1_TXD		MPP( 13, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP13_AU_SPDIFRMCLK	MPP( 13, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP13_LCDPWM		MPP( 13, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP14_GPIO		MPP( 14, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP14_SD_D0		MPP( 14, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP14_UART1_RXD		MPP( 14, 0x3, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP14_SATA1_PRESENTn	MPP( 14, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP14_AU_SPDIFI		MPP( 14, 0xa, 1, 0, 0,   0,   0,   0,   1 )
-#define MPP14_AU_I2SDI		MPP( 14, 0xb, 1, 0, 0,   0,   0,   0,   1 )
-#define MPP14_MII0_COL		MPP( 14, 0xd, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP14_SD_D0		MPP( 14, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP14_UART1_RXD		MPP( 14, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP14_SATA1_PRESENTn	MPP( 14, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP14_AU_SPDIFI		MPP( 14, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP14_AU_I2SDI		MPP( 14, 0xb, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP14_MII0_COL		MPP( 14, 0xd, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP15_GPIO		MPP( 15, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP15_SD_D1		MPP( 15, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP15_UART0_RTS		MPP( 15, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP15_UART1_TXD		MPP( 15, 0x3, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP15_SATA0_ACTn	MPP( 15, 0x4, 0, 1, 0,   1,   1,   1,   1 )
-#define MPP15_SPI_CSn		MPP( 15, 0xb, 0, 1, 0,   0,   0,   0,   1 )
+#define MPP15_SD_D1		MPP( 15, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP15_UART0_RTS		MPP( 15, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP15_UART1_TXD		MPP( 15, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP15_SATA0_ACTn	MPP( 15, 0x4, 0, 0, 0,   1,   1,   1,   1 )
+#define MPP15_SPI_CSn		MPP( 15, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP16_GPIO		MPP( 16, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP16_SD_D2		MPP( 16, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP16_UART0_CTS		MPP( 16, 0x2, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP16_UART1_RXD		MPP( 16, 0x3, 1, 0, 1,   1,   1,   1,   1 )
-#define MPP16_SATA1_ACTn	MPP( 16, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP16_LCD_EXT_REF_CLK	MPP( 16, 0xb, 1, 0, 0,   0,   0,   0,   1 )
-#define MPP16_MII0_CRS		MPP( 16, 0xd, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP16_SD_D2		MPP( 16, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP16_UART0_CTS		MPP( 16, 0x2, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP16_UART1_RXD		MPP( 16, 0x3, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP16_SATA1_ACTn	MPP( 16, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP16_LCD_EXT_REF_CLK	MPP( 16, 0xb, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP16_MII0_CRS		MPP( 16, 0xd, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP17_GPIO		MPP( 17, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP17_SD_D3		MPP( 17, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP17_SATA0_PRESENTn	MPP( 17, 0x4, 0, 1, 0,   1,   1,   1,   1 )
-#define MPP17_SATA1_ACTn	MPP( 17, 0xa, 0, 1, 0,   0,   0,   0,   1 )
-#define MPP17_TW1_SCK		MPP( 17, 0xd, 1, 1, 0,   0,   0,   0,   1 )
+#define MPP17_SD_D3		MPP( 17, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP17_SATA0_PRESENTn	MPP( 17, 0x4, 0, 0, 0,   1,   1,   1,   1 )
+#define MPP17_SATA1_ACTn	MPP( 17, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+#define MPP17_TW1_SCK		MPP( 17, 0xd, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP18_GPO		MPP( 18, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP18_NF_IO0		MPP( 18, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP18_PEX0_CLKREQ	MPP( 18, 0x2, 0, 1, 0,   0,   0,   0,   1 )
+#define MPP18_NF_IO0		MPP( 18, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+#define MPP18_PEX0_CLKREQ	MPP( 18, 0x2, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP19_GPO		MPP( 19, 0x0, 0, 1, 1,   1,   1,   1,   1 )
-#define MPP19_NF_IO1		MPP( 19, 0x1, 1, 1, 1,   1,   1,   1,   1 )
+#define MPP19_NF_IO1		MPP( 19, 0x1, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP20_GPIO		MPP( 20, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP20_TSMP0		MPP( 20, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP20_TDM_CH0_TX_QL	MPP( 20, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP20_TSMP0		MPP( 20, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP20_TDM_CH0_TX_QL	MPP( 20, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP20_GE1_TXD0		MPP( 20, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP20_AU_SPDIFI		MPP( 20, 0x4, 1, 0, 0,   0,   1,   1,   1 )
-#define MPP20_SATA1_ACTn	MPP( 20, 0x5, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP20_AU_SPDIFI		MPP( 20, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP20_SATA1_ACTn	MPP( 20, 0x5, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP20_LCD_D0		MPP( 20, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP21_GPIO		MPP( 21, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP21_TSMP1		MPP( 21, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP21_TDM_CH0_RX_QL	MPP( 21, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP21_TSMP1		MPP( 21, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP21_TDM_CH0_RX_QL	MPP( 21, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP21_GE1_TXD1		MPP( 21, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP21_AU_SPDIFO		MPP( 21, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP21_SATA0_ACTn	MPP( 21, 0x5, 0, 1, 0,   1,   1,   1,   1 )
+#define MPP21_AU_SPDIFO		MPP( 21, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP21_SATA0_ACTn	MPP( 21, 0x5, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP21_LCD_D1		MPP( 21, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP22_GPIO		MPP( 22, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP22_TSMP2		MPP( 22, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP22_TDM_CH2_TX_QL	MPP( 22, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP22_TSMP2		MPP( 22, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP22_TDM_CH2_TX_QL	MPP( 22, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP22_GE1_TXD2		MPP( 22, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP22_AU_SPDIFRMKCLK	MPP( 22, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP22_SATA1_PRESENTn	MPP( 22, 0x5, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP22_AU_SPDIFRMKCLK	MPP( 22, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP22_SATA1_PRESENTn	MPP( 22, 0x5, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP22_LCD_D2		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP23_GPIO		MPP( 23, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP23_TSMP3		MPP( 23, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP23_TDM_CH2_RX_QL	MPP( 23, 0x2, 1, 0, 0,   0,   1,   1,   1 )
+#define MPP23_TSMP3		MPP( 23, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP23_TDM_CH2_RX_QL	MPP( 23, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP23_GE1_TXD3		MPP( 23, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP23_AU_I2SBCLK	MPP( 23, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-#define MPP23_SATA0_PRESENTn	MPP( 23, 0x5, 0, 1, 0,   1,   1,   1,   1 )
+#define MPP23_AU_I2SBCLK	MPP( 23, 0x4, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP23_SATA0_PRESENTn	MPP( 23, 0x5, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP23_LCD_D3		MPP( 23, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP24_GPIO		MPP( 24, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP24_TSMP4		MPP( 24, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP24_TDM_SPI_CS0	MPP( 24, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP24_TSMP4		MPP( 24, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP24_TDM_SPI_CS0	MPP( 24, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP24_GE1_RXD0		MPP( 24, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP24_AU_I2SDO		MPP( 24, 0x4, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP24_AU_I2SDO		MPP( 24, 0x4, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP24_LCD_D4		MPP( 24, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP25_GPIO		MPP( 25, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP25_TSMP5		MPP( 25, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP25_TDM_SPI_SCK	MPP( 25, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP25_TSMP5		MPP( 25, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP25_TDM_SPI_SCK	MPP( 25, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP25_GE1_RXD1		MPP( 25, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP25_AU_I2SLRCLK	MPP( 25, 0x4, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP25_AU_I2SLRCLK	MPP( 25, 0x4, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP25_LCD_D5		MPP( 25, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP26_GPIO		MPP( 26, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP26_TSMP6		MPP( 26, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP26_TDM_SPI_MISO	MPP( 26, 0x2, 1, 0, 0,   0,   1,   1,   1 )
+#define MPP26_TSMP6		MPP( 26, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP26_TDM_SPI_MISO	MPP( 26, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP26_GE1_RXD2		MPP( 26, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP26_AU_I2SMCLK	MPP( 26, 0x4, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP26_AU_I2SMCLK	MPP( 26, 0x4, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP26_LCD_D6		MPP( 26, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP27_GPIO		MPP( 27, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP27_TSMP7		MPP( 27, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP27_TDM_SPI_MOSI	MPP( 27, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP27_TSMP7		MPP( 27, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP27_TDM_SPI_MOSI	MPP( 27, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP27_GE1_RXD3		MPP( 27, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP27_AU_I2SDI		MPP( 27, 0x4, 1, 0, 0,   0,   1,   1,   1 )
+#define MPP27_AU_I2SDI		MPP( 27, 0x4, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP27_LCD_D7		MPP( 27, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP28_GPIO		MPP( 28, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP28_TSMP8		MPP( 28, 0x1, 1, 1, 0,   0,   1,   1,   1 )
+#define MPP28_TSMP8		MPP( 28, 0x1, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP28_TDM_CODEC_INTn	MPP( 28, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP28_GE1_COL		MPP( 28, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP28_AU_EXTCLK		MPP( 28, 0x4, 1, 0, 0,   0,   1,   1,   1 )
+#define MPP28_AU_EXTCLK		MPP( 28, 0x4, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP28_LCD_D8		MPP( 28, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP29_GPIO		MPP( 29, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP29_TSMP9		MPP( 29, 0x1, 1, 1, 0,   0,   1,   1,   1 )
+#define MPP29_TSMP9		MPP( 29, 0x1, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP29_TDM_CODEC_RSTn	MPP( 29, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP29_GE1_TCLK		MPP( 29, 0x3, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP29_LCD_D9		MPP( 29, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP30_GPIO		MPP( 30, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP30_TSMP10		MPP( 30, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP30_TDM_PCLK		MPP( 30, 0x2, 1, 1, 0,   0,   1,   1,   1 )
+#define MPP30_TSMP10		MPP( 30, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP30_TDM_PCLK		MPP( 30, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP30_GE1_RXCTL		MPP( 30, 0x3, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP30_LCD_D10		MPP( 30, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP31_GPIO		MPP( 31, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP31_TSMP11		MPP( 31, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP31_TDM_FS		MPP( 31, 0x2, 1, 1, 0,   0,   1,   1,   1 )
+#define MPP31_TSMP11		MPP( 31, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP31_TDM_FS		MPP( 31, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP31_GE1_RXCLK		MPP( 31, 0x3, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP31_LCD_D11		MPP( 31, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP32_GPIO		MPP( 32, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP32_TSMP12		MPP( 32, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-#define MPP32_TDM_DRX		MPP( 32, 0x2, 1, 0, 0,   0,   1,   1,   1 )
+#define MPP32_TSMP12		MPP( 32, 0x1, 0, 0, 0,   0,   1,   1,   1 )
+#define MPP32_TDM_DRX		MPP( 32, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP32_GE1_TCLKOUT	MPP( 32, 0x3, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP32_LCD_D12		MPP( 32, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP33_GPO		MPP( 33, 0x0, 0, 1, 0,   1,   1,   1,   1 )
-#define MPP33_TDM_DTX		MPP( 33, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP33_TDM_DTX		MPP( 33, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP33_GE1_TXCTL		MPP( 33, 0x3, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP33_LCD_D13		MPP( 33, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP34_GPIO		MPP( 34, 0x0, 1, 1, 0,   1,   1,   1,   1 )
-#define MPP34_TDM_SPI_CS1	MPP( 34, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP34_TDM_SPI_CS1	MPP( 34, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP34_GE1_TXEN		MPP( 34, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP34_SATA1_ACTn	MPP( 34, 0x5, 0, 1, 0,   0,   0,   1,   1 )
+#define MPP34_SATA1_ACTn	MPP( 34, 0x5, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP34_LCD_D14		MPP( 34, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP35_GPIO		MPP( 35, 0x0, 1, 1, 1,   1,   1,   1,   1 )
-#define MPP35_TDM_CH0_TX_QL	MPP( 35, 0x2, 0, 1, 0,   0,   1,   1,   1 )
+#define MPP35_TDM_CH0_TX_QL	MPP( 35, 0x2, 0, 0, 0,   0,   1,   1,   1 )
 #define MPP35_GE1_RXERR		MPP( 35, 0x3, 0, 0, 0,   1,   1,   1,   1 )
-#define MPP35_SATA0_ACTn	MPP( 35, 0x5, 0, 1, 0,   1,   1,   1,   1 )
+#define MPP35_SATA0_ACTn	MPP( 35, 0x5, 0, 0, 0,   1,   1,   1,   1 )
 #define MPP35_LCD_D15		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
-#define MPP35_MII0_RXERR	MPP( 35, 0xc, 1, 0, 1,   1,   1,   1,   1 )
+#define MPP35_MII0_RXERR	MPP( 35, 0xc, 0, 0, 1,   1,   1,   1,   1 )
 
 #define MPP36_GPIO		MPP( 36, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP36_TSMP0		MPP( 36, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP36_TDM_SPI_CS1	MPP( 36, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP36_AU_SPDIFI		MPP( 36, 0x4, 1, 0, 1,   0,   0,   1,   1 )
-#define MPP36_TW1_SDA		MPP( 36, 0xb, 1, 1, 0,   0,   0,   0,   1 )
+#define MPP36_TSMP0		MPP( 36, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP36_TDM_SPI_CS1	MPP( 36, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP36_AU_SPDIFI		MPP( 36, 0x4, 0, 0, 1,   0,   0,   1,   1 )
+#define MPP36_TW1_SDA		MPP( 36, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP37_GPIO		MPP( 37, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP37_TSMP1		MPP( 37, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP37_TDM_CH2_TX_QL	MPP( 37, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP37_AU_SPDIFO		MPP( 37, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-#define MPP37_TW1_SCK		MPP( 37, 0xb, 1, 1, 0,   0,   0,   0,   1 )
+#define MPP37_TSMP1		MPP( 37, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP37_TDM_CH2_TX_QL	MPP( 37, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP37_AU_SPDIFO		MPP( 37, 0x4, 0, 0, 1,   0,   0,   1,   1 )
+#define MPP37_TW1_SCK		MPP( 37, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP38_GPIO		MPP( 38, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP38_TSMP2		MPP( 38, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP38_TDM_CH2_RX_QL	MPP( 38, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP38_AU_SPDIFRMLCLK	MPP( 38, 0x4, 0, 1, 1,   0,   0,   1,   1 )
+#define MPP38_TSMP2		MPP( 38, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP38_TDM_CH2_RX_QL	MPP( 38, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP38_AU_SPDIFRMLCLK	MPP( 38, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP38_LCD_D18		MPP( 38, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP39_GPIO		MPP( 39, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP39_TSMP3		MPP( 39, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP39_TDM_SPI_CS0	MPP( 39, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP39_AU_I2SBCLK	MPP( 39, 0x4, 0, 1, 1,   0,   0,   1,   1 )
+#define MPP39_TSMP3		MPP( 39, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP39_TDM_SPI_CS0	MPP( 39, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP39_AU_I2SBCLK	MPP( 39, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP39_LCD_D19		MPP( 39, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP40_GPIO		MPP( 40, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP40_TSMP4		MPP( 40, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP40_TDM_SPI_SCK	MPP( 40, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP40_AU_I2SDO		MPP( 40, 0x4, 0, 1, 1,   0,   0,   1,   1 )
+#define MPP40_TSMP4		MPP( 40, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP40_TDM_SPI_SCK	MPP( 40, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP40_AU_I2SDO		MPP( 40, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP40_LCD_D20		MPP( 40, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP41_GPIO		MPP( 41, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP41_TSMP5		MPP( 41, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP41_TDM_SPI_MISO	MPP( 41, 0x2, 1, 0, 0,   0,   0,   1,   1 )
-#define MPP41_AU_I2SLRCLK	MPP( 41, 0x4, 0, 1, 1,   0,   0,   1,   1 )
+#define MPP41_TSMP5		MPP( 41, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP41_TDM_SPI_MISO	MPP( 41, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP41_AU_I2SLRCLK	MPP( 41, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP41_LCD_D21		MPP( 41, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP42_GPIO		MPP( 42, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP42_TSMP6		MPP( 42, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP42_TDM_SPI_MOSI	MPP( 42, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP42_AU_I2SMCLK	MPP( 42, 0x4, 0, 1, 1,   0,   0,   1,   1 )
+#define MPP42_TSMP6		MPP( 42, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP42_TDM_SPI_MOSI	MPP( 42, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP42_AU_I2SMCLK	MPP( 42, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP42_LCD_D22		MPP( 42, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP43_GPIO		MPP( 43, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP43_TSMP7		MPP( 43, 0x1, 1, 1, 0,   0,   0,   1,   1 )
+#define MPP43_TSMP7		MPP( 43, 0x1, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP43_TDM_CODEC_INTn	MPP( 43, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-#define MPP43_AU_I2SDI		MPP( 43, 0x4, 1, 0, 1,   0,   0,   1,   1 )
+#define MPP43_AU_I2SDI		MPP( 43, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP43_LCD_D23		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP44_GPIO		MPP( 44, 0x0, 1, 1, 1,   0,   0,   1,   1 )
-#define MPP44_TSMP8		MPP( 44, 0x1, 1, 1, 0,   0,   0,   1,   1 )
+#define MPP44_TSMP8		MPP( 44, 0x1, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP44_TDM_CODEC_RSTn	MPP( 44, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-#define MPP44_AU_EXTCLK		MPP( 44, 0x4, 1, 0, 1,   0,   0,   1,   1 )
+#define MPP44_AU_EXTCLK		MPP( 44, 0x4, 0, 0, 1,   0,   0,   1,   1 )
 #define MPP44_LCD_CLK		MPP( 44, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP45_GPIO		MPP( 45, 0x0, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP45_TSMP9		MPP( 45, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP45_TDM_PCLK		MPP( 45, 0x2, 1, 1, 0,   0,   0,   1,   1 )
+#define MPP45_TSMP9		MPP( 45, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP45_TDM_PCLK		MPP( 45, 0x2, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP245_LCD_E		MPP( 45, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP46_GPIO		MPP( 46, 0x0, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP46_TSMP10		MPP( 46, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP46_TDM_FS		MPP( 46, 0x2, 1, 1, 0,   0,   0,   1,   1 )
+#define MPP46_TSMP10		MPP( 46, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP46_TDM_FS		MPP( 46, 0x2, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP46_LCD_HSYNC		MPP( 46, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP47_GPIO		MPP( 47, 0x0, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP47_TSMP11		MPP( 47, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP47_TDM_DRX		MPP( 47, 0x2, 1, 0, 0,   0,   0,   1,   1 )
+#define MPP47_TSMP11		MPP( 47, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP47_TDM_DRX		MPP( 47, 0x2, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP47_LCD_VSYNC		MPP( 47, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP48_GPIO		MPP( 48, 0x0, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP48_TSMP12		MPP( 48, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-#define MPP48_TDM_DTX		MPP( 48, 0x2, 0, 1, 0,   0,   0,   1,   1 )
+#define MPP48_TSMP12		MPP( 48, 0x1, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP48_TDM_DTX		MPP( 48, 0x2, 0, 0, 0,   0,   0,   1,   1 )
 #define MPP48_LCD_D16		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP49_GPIO		MPP( 49, 0x0, 1, 1, 0,   0,   0,   1,   0 )
 #define MPP49_GPO		MPP( 49, 0x0, 0, 1, 0,   0,   0,   0,   1 )
-#define MPP49_TSMP9		MPP( 49, 0x1, 1, 1, 0,   0,   0,   1,   0 )
-#define MPP49_TDM_CH0_RX_QL	MPP( 49, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-#define MPP49_PTP_CLK		MPP( 49, 0x5, 1, 0, 0,   0,   0,   1,   0 )
-#define MPP49_PEX0_CLKREQ	MPP( 49, 0xa, 0, 1, 0,   0,   0,   0,   1 )
+#define MPP49_TSMP9		MPP( 49, 0x1, 0, 0, 0,   0,   0,   1,   0 )
+#define MPP49_TDM_CH0_RX_QL	MPP( 49, 0x2, 0, 0, 0,   0,   0,   1,   1 )
+#define MPP49_PTP_CLK		MPP( 49, 0x5, 0, 0, 0,   0,   0,   1,   0 )
+#define MPP49_PEX0_CLKREQ	MPP( 49, 0xa, 0, 0, 0,   0,   0,   0,   1 )
 #define MPP49_LCD_D17		MPP( 49, 0xb, 0, 0, 0,   0,   0,   0,   1 )
 
 #define MPP_MAX			49
--- 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-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/mach-mmp/time.c
+++ linux-3.2.0/arch/arm/mach-mmp/time.c
@@ -25,7 +25,6 @@
 
 #include <linux/io.h>
 #include <linux/irq.h>
-#include <linux/sched.h>
 
 #include <asm/sched_clock.h>
 #include <mach/addr-map.h>
@@ -42,8 +41,6 @@
 #define MAX_DELTA		(0xfffffffe)
 #define MIN_DELTA		(16)
 
-static DEFINE_CLOCK_DATA(cd);
-
 /*
  * FIXME: the timer needs some delay to stablize the counter capture
  */
@@ -59,16 +56,9 @@
 	return __raw_readl(TIMERS_VIRT_BASE + TMR_CVWR(1));
 }
 
-unsigned long long notrace sched_clock(void)
+static u32 notrace mmp_read_sched_clock(void)
 {
-	u32 cyc = timer_read();
-	return cyc_to_sched_clock(&cd, cyc, (u32)~0);
-}
-
-static void notrace mmp_update_sched_clock(void)
-{
-	u32 cyc = timer_read();
-	update_sched_clock(&cd, cyc, (u32)~0);
+	return timer_read();
 }
 
 static irqreturn_t timer_interrupt(int irq, void *dev_id)
@@ -201,7 +191,7 @@
 {
 	timer_config();
 
-	init_sched_clock(&cd, mmp_update_sched_clock, 32, CLOCK_TICK_RATE);
+	setup_sched_clock(mmp_read_sched_clock, 32, CLOCK_TICK_RATE);
 
 	ckevt.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, ckevt.shift);
 	ckevt.max_delta_ns = clockevent_delta2ns(MAX_DELTA, &ckevt);
--- linux-3.2.0.orig/arch/arm/mach-mmp/include/mach/system.h
+++ linux-3.2.0/arch/arm/mach-mmp/include/mach/system.h
@@ -19,8 +19,8 @@
 static inline void arch_reset(char mode, const char *cmd)
 {
 	if (cpu_is_pxa168())
-		cpu_reset(0xffff0000);
+		soft_restart(0xffff0000);
 	else
-		cpu_reset(0);
+		soft_restart(0);
 }
 #endif /* __ASM_MACH_SYSTEM_H */
--- linux-3.2.0.orig/arch/m68k/include/asm/signal.h
+++ linux-3.2.0/arch/m68k/include/asm/signal.h
@@ -156,7 +156,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 +164,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 +180,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/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/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/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/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/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/microblaze/Kconfig
+++ linux-3.2.0/arch/microblaze/Kconfig
@@ -46,7 +46,7 @@
 	def_bool y
 
 config GENERIC_GPIO
-	def_bool y
+	bool
 
 config GENERIC_CSUM
 	def_bool y
--- linux-3.2.0.orig/arch/mn10300/Makefile
+++ linux-3.2.0/arch/mn10300/Makefile
@@ -26,7 +26,7 @@
 PROCESSOR	:= unset
 UNIT		:= unset
 
-KBUILD_CFLAGS	+= -mam33 -mmem-funcs -DCPU=AM33
+KBUILD_CFLAGS	+= -mam33 -DCPU=AM33 $(call cc-option,-mmem-funcs,)
 KBUILD_AFLAGS	+= -mam33 -DCPU=AM33
 
 ifeq ($(CONFIG_MN10300_CURRENT_IN_E2),y)
--- linux-3.2.0.orig/arch/s390/Kconfig
+++ linux-3.2.0/arch/s390/Kconfig
@@ -90,7 +90,6 @@
 	select HAVE_GET_USER_PAGES_FAST
 	select HAVE_ARCH_MUTEX_CPU_RELAX
 	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
-	select HAVE_RCU_TABLE_FREE if SMP
 	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
 	select ARCH_INLINE_SPIN_TRYLOCK
 	select ARCH_INLINE_SPIN_TRYLOCK_BH
@@ -230,6 +229,9 @@
 config SYSVIPC_COMPAT
 	def_bool y if COMPAT && SYSVIPC
 
+config KEYS_COMPAT
+	def_bool y if COMPAT && KEYS
+
 config AUDIT_ARCH
 	def_bool y
 
--- linux-3.2.0.orig/arch/s390/boot/compressed/vmlinux.lds.S
+++ linux-3.2.0/arch/s390/boot/compressed/vmlinux.lds.S
@@ -5,7 +5,7 @@
 OUTPUT_ARCH(s390:64-bit)
 #else
 OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390")
-OUTPUT_ARCH(s390)
+OUTPUT_ARCH(s390:31-bit)
 #endif
 
 ENTRY(startup)
--- linux-3.2.0.orig/arch/s390/include/asm/tlb.h
+++ linux-3.2.0/arch/s390/include/asm/tlb.h
@@ -30,14 +30,10 @@
 
 struct mmu_gather {
 	struct mm_struct *mm;
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	struct mmu_table_batch *batch;
-#endif
 	unsigned int fullmm;
-	unsigned int need_flush;
 };
 
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 struct mmu_table_batch {
 	struct rcu_head		rcu;
 	unsigned int		nr;
@@ -49,7 +45,6 @@
 
 extern void tlb_table_flush(struct mmu_gather *tlb);
 extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
-#endif
 
 static inline void tlb_gather_mmu(struct mmu_gather *tlb,
 				  struct mm_struct *mm,
@@ -57,29 +52,20 @@
 {
 	tlb->mm = mm;
 	tlb->fullmm = full_mm_flush;
-	tlb->need_flush = 0;
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	tlb->batch = NULL;
-#endif
 	if (tlb->fullmm)
 		__tlb_flush_mm(mm);
 }
 
 static inline void tlb_flush_mmu(struct mmu_gather *tlb)
 {
-	if (!tlb->need_flush)
-		return;
-	tlb->need_flush = 0;
-	__tlb_flush_mm(tlb->mm);
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	tlb_table_flush(tlb);
-#endif
 }
 
 static inline void tlb_finish_mmu(struct mmu_gather *tlb,
 				  unsigned long start, unsigned long end)
 {
-	tlb_flush_mmu(tlb);
+	tlb_table_flush(tlb);
 }
 
 /*
@@ -105,10 +91,8 @@
 static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
 				unsigned long address)
 {
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	if (!tlb->fullmm)
 		return page_table_free_rcu(tlb, (unsigned long *) pte);
-#endif
 	page_table_free(tlb->mm, (unsigned long *) pte);
 }
 
@@ -125,10 +109,8 @@
 #ifdef __s390x__
 	if (tlb->mm->context.asce_limit <= (1UL << 31))
 		return;
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	if (!tlb->fullmm)
 		return tlb_remove_table(tlb, pmd);
-#endif
 	crst_table_free(tlb->mm, (unsigned long *) pmd);
 #endif
 }
@@ -146,10 +128,8 @@
 #ifdef __s390x__
 	if (tlb->mm->context.asce_limit <= (1UL << 42))
 		return;
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 	if (!tlb->fullmm)
 		return tlb_remove_table(tlb, pud);
-#endif
 	crst_table_free(tlb->mm, (unsigned long *) pud);
 #endif
 }
--- linux-3.2.0.orig/arch/s390/include/asm/mmu_context.h
+++ linux-3.2.0/arch/s390/include/asm/mmu_context.h
@@ -12,7 +12,6 @@
 #include <asm/pgalloc.h>
 #include <asm/uaccess.h>
 #include <asm/tlbflush.h>
-#include <asm-generic/mm_hooks.h>
 
 static inline int init_new_context(struct task_struct *tsk,
 				   struct mm_struct *mm)
@@ -92,4 +91,17 @@
         switch_mm(prev, next, current);
 }
 
+static inline void arch_dup_mmap(struct mm_struct *oldmm,
+				 struct mm_struct *mm)
+{
+#ifdef CONFIG_64BIT
+	if (oldmm->context.asce_limit < mm->context.asce_limit)
+		crst_table_downgrade(mm, oldmm->context.asce_limit);
+#endif
+}
+
+static inline void arch_exit_mmap(struct mm_struct *mm)
+{
+}
+
 #endif /* __S390_MMU_CONTEXT_H */
--- linux-3.2.0.orig/arch/s390/include/asm/pgalloc.h
+++ linux-3.2.0/arch/s390/include/asm/pgalloc.h
@@ -22,10 +22,7 @@
 
 unsigned long *page_table_alloc(struct mm_struct *, unsigned long);
 void page_table_free(struct mm_struct *, unsigned long *);
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
 void page_table_free_rcu(struct mmu_gather *, unsigned long *);
-void __tlb_remove_table(void *_table);
-#endif
 
 static inline void clear_table(unsigned long *s, unsigned long val, size_t n)
 {
--- linux-3.2.0.orig/arch/s390/include/asm/processor.h
+++ linux-3.2.0/arch/s390/include/asm/processor.h
@@ -130,7 +130,9 @@
 	regs->psw.mask	= psw_user_bits | PSW_MASK_BA;			\
 	regs->psw.addr	= new_psw | PSW_ADDR_AMODE;			\
 	regs->gprs[15]	= new_stackp;					\
+	__tlb_flush_mm(current->mm);					\
 	crst_table_downgrade(current->mm, 1UL << 31);			\
+	update_mm(current->mm, current);				\
 } while (0)
 
 /* Forward declaration, a strange C thing */
--- linux-3.2.0.orig/arch/s390/include/asm/compat.h
+++ linux-3.2.0/arch/s390/include/asm/compat.h
@@ -20,7 +20,7 @@
 #define PSW32_MASK_CC		0x00003000UL
 #define PSW32_MASK_PM		0x00000f00UL
 
-#define PSW32_MASK_USER		0x00003F00UL
+#define PSW32_MASK_USER		0x0000FF00UL
 
 #define PSW32_ADDR_AMODE	0x80000000UL
 #define PSW32_ADDR_INSN		0x7FFFFFFFUL
@@ -172,13 +172,6 @@
 	return is_32bit_task();
 }
 
-#else
-
-static inline int is_compat_task(void)
-{
-	return 0;
-}
-
 #endif
 
 static inline void __user *arch_compat_alloc_user_space(long len)
--- linux-3.2.0.orig/arch/s390/include/asm/ptrace.h
+++ linux-3.2.0/arch/s390/include/asm/ptrace.h
@@ -240,7 +240,7 @@
 #define PSW_MASK_EA		0x00000000UL
 #define PSW_MASK_BA		0x00000000UL
 
-#define PSW_MASK_USER		0x00003F00UL
+#define PSW_MASK_USER		0x0000FF00UL
 
 #define PSW_ADDR_AMODE		0x80000000UL
 #define PSW_ADDR_INSN		0x7FFFFFFFUL
@@ -269,7 +269,7 @@
 #define PSW_MASK_EA		0x0000000100000000UL
 #define PSW_MASK_BA		0x0000000080000000UL
 
-#define PSW_MASK_USER		0x00003F0180000000UL
+#define PSW_MASK_USER		0x0000FF0180000000UL
 
 #define PSW_ADDR_AMODE		0x0000000000000000UL
 #define PSW_ADDR_INSN		0xFFFFFFFFFFFFFFFFUL
--- linux-3.2.0.orig/arch/s390/mm/gup.c
+++ linux-3.2.0/arch/s390/mm/gup.c
@@ -183,7 +183,7 @@
 	addr = start;
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
-	if (end < start)
+	if ((end < start) || (end > TASK_SIZE))
 		goto slow_irqon;
 
 	/*
--- linux-3.2.0.orig/arch/s390/mm/fault.c
+++ linux-3.2.0/arch/s390/mm/fault.c
@@ -36,7 +36,6 @@
 #include <asm/pgtable.h>
 #include <asm/irq.h>
 #include <asm/mmu_context.h>
-#include <asm/compat.h>
 #include "../kernel/entry.h"
 
 #ifndef CONFIG_64BIT
@@ -454,6 +453,7 @@
 	struct pt_regs regs;
 	int access, fault;
 
+	/* Emulate a uaccess fault from kernel mode. */
 	regs.psw.mask = psw_kernel_bits | PSW_MASK_DAT | PSW_MASK_MCHECK;
 	if (!irqs_disabled())
 		regs.psw.mask |= PSW_MASK_IO | PSW_MASK_EXT;
@@ -462,12 +462,12 @@
 	uaddr &= PAGE_MASK;
 	access = write ? VM_WRITE : VM_READ;
 	fault = do_exception(&regs, access, uaddr | 2);
-	if (unlikely(fault)) {
-		if (fault & VM_FAULT_OOM)
-			return -EFAULT;
-		else if (fault & VM_FAULT_SIGBUS)
-			do_sigbus(&regs, pgm_int_code, uaddr);
-	}
+	/*
+	 * Since the fault happened in kernel mode while performing a uaccess
+	 * all we need to do now is emulating a fixup in case "fault" is not
+	 * zero.
+	 * For the calling uaccess functions this results always in -EFAULT.
+	 */
 	return fault ? -EFAULT : 0;
 }
 
@@ -584,6 +584,7 @@
 			tsk->thread.pfault_wait = 0;
 			list_del(&tsk->thread.list);
 			wake_up_process(tsk);
+			put_task_struct(tsk);
 		} else {
 			/* Completion interrupt was faster than initial
 			 * interrupt. Set pfault_wait to -1 so the initial
@@ -598,14 +599,22 @@
 		put_task_struct(tsk);
 	} else {
 		/* signal bit not set -> a real page is missing. */
-		if (tsk->thread.pfault_wait == -1) {
+		if (tsk->thread.pfault_wait == 1) {
+			/* Already on the list with a reference: put to sleep */
+			set_task_state(tsk, TASK_UNINTERRUPTIBLE);
+			set_tsk_need_resched(tsk);
+		} else if (tsk->thread.pfault_wait == -1) {
 			/* Completion interrupt was faster than the initial
 			 * interrupt (pfault_wait == -1). Set pfault_wait
 			 * back to zero and exit. */
 			tsk->thread.pfault_wait = 0;
 		} else {
 			/* Initial interrupt arrived before completion
-			 * interrupt. Let the task sleep. */
+			 * interrupt. Let the task sleep.
+			 * An extra task reference is needed since a different
+			 * cpu may set the task state to TASK_RUNNING again
+			 * before the scheduler is reached. */
+			get_task_struct(tsk);
 			tsk->thread.pfault_wait = 1;
 			list_add(&tsk->thread.list, &pfault_list);
 			set_task_state(tsk, TASK_UNINTERRUPTIBLE);
@@ -630,6 +639,7 @@
 			list_del(&thread->list);
 			tsk = container_of(thread, struct task_struct, thread);
 			wake_up_process(tsk);
+			put_task_struct(tsk);
 		}
 		spin_unlock_irq(&pfault_lock);
 		break;
--- linux-3.2.0.orig/arch/s390/mm/pgtable.c
+++ linux-3.2.0/arch/s390/mm/pgtable.c
@@ -97,7 +97,6 @@
 		crst_table_free(mm, table);
 	if (mm->context.asce_limit < limit)
 		goto repeat;
-	update_mm(mm, current);
 	return 0;
 }
 
@@ -105,9 +104,6 @@
 {
 	pgd_t *pgd;
 
-	if (mm->context.asce_limit <= limit)
-		return;
-	__tlb_flush_mm(mm);
 	while (mm->context.asce_limit > limit) {
 		pgd = mm->pgd;
 		switch (pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) {
@@ -130,7 +126,6 @@
 		mm->task_size = mm->context.asce_limit;
 		crst_table_free(mm, (unsigned long *) pgd);
 	}
-	update_mm(mm, current);
 }
 #endif
 
@@ -687,8 +682,6 @@
 	}
 }
 
-#ifdef CONFIG_HAVE_RCU_TABLE_FREE
-
 static void __page_table_free_rcu(void *table, unsigned bit)
 {
 	struct page *page;
@@ -742,7 +735,66 @@
 		free_pages((unsigned long) table, ALLOC_ORDER);
 }
 
-#endif
+static void tlb_remove_table_smp_sync(void *arg)
+{
+	/* Simply deliver the interrupt */
+}
+
+static void tlb_remove_table_one(void *table)
+{
+	/*
+	 * This isn't an RCU grace period and hence the page-tables cannot be
+	 * assumed to be actually RCU-freed.
+	 *
+	 * It is however sufficient for software page-table walkers that rely
+	 * on IRQ disabling. See the comment near struct mmu_table_batch.
+	 */
+	smp_call_function(tlb_remove_table_smp_sync, NULL, 1);
+	__tlb_remove_table(table);
+}
+
+static void tlb_remove_table_rcu(struct rcu_head *head)
+{
+	struct mmu_table_batch *batch;
+	int i;
+
+	batch = container_of(head, struct mmu_table_batch, rcu);
+
+	for (i = 0; i < batch->nr; i++)
+		__tlb_remove_table(batch->tables[i]);
+
+	free_page((unsigned long)batch);
+}
+
+void tlb_table_flush(struct mmu_gather *tlb)
+{
+	struct mmu_table_batch **batch = &tlb->batch;
+
+	if (*batch) {
+		__tlb_flush_mm(tlb->mm);
+		call_rcu_sched(&(*batch)->rcu, tlb_remove_table_rcu);
+		*batch = NULL;
+	}
+}
+
+void tlb_remove_table(struct mmu_gather *tlb, void *table)
+{
+	struct mmu_table_batch **batch = &tlb->batch;
+
+	if (*batch == NULL) {
+		*batch = (struct mmu_table_batch *)
+			__get_free_page(GFP_NOWAIT | __GFP_NOWARN);
+		if (*batch == NULL) {
+			__tlb_flush_mm(tlb->mm);
+			tlb_remove_table_one(table);
+			return;
+		}
+		(*batch)->nr = 0;
+	}
+	(*batch)->tables[(*batch)->nr++] = table;
+	if ((*batch)->nr == MAX_TABLE_BATCH)
+		tlb_table_flush(tlb);
+}
 
 /*
  * switch on pgstes for its userspace process (for kvm)
--- linux-3.2.0.orig/arch/s390/mm/mmap.c
+++ linux-3.2.0/arch/s390/mm/mmap.c
@@ -29,8 +29,8 @@
 #include <linux/mman.h>
 #include <linux/module.h>
 #include <linux/random.h>
+#include <linux/compat.h>
 #include <asm/pgalloc.h>
-#include <asm/compat.h>
 
 static unsigned long stack_maxrandom_size(void)
 {
@@ -106,9 +106,15 @@
 
 int s390_mmap_check(unsigned long addr, unsigned long len)
 {
+	int rc;
+
 	if (!is_compat_task() &&
-	    len >= TASK_SIZE && TASK_SIZE < (1UL << 53))
-		return crst_table_upgrade(current->mm, 1UL << 53);
+	    len >= TASK_SIZE && TASK_SIZE < (1UL << 53)) {
+		rc = crst_table_upgrade(current->mm, 1UL << 53);
+		if (rc)
+			return rc;
+		update_mm(current->mm, current);
+	}
 	return 0;
 }
 
@@ -128,6 +134,7 @@
 		rc = crst_table_upgrade(mm, 1UL << 53);
 		if (rc)
 			return (unsigned long) rc;
+		update_mm(mm, current);
 		area = arch_get_unmapped_area(filp, addr, len, pgoff, flags);
 	}
 	return area;
@@ -150,6 +157,7 @@
 		rc = crst_table_upgrade(mm, 1UL << 53);
 		if (rc)
 			return (unsigned long) rc;
+		update_mm(mm, current);
 		area = arch_get_unmapped_area_topdown(filp, addr, len,
 						      pgoff, flags);
 	}
--- linux-3.2.0.orig/arch/s390/kernel/vmlinux.lds.S
+++ linux-3.2.0/arch/s390/kernel/vmlinux.lds.S
@@ -8,7 +8,7 @@
 
 #ifndef CONFIG_64BIT
 OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390")
-OUTPUT_ARCH(s390)
+OUTPUT_ARCH(s390:31-bit)
 ENTRY(_start)
 jiffies = jiffies_64 + 4;
 #else
--- linux-3.2.0.orig/arch/s390/kernel/setup.c
+++ linux-3.2.0/arch/s390/kernel/setup.c
@@ -45,6 +45,7 @@
 #include <linux/kexec.h>
 #include <linux/crash_dump.h>
 #include <linux/memory.h>
+#include <linux/compat.h>
 
 #include <asm/ipl.h>
 #include <asm/uaccess.h>
@@ -58,7 +59,6 @@
 #include <asm/ptrace.h>
 #include <asm/sections.h>
 #include <asm/ebcdic.h>
-#include <asm/compat.h>
 #include <asm/kvm_virtio.h>
 #include <asm/diag.h>
 
--- linux-3.2.0.orig/arch/s390/kernel/signal.c
+++ linux-3.2.0/arch/s390/kernel/signal.c
@@ -30,7 +30,6 @@
 #include <asm/ucontext.h>
 #include <asm/uaccess.h>
 #include <asm/lowcore.h>
-#include <asm/compat.h>
 #include "entry.h"
 
 #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
@@ -148,6 +147,10 @@
 	/* Use regs->psw.mask instead of psw_user_bits to preserve PER bit. */
 	regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) |
 		(user_sregs.regs.psw.mask & PSW_MASK_USER);
+	/* Check for invalid user address space control. */
+	if ((regs->psw.mask & PSW_MASK_ASC) >= (psw_kernel_bits & PSW_MASK_ASC))
+		regs->psw.mask = (psw_user_bits & PSW_MASK_ASC) |
+			(regs->psw.mask & ~PSW_MASK_ASC);
 	/* Check for invalid amode */
 	if (regs->psw.mask & PSW_MASK_EA)
 		regs->psw.mask |= PSW_MASK_BA;
@@ -294,7 +297,10 @@
 
 	/* Set up registers for signal handler */
 	regs->gprs[15] = (unsigned long) frame;
-	regs->psw.mask |= PSW_MASK_EA | PSW_MASK_BA;	/* 64 bit amode */
+	/* Force default amode and default user address space control. */
+	regs->psw.mask = PSW_MASK_EA | PSW_MASK_BA |
+		(psw_user_bits & PSW_MASK_ASC) |
+		(regs->psw.mask & ~PSW_MASK_ASC);
 	regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE;
 
 	regs->gprs[2] = map_signal(sig);
@@ -363,7 +369,10 @@
 
 	/* Set up registers for signal handler */
 	regs->gprs[15] = (unsigned long) frame;
-	regs->psw.mask |= PSW_MASK_EA | PSW_MASK_BA;	/* 64 bit amode */
+	/* Force default amode and default user address space control. */
+	regs->psw.mask = PSW_MASK_EA | PSW_MASK_BA |
+		(psw_user_bits & PSW_MASK_ASC) |
+		(regs->psw.mask & ~PSW_MASK_ASC);
 	regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE;
 
 	regs->gprs[2] = map_signal(sig);
--- linux-3.2.0.orig/arch/s390/kernel/compat_wrapper.S
+++ linux-3.2.0/arch/s390/kernel/compat_wrapper.S
@@ -1636,7 +1636,7 @@
 	llgfr	%r6,%r6			# unsigned long
 	llgf	%r0,164(%r15)		# unsigned long
 	stg	%r0,160(%r15)
-	jg	sys_process_vm_readv
+	jg	compat_sys_process_vm_readv
 
 ENTRY(compat_sys_process_vm_writev_wrapper)
 	lgfr	%r2,%r2			# compat_pid_t
@@ -1646,4 +1646,4 @@
 	llgfr	%r6,%r6			# unsigned long
 	llgf	%r0,164(%r15)		# unsigned long
 	stg	%r0,160(%r15)
-	jg	sys_process_vm_writev
+	jg	compat_sys_process_vm_writev
--- linux-3.2.0.orig/arch/s390/kernel/processor.c
+++ linux-3.2.0/arch/s390/kernel/processor.c
@@ -26,12 +26,14 @@
 void __cpuinit cpu_init(void)
 {
 	struct cpuid *id = &per_cpu(cpu_id, smp_processor_id());
+	struct s390_idle_data *idle = &__get_cpu_var(s390_idle);
 
 	get_cpu_id(id);
 	atomic_inc(&init_mm.mm_count);
 	current->active_mm = &init_mm;
 	BUG_ON(current->mm);
 	enter_lazy_tlb(&init_mm, current);
+	memset(idle, 0, sizeof(*idle));
 }
 
 /*
--- linux-3.2.0.orig/arch/s390/kernel/smp.c
+++ linux-3.2.0/arch/s390/kernel/smp.c
@@ -1020,14 +1020,11 @@
 	unsigned int cpu = (unsigned int)(long)hcpu;
 	struct cpu *c = &per_cpu(cpu_devices, cpu);
 	struct sys_device *s = &c->sysdev;
-	struct s390_idle_data *idle;
 	int err = 0;
 
 	switch (action) {
 	case CPU_ONLINE:
 	case CPU_ONLINE_FROZEN:
-		idle = &per_cpu(s390_idle, cpu);
-		memset(idle, 0, sizeof(struct s390_idle_data));
 		err = sysfs_create_group(&s->kobj, &cpu_online_attr_group);
 		break;
 	case CPU_DEAD:
--- linux-3.2.0.orig/arch/s390/kernel/compat_signal.c
+++ linux-3.2.0/arch/s390/kernel/compat_signal.c
@@ -312,6 +312,10 @@
 	regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) |
 		(__u64)(regs32.psw.mask & PSW32_MASK_USER) << 32 |
 		(__u64)(regs32.psw.addr & PSW32_ADDR_AMODE);
+	/* Check for invalid user address space control. */
+	if ((regs->psw.mask & PSW_MASK_ASC) >= (psw_kernel_bits & PSW_MASK_ASC))
+		regs->psw.mask = (psw_user_bits & PSW_MASK_ASC) |
+			(regs->psw.mask & ~PSW_MASK_ASC);
 	regs->psw.addr = (__u64)(regs32.psw.addr & PSW32_ADDR_INSN);
 	for (i = 0; i < NUM_GPRS; i++)
 		regs->gprs[i] = (__u64) regs32.gprs[i];
@@ -493,7 +497,10 @@
 
 	/* Set up registers for signal handler */
 	regs->gprs[15] = (__force __u64) frame;
-	regs->psw.mask |= PSW_MASK_BA;		/* force amode 31 */
+	/* Force 31 bit amode and default user address space control. */
+	regs->psw.mask = PSW_MASK_BA |
+		(psw_user_bits & PSW_MASK_ASC) |
+		(regs->psw.mask & ~PSW_MASK_ASC);
 	regs->psw.addr = (__force __u64) ka->sa.sa_handler;
 
 	regs->gprs[2] = map_signal(sig);
@@ -557,7 +564,10 @@
 
 	/* Set up registers for signal handler */
 	regs->gprs[15] = (__force __u64) frame;
-	regs->psw.mask |= PSW_MASK_BA;		/* force amode 31 */
+	/* Force 31 bit amode and default user address space control. */
+	regs->psw.mask = PSW_MASK_BA |
+		(psw_user_bits & PSW_MASK_ASC) |
+		(regs->psw.mask & ~PSW_MASK_ASC);
 	regs->psw.addr = (__u64) ka->sa.sa_handler;
 
 	regs->gprs[2] = map_signal(sig);
--- linux-3.2.0.orig/arch/s390/kernel/ptrace.c
+++ linux-3.2.0/arch/s390/kernel/ptrace.c
@@ -20,8 +20,8 @@
 #include <linux/regset.h>
 #include <linux/tracehook.h>
 #include <linux/seccomp.h>
+#include <linux/compat.h>
 #include <trace/syscall.h>
-#include <asm/compat.h>
 #include <asm/segment.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
--- linux-3.2.0.orig/arch/s390/kernel/time.c
+++ linux-3.2.0/arch/s390/kernel/time.c
@@ -113,11 +113,14 @@
 static int s390_next_ktime(ktime_t expires,
 			   struct clock_event_device *evt)
 {
+	struct timespec ts;
 	u64 nsecs;
 
-	nsecs = ktime_to_ns(ktime_sub(expires, ktime_get_monotonic_offset()));
+	ts.tv_sec = ts.tv_nsec = 0;
+	monotonic_to_bootbased(&ts);
+	nsecs = ktime_to_ns(ktime_add(timespec_to_ktime(ts), expires));
 	do_div(nsecs, 125);
-	S390_lowcore.clock_comparator = TOD_UNIX_EPOCH + (nsecs << 9);
+	S390_lowcore.clock_comparator = sched_clock_base_cc + (nsecs << 9);
 	set_clock_comparator(S390_lowcore.clock_comparator);
 	return 0;
 }
--- linux-3.2.0.orig/arch/s390/kernel/compat_linux.c
+++ linux-3.2.0/arch/s390/kernel/compat_linux.c
@@ -615,7 +615,6 @@
 		return -EFAULT;
 	if (a.offset & ~PAGE_MASK)
 		return -EINVAL;
-	a.addr = (unsigned long) compat_ptr(a.addr);
 	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
 			      a.offset >> PAGE_SHIFT);
 }
@@ -626,7 +625,6 @@
 
 	if (copy_from_user(&a, arg, sizeof(a)))
 		return -EFAULT;
-	a.addr = (unsigned long) compat_ptr(a.addr);
 	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
 }
 
--- linux-3.2.0.orig/arch/s390/kernel/process.c
+++ linux-3.2.0/arch/s390/kernel/process.c
@@ -29,7 +29,6 @@
 #include <asm/irq.h>
 #include <asm/timer.h>
 #include <asm/nmi.h>
-#include <asm/compat.h>
 #include <asm/smp.h>
 #include "entry.h"
 
--- linux-3.2.0.orig/arch/s390/kvm/intercept.c
+++ linux-3.2.0/arch/s390/kvm/intercept.c
@@ -133,13 +133,6 @@
 
 	vcpu->stat.exit_stop_request++;
 	spin_lock_bh(&vcpu->arch.local_int.lock);
-	if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) {
-		vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP;
-		rc = kvm_s390_vcpu_store_status(vcpu,
-						  KVM_S390_STORE_STATUS_NOADDR);
-		if (rc >= 0)
-			rc = -EOPNOTSUPP;
-	}
 
 	if (vcpu->arch.local_int.action_bits & ACTION_RELOADVCPU_ON_STOP) {
 		vcpu->arch.local_int.action_bits &= ~ACTION_RELOADVCPU_ON_STOP;
@@ -155,7 +148,18 @@
 		rc = -EOPNOTSUPP;
 	}
 
-	spin_unlock_bh(&vcpu->arch.local_int.lock);
+	if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) {
+		vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP;
+		/* store status must be called unlocked. Since local_int.lock
+		 * only protects local_int.* and not guest memory we can give
+		 * up the lock here */
+		spin_unlock_bh(&vcpu->arch.local_int.lock);
+		rc = kvm_s390_vcpu_store_status(vcpu,
+						KVM_S390_STORE_STATUS_NOADDR);
+		if (rc >= 0)
+			rc = -EOPNOTSUPP;
+	} else
+		spin_unlock_bh(&vcpu->arch.local_int.lock);
 	return rc;
 }
 
--- linux-3.2.0.orig/arch/s390/kvm/kvm-s390.c
+++ linux-3.2.0/arch/s390/kvm/kvm-s390.c
@@ -418,7 +418,7 @@
 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
 {
 	memcpy(&vcpu->arch.guest_fpregs.fprs, &fpu->fprs, sizeof(fpu->fprs));
-	vcpu->arch.guest_fpregs.fpc = fpu->fpc;
+	vcpu->arch.guest_fpregs.fpc = fpu->fpc & FPC_VALID_MASK;
 	restore_fp_regs(&vcpu->arch.guest_fpregs);
 	return 0;
 }
--- linux-3.2.0.orig/arch/score/kernel/entry.S
+++ linux-3.2.0/arch/score/kernel/entry.S
@@ -408,7 +408,7 @@
 	sw	r9, [r0, PT_EPC]
 
 	cmpi.c	r27, __NR_syscalls 	# check syscall number
-	bgtu	illegal_syscall
+	bgeu	illegal_syscall
 
 	slli	r8, r27, 2		# get syscall routine
 	la	r11, sys_call_table
--- 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"
@@ -2164,6 +2191,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/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/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/paravirt_types.h
+++ linux-3.2.0/arch/x86/include/asm/paravirt_types.h
@@ -125,6 +125,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
--- 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 <linux/ioport.h>
 #include <linux/pci.h>
 
 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/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/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/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/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/desc.h
+++ linux-3.2.0/arch/x86/include/asm/desc.h
@@ -6,6 +6,7 @@
 #include <asm/mmu.h>
 
 #include <linux/smp.h>
+#include <linux/mm_types.h>
 
 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/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/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/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/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/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/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/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);
--- 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/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/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/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 '&regs->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)(&regs->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/pgtable.h
+++ linux-3.2.0/arch/x86/include/asm/pgtable.h
@@ -146,8 +146,7 @@
 
 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 +414,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/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 <linux/audit.h>
 #include <linux/sched.h>
 #include <linux/err.h>
 
@@ -86,6 +87,12 @@
 	memcpy(&regs->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/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/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 <support@numascale.com>
+ *
+ */
+
+#ifndef _ASM_X86_NUMACHIP_NUMACHIP_CSR_H
+#define _ASM_X86_NUMACHIP_NUMACHIP_CSR_H
+
+#include <linux/numa.h>
+#include <linux/percpu.h>
+#include <linux/io.h>
+#include <linux/swab.h>
+#include <asm/types.h>
+#include <asm/processor.h>
+
+#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/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/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/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/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
@@ -731,6 +731,7 @@
 	 *
 	 * Call EFI services through wrapper functions.
 	 */
+	efi.runtime_version = efi_systab.fw_revision;
 	efi.get_time = virt_efi_get_time;
 	efi.set_time = virt_efi_set_time;
 	efi.get_wakeup_time = virt_efi_get_wakeup_time;
--- 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,36 +28,50 @@
 #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;
 	phys_addr_t base;
 
-	puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
-	tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
+	for (i = 0; i < nr_range; i++) {
+		unsigned long range, extra;
 
-	if (use_gbpages) {
-		unsigned long extra;
+		range = mr[i].end - mr[i].start;
+		puds += (range + PUD_SIZE - 1) >> PUD_SHIFT;
 
-		extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT);
-		pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT;
-	} else
-		pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
-
-	tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE);
+		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;
+		}
 
-	if (use_pse) {
-		unsigned long extra;
-
-		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);
 
 #ifdef CONFIG_X86_32
@@ -75,7 +89,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 +98,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 +269,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/tlb.c
+++ linux-3.2.0/arch/x86/mm/tlb.c
@@ -7,6 +7,7 @@
 #include <linux/module.h>
 #include <linux/cpu.h>
 
+#include <asm/desc.h>
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
 #include <asm/cache.h>
@@ -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/setup_nx.c
+++ linux-3.2.0/arch/x86/mm/setup_nx.c
@@ -1,3 +1,4 @@
+#include <linux/sched.h>
 #include <linux/spinlock.h>
 #include <linux/errno.h>
 #include <linux/init.h>
@@ -5,7 +6,11 @@
 #include <asm/pgtable.h>
 #include <asm/proto.h>
 
-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/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/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/kgdb.c
+++ linux-3.2.0/arch/x86/kernel/kgdb.c
@@ -43,6 +43,8 @@
 #include <linux/smp.h>
 #include <linux/nmi.h>
 #include <linux/hw_breakpoint.h>
+#include <linux/uaccess.h>
+#include <linux/memory.h>
 
 #include <asm/debugreg.h>
 #include <asm/apicdef.h>
@@ -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/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/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,38 @@
 			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"),
+		},
+	},
 	{ }
 };
 
--- linux-3.2.0.orig/arch/x86/kernel/setup.c
+++ linux-3.2.0/arch/x86/kernel/setup.c
@@ -937,8 +937,21 @@
 
 #ifdef CONFIG_X86_64
 	if (max_pfn > max_low_pfn) {
-		max_pfn_mapped = init_memory_mapping(1UL<<32,
-						     max_pfn<<PAGE_SHIFT);
+		int i;
+		for (i = 0; i < e820.nr_map; i++) {
+			struct e820entry *ei = &e820.map[i];
+
+			if (ei->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;
 	}
--- 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/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/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,16 @@
 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/paravirt.c
+++ linux-3.2.0/arch/x86/kernel/paravirt.c
@@ -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,
--- 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/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/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/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_BASE_SHIFT);
+
+	segn_busn_bits = (msr >> 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/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 <solar at openwall.com>. 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(&current->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(&current->mm->page_table_lock);
+		if (limit >= TASK_SIZE)
+			limit = -1UL;
+		current->mm->context.exec_limit = limit;
+	}
+	set_user_cs(&current->mm->context.user_cs, limit);
+
+	desc1 = &current->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)
@@ -263,6 +335,29 @@
 	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;
 
@@ -562,25 +657,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 +694,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 +716,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,19 +744,37 @@
 }
 
 #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, 32, 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(32, SIGSEGV, "iret exception", regs, error_code, &info);
+	}
 }
 #endif
 
--- 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 <linux/signal.h>
 #include <linux/perf_event.h>
 #include <linux/hw_breakpoint.h>
+#include <linux/module.h>
 
 #include <asm/uaccess.h>
 #include <asm/pgtable.h>
@@ -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 '&regs->sp'.
+ *
+ * Now, if the stack is empty, '&regs->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)&regs->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/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/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/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/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/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/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/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 <support@numascale.com>
+ *
+ */
+
+#include <linux/errno.h>
+#include <linux/threads.h>
+#include <linux/cpumask.h>
+#include <linux/string.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/ctype.h>
+#include <linux/init.h>
+#include <linux/hardirq.h>
+#include <linux/delay.h>
+
+#include <asm/numachip/numachip_csr.h>
+#include <asm/smp.h>
+#include <asm/apic.h>
+#include <asm/ipi.h>
+#include <asm/apic_flat_64.h>
+
+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/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/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/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_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/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/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/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/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/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.c
+++ linux-3.2.0/arch/x86/kernel/cpu/perf_event_intel.c
@@ -389,14 +389,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 +421,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,
 	},
  },
 };
--- 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/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/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/perf_event_amd.c
+++ linux-3.2.0/arch/x86/kernel/cpu/perf_event_amd.c
@@ -1,4 +1,5 @@
 #include <linux/perf_event.h>
+#include <linux/export.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/slab.h>
@@ -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/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/therm_throt.c
+++ linux-3.2.0/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -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,
+		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);
+					PACKAGE_LEVEL);
 		if (this_cpu_has(X86_FEATURE_PLN))
-			if (therm_throt_process(msr_val &
+			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);
 	}
 }
 
--- 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/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 <linux/moduleparam.h>
+#include <linux/pci_ids.h>
+#include <linux/hrtimer.h>
+#include <linux/string.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/ktime.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <asm/processor.h>
+#include <asm/e820.h>
+#include <asm/mce.h>
+#include <asm/io.h>
+
+#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/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_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/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/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/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/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/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/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/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 <linux/kvm_host.h>
 #include <linux/module.h>
@@ -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);
--- 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 <linux/kvm_host.h>
+#include <linux/module.h>
+#include <asm/user.h>
+#include <asm/xsave.h>
+#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/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/svm.c
+++ linux-3.2.0/arch/x86/kvm/svm.c
@@ -29,6 +29,7 @@
 #include <linux/ftrace_event.h>
 #include <linux/slab.h>
 
+#include <asm/perf_event.h>
 #include <asm/tlbflush.h>
 #include <asm/desc.h>
 #include <asm/kvm_para.h>
@@ -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/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 <linux/clocksource.h>
 #include <linux/interrupt.h>
@@ -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;
@@ -574,54 +573,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 +606,7 @@
 		kvm_mmu_reset_context(vcpu);
 
 	if ((cr4 ^ old_cr4) & X86_CR4_OSXSAVE)
-		update_cpuid(vcpu);
+		kvm_update_cpuid(vcpu);
 
 	return 0;
 }
@@ -2265,466 +2216,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 +3070,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 +4149,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 +4201,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 +4886,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 +5521,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 +5549,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 +5864,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;
--- linux-3.2.0.orig/arch/x86/xen/setup.c
+++ linux-3.2.0/arch/x86/xen/setup.c
@@ -10,12 +10,14 @@
 #include <linux/pm.h>
 #include <linux/memblock.h>
 #include <linux/cpuidle.h>
+#include <linux/cpufreq.h>
 
 #include <asm/elf.h>
 #include <asm/vdso.h>
 #include <asm/e820.h>
 #include <asm/setup.h>
 #include <asm/acpi.h>
+#include <asm/numa.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/xen/hypercall.h>
 
@@ -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/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);
 }
@@ -373,6 +388,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/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;
@@ -2361,7 +2385,7 @@
 	err = 0;
 out:
 
-	flush_tlb_all();
+	xen_flush_tlb_all();
 
 	return err;
 }
--- linux-3.2.0.orig/arch/x86/xen/enlighten.c
+++ linux-3.2.0/arch/x86/xen/enlighten.c
@@ -53,6 +53,9 @@
 #include <asm/processor.h>
 #include <asm/proto.h>
 #include <asm/msr-index.h>
+#ifdef CONFIG_NUMA
+#include <asm/numa.h>
+#endif
 #include <asm/traps.h>
 #include <asm/setup.h>
 #include <asm/desc.h>
@@ -62,6 +65,7 @@
 #include <asm/reboot.h>
 #include <asm/stackprotector.h>
 #include <asm/hypervisor.h>
+#include <asm/pci_x86.h>
 
 #include "xen-ops.h"
 #include "mmu.h"
@@ -197,6 +201,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 +224,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 +366,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 +748,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 +819,8 @@
 	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;
 }
 
 #endif
@@ -809,7 +872,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 +1050,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 +1076,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 +1286,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 +1365,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);
--- 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/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/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)
--- 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_BASE_SHIFT);
-
-	segn_busn_bits = (msr >> 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/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/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;
 
@@ -374,7 +378,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/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/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/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/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 <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <elf.h>
+#include <byteswap.h>
+#define USE_BSD
+#include <endian.h>
+#include <regex.h>
+
+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 = "<noname>";
+	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 = "<noname>";
+	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/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/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/ia64/include/asm/unistd.h
+++ linux-3.2.0/arch/ia64/include/asm/unistd.h
@@ -323,11 +323,12 @@
 #define __NR_sendmmsg			1331
 #define __NR_process_vm_readv		1332
 #define __NR_process_vm_writev		1333
+#define __NR_accept4			1334
 
 #ifdef __KERNEL__
 
 
-#define NR_syscalls			310 /* length of syscall table */
+#define NR_syscalls			311 /* length of syscall table */
 
 /*
  * The following defines stop scripts/checksyscalls.sh from complaining about
--- linux-3.2.0.orig/arch/ia64/include/asm/futex.h
+++ linux-3.2.0/arch/ia64/include/asm/futex.h
@@ -107,15 +107,16 @@
 		return -EFAULT;
 
 	{
-		register unsigned long r8 __asm ("r8") = 0;
+		register unsigned long r8 __asm ("r8");
 		unsigned long prev;
 		__asm__ __volatile__(
 			"	mf;;					\n"
-			"	mov ar.ccv=%3;;				\n"
-			"[1:]	cmpxchg4.acq %0=[%1],%2,ar.ccv		\n"
+			"	mov %0=r0				\n"
+			"	mov ar.ccv=%4;;				\n"
+			"[1:]	cmpxchg4.acq %1=[%2],%3,ar.ccv		\n"
 			"	.xdata4 \"__ex_table\", 1b-., 2f-.	\n"
 			"[2:]"
-			: "=r" (prev)
+			: "=r" (r8), "=r" (prev)
 			: "r" (uaddr), "r" (newval),
 			  "rO" ((long) (unsigned) oldval)
 			: "memory");
--- linux-3.2.0.orig/arch/ia64/include/asm/atomic.h
+++ linux-3.2.0/arch/ia64/include/asm/atomic.h
@@ -18,8 +18,8 @@
 #include <asm/system.h>
 
 
-#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/ia64/kernel/acpi.c
+++ linux-3.2.0/arch/ia64/kernel/acpi.c
@@ -429,22 +429,24 @@
 static struct acpi_table_slit __initdata *slit_table;
 cpumask_t early_cpu_possible_map = CPU_MASK_NONE;
 
-static int get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
+static int __init
+get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
 {
 	int pxm;
 
 	pxm = pa->proximity_domain_lo;
-	if (ia64_platform_is("sn2"))
+	if (ia64_platform_is("sn2") || acpi_srat_revision >= 2)
 		pxm += pa->proximity_domain_hi[0] << 8;
 	return pxm;
 }
 
-static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
+static int __init
+get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
 {
 	int pxm;
 
 	pxm = ma->proximity_domain;
-	if (!ia64_platform_is("sn2"))
+	if (!ia64_platform_is("sn2") && acpi_srat_revision <= 1)
 		pxm &= 0xff;
 
 	return pxm;
--- linux-3.2.0.orig/arch/ia64/kernel/entry.S
+++ linux-3.2.0/arch/ia64/kernel/entry.S
@@ -1779,6 +1779,7 @@
 	data8 sys_sendmmsg
 	data8 sys_process_vm_readv
 	data8 sys_process_vm_writev
+	data8 sys_accept4
 
 	.org sys_call_table + 8*NR_syscalls	// guard against failures to increase NR_syscalls
 #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
--- linux-3.2.0.orig/arch/ia64/kvm/kvm-ia64.c
+++ linux-3.2.0/arch/ia64/kvm/kvm-ia64.c
@@ -1169,6 +1169,11 @@
 
 #define PALE_RESET_ENTRY    0x80000000ffffffb0UL
 
+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
+{
+	return irqchip_in_kernel(vcpu->kcm) == (vcpu->arch.apic != NULL);
+}
+
 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
 {
 	struct kvm_vcpu *v;
--- linux-3.2.0.orig/block/blk-sysfs.c
+++ linux-3.2.0/block/blk-sysfs.c
@@ -425,7 +425,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 +447,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-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/genhd.c
+++ linux-3.2.0/block/genhd.c
@@ -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);
@@ -602,6 +603,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));
@@ -741,7 +744,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 +763,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 +1481,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 +1527,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 +1564,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 +1601,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 +1739,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 +1754,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 +1762,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/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.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/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-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/block/scsi_ioctl.c
+++ linux-3.2.0/block/scsi_ioctl.c
@@ -24,8 +24,12 @@
 #include <linux/capability.h>
 #include <linux/completion.h>
 #include <linux/cdrom.h>
+#include <linux/ratelimit.h>
 #include <linux/slab.h>
 #include <linux/times.h>
+#include <linux/fd.h>
+#include <linux/raid/md_u.h>
+#include <linux/mtio.h>
 #include <asm/uaccess.h>
 
 #include <scsi/scsi.h>
@@ -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/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/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/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/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/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 <asm-generic/$$F>" > $(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_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/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/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/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 <<EOF >> debian/control
--- 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/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/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/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 <libintl.h>
 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 (<MIN>) {
+	# 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/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/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);
@@ -2018,7 +2057,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 +2121,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 +2172,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 +2188,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 +2206,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 +2226,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 +2280,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 +2292,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 */
@@ -2519,7 +2565,7 @@
 		break;
 
 	default:
-		BUG();
+		return -EINVAL;
 	}
 
 	l = strlen(policy_modes[mode]);
--- 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/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)
--- 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);
@@ -1017,6 +1018,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 +1358,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
@@ -1969,7 +1970,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 +2064,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 +2094,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/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/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/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/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/madvise.c
+++ linux-3.2.0/mm/madvise.c
@@ -13,6 +13,7 @@
 #include <linux/hugetlb.h>
 #include <linux/sched.h>
 #include <linux/ksm.h>
+#include <linux/file.h>
 
 /*
  * 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(&current->mm->mmap_sem);
 	error = vmtruncate_range(mapping->host, offset, endoff);
+	fput(f);
 	down_read(&current->mm->mmap_sem);
 	return error;
 }
--- linux-3.2.0.orig/mm/mprotect.c
+++ linux-3.2.0/mm/mprotect.c
@@ -25,9 +25,14 @@
 #include <linux/perf_event.h>
 #include <asm/uaccess.h>
 #include <asm/pgtable.h>
+#include <asm/pgalloc.h>
 #include <asm/cacheflush.h>
 #include <asm/tlbflush.h>
 
+#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/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;
 }
 
 /*
@@ -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/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/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/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/mmu_notifier.c
+++ linux-3.2.0/mm/mmu_notifier.c
@@ -33,6 +33,24 @@
 void __mmu_notifier_release(struct mm_struct *mm)
 {
 	struct mmu_notifier *mn;
+	struct hlist_node *n;
+
+	/*
+	 * RCU here will block mmu_notifier_unregister until
+	 * ->release returns.
+	 */
+	rcu_read_lock();
+	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);
+	rcu_read_unlock();
 
 	spin_lock(&mm->mmu_notifier_mm->lock);
 	while (unlikely(!hlist_empty(&mm->mmu_notifier_mm->list))) {
@@ -46,23 +64,6 @@
 		 * 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);
 
@@ -284,16 +285,13 @@
 {
 	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.
 		 */
 		rcu_read_lock();
-		spin_unlock(&mm->mmu_notifier_mm->lock);
+
 		/*
 		 * exit_mmap will block in mmu_notifier_release to
 		 * guarantee ->release is called before freeing the
@@ -302,8 +300,11 @@
 		if (mn->ops->release)
 			mn->ops->release(mn, mm);
 		rcu_read_unlock();
-	} else
+
+		spin_lock(&mm->mmu_notifier_mm->lock);
+		hlist_del_rcu(&mn->hlist);
 		spin_unlock(&mm->mmu_notifier_mm->lock);
+	}
 
 	/*
 	 * Wait any running method to finish, of course including
--- 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);
 }
@@ -1068,13 +1100,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 +1359,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 +1448,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 +1962,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) {
@@ -2446,6 +2474,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/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/migrate.c
+++ linux-3.2.0/mm/migrate.c
@@ -220,6 +220,56 @@
 	pte_unmap_unlock(ptep, 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 +279,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 +310,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 +480,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 +504,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 +602,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 +619,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 +634,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 +655,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 +681,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 +690,7 @@
 	struct anon_vma *anon_vma = NULL;
 
 	if (!trylock_page(page)) {
-		if (!force || !sync)
+		if (!force || mode == MIGRATE_ASYNC)
 			goto out;
 
 		/*
@@ -677,10 +736,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 +812,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 +835,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 +854,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 +902,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 +916,7 @@
 	rc = -EAGAIN;
 
 	if (!trylock_page(hpage)) {
-		if (!force || !sync)
+		if (!force || mode != MIGRATE_SYNC)
 			goto out;
 		lock_page(hpage);
 	}
@@ -864,7 +927,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 +970,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 +991,7 @@
 
 			rc = unmap_and_move(get_new_page, private,
 						page, pass > 2, offlining,
-						sync);
+						mode);
 
 			switch(rc) {
 			case -ENOMEM:
@@ -958,7 +1021,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 +1038,7 @@
 
 			rc = unmap_and_move_huge_page(get_new_page,
 					private, page, pass > 2, offlining,
-					sync);
+					mode);
 
 			switch(rc) {
 			case -ENOMEM:
@@ -1104,7 +1167,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/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/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/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)
@@ -966,11 +1050,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 +1104,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 +1131,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);
 
@@ -2068,10 +2153,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 +2178,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 +2382,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 +2429,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 +2519,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;
@@ -2686,6 +2799,7 @@
 	 * so no worry about deadlock.
 	 */
 	page = pte_page(entry);
+	get_page(page);
 	if (page != pagecache_page)
 		lock_page(page);
 
@@ -2717,6 +2831,7 @@
 	}
 	if (page != pagecache_page)
 		unlock_page(page);
+	put_page(page);
 
 out_mutex:
 	mutex_unlock(&hugetlb_instantiation_mutex);
@@ -2843,9 +2958,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 +2975,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 +3004,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 +3039,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
@@ -1228,16 +1228,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 +1358,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
@@ -3203,10 +3214,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;
--- 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;
+			}
 		}
 
 		/*
@@ -4235,25 +4281,24 @@
 
 #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 +4306,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,7 +4400,7 @@
 		if (!size)
 			continue;
 
-		set_pageblock_order(pageblock_default_order());
+		set_pageblock_order();
 		setup_usemap(pgdat, zone, size);
 		ret = init_currently_empty_zone(zone, zone_start_pfn,
 						size, MEMMAP_EARLY);
@@ -5608,6 +5651,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/util.c
+++ linux-3.2.0/mm/util.c
@@ -11,6 +11,11 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/kmem.h>
 
+/* 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/rmap.c
+++ linux-3.2.0/mm/rmap.c
@@ -56,6 +56,7 @@
 #include <linux/mmu_notifier.h>
 #include <linux/migrate.h>
 #include <linux/hugetlb.h>
+#include <linux/backing-dev.h>
 
 #include <asm/tlbflush.h>
 
@@ -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/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/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/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/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/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:
--- 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,
 };
 
--- linux-3.2.0.orig/mm/mmap.c
+++ linux-3.2.0/mm/mmap.c
@@ -30,6 +30,7 @@
 #include <linux/perf_event.h>
 #include <linux/audit.h>
 #include <linux/khugepaged.h>
+#include <linux/random.h>
 
 #include <asm/uaccess.h>
 #include <asm/cacheflush.h>
@@ -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)
@@ -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/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/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/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/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;
@@ -2416,6 +2492,19 @@
 }
 #endif
 
+static bool zone_balanced(struct zone *zone, int order,
+			  unsigned long balance_gap, int classzone_idx)
+{
+	if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone) +
+				    balance_gap, classzone_idx, 0))
+		return false;
+
+	if (COMPACTION_BUILD && order && !compaction_suitable(zone, order))
+		return false;
+
+	return true;
+}
+
 /*
  * pgdat_balanced is used when checking if a node is balanced for high-order
  * allocations. Only zones that meet watermarks and are in a zone allowed
@@ -2475,8 +2564,7 @@
 			continue;
 		}
 
-		if (!zone_watermark_ok_safe(zone, order, high_wmark_pages(zone),
-							i, 0))
+		if (!zone_balanced(zone, order, 0, i))
 			all_zones_ok = false;
 		else
 			balanced += zone->present_pages;
@@ -2579,8 +2667,7 @@
 				shrink_active_list(SWAP_CLUSTER_MAX, zone,
 							&sc, priority, 0);
 
-			if (!zone_watermark_ok_safe(zone, order,
-					high_wmark_pages(zone), 0, 0)) {
+			if (!zone_balanced(zone, order, 0, 0)) {
 				end_zone = i;
 				break;
 			} else {
@@ -2641,9 +2728,8 @@
 				(zone->present_pages +
 					KSWAPD_ZONE_BALANCE_GAP_RATIO-1) /
 				KSWAPD_ZONE_BALANCE_GAP_RATIO);
-			if (!zone_watermark_ok_safe(zone, order,
-					high_wmark_pages(zone) + balance_gap,
-					end_zone, 0)) {
+			if (!zone_balanced(zone, order,
+					   balance_gap, end_zone)) {
 				shrink_zone(priority, zone, &sc);
 
 				reclaim_state->reclaimed_slab = 0;
@@ -2670,8 +2756,7 @@
 				continue;
 			}
 
-			if (!zone_watermark_ok_safe(zone, order,
-					high_wmark_pages(zone), end_zone, 0)) {
+			if (!zone_balanced(zone, order, 0, end_zone)) {
 				all_zones_ok = 0;
 				/*
 				 * We are still under min water mark.  This
@@ -2824,7 +2909,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 +3024,8 @@
 						&balanced_classzone_idx);
 		}
 	}
+
+	current->reclaim_state = NULL;
 	return 0;
 }
 
@@ -3090,14 +3180,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 +3446,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/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/seccomp.c
+++ linux-3.2.0/kernel/seccomp.c
@@ -3,15 +3,353 @@
  *
  * Copyright 2004-2005  Andrea Arcangeli <andrea@cpushare.com>
  *
- * This defines a simple but solid secure-computing mode.
+ * Copyright (C) 2012 Google, Inc.
+ * Will Drewry <wad@chromium.org>
+ *
+ * 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 <linux/seccomp.h>
-#include <linux/sched.h>
+#include <linux/atomic.h>
+#include <linux/audit.h>
 #include <linux/compat.h>
+#include <linux/filter.h>
+#include <linux/ptrace.h>
+#include <linux/sched.h>
+#include <linux/seccomp.h>
+#include <linux/security.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
+
+#ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
+#include <asm/syscall.h>
+#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/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/kexec.c
+++ linux-3.2.0/kernel/kexec.c
@@ -32,7 +32,6 @@
 #include <linux/console.h>
 #include <linux/vmalloc.h>
 #include <linux/swap.h>
-#include <linux/kmsg_dump.h>
 #include <linux/syscore_ops.h>
 
 #include <asm/page.h>
@@ -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/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)
 {
@@ -1610,6 +1610,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;
 	/*
@@ -2620,6 +2629,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);
--- 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/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/audit_tree.c
+++ linux-3.2.0/kernel/audit_tree.c
@@ -250,7 +250,6 @@
 		spin_unlock(&hash_lock);
 		spin_unlock(&entry->lock);
 		fsnotify_destroy_mark(entry);
-		fsnotify_put_mark(entry);
 		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;
 	}
 
@@ -293,7 +292,6 @@
 	spin_unlock(&hash_lock);
 	spin_unlock(&entry->lock);
 	fsnotify_destroy_mark(entry);
-	fsnotify_put_mark(entry);
 	goto out;
 
 Fallback:
@@ -322,7 +320,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,6 +330,7 @@
 		spin_unlock(&hash_lock);
 		chunk->dead = 1;
 		spin_unlock(&entry->lock);
+		fsnotify_get_mark(entry);
 		fsnotify_destroy_mark(entry);
 		fsnotify_put_mark(entry);
 		return 0;
@@ -396,7 +395,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,6 +411,7 @@
 		spin_unlock(&chunk_entry->lock);
 		spin_unlock(&old_entry->lock);
 
+		fsnotify_get_mark(chunk_entry);
 		fsnotify_destroy_mark(chunk_entry);
 
 		fsnotify_put_mark(chunk_entry);
@@ -445,7 +445,6 @@
 	spin_unlock(&old_entry->lock);
 	fsnotify_destroy_mark(old_entry);
 	fsnotify_put_mark(old_entry); /* pair to fsnotify_find mark_entry */
-	fsnotify_put_mark(old_entry); /* and kill it */
 	return 0;
 }
 
--- 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/sched_rt.c
+++ linux-3.2.0/kernel/sched_rt.c
@@ -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/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/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/fork.c
+++ linux-3.2.0/kernel/fork.c
@@ -34,6 +34,7 @@
 #include <linux/cgroup.h>
 #include <linux/security.h>
 #include <linux/hugetlb.h>
+#include <linux/seccomp.h>
 #include <linux/swap.h>
 #include <linux/syscalls.h>
 #include <linux/jiffies.h>
@@ -47,6 +48,7 @@
 #include <linux/audit.h>
 #include <linux/memcontrol.h>
 #include <linux/ftrace.h>
+#include <linux/proc_fs.h>
 #include <linux/profile.h>
 #include <linux/rmap.h>
 #include <linux/ksm.h>
@@ -66,6 +68,7 @@
 #include <linux/user-return-notifier.h>
 #include <linux/oom.h>
 #include <linux/khugepaged.h>
+#include <linux/signalfd.h>
 
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
@@ -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;
@@ -1089,6 +1100,7 @@
 		goto fork_out;
 
 	ftrace_graph_init_task(p);
+	get_seccomp_filter(p);
 
 	rt_mutex_init_task(p);
 
@@ -1384,6 +1396,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)
--- 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();
 
-	/*
-	 * 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;
-	}
+	if (need_loop)
+		write_seqcount_begin(&tsk->mems_allowed_seq);
 
-	/*
-	 * 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.
  *
--- linux-3.2.0.orig/kernel/cgroup.c
+++ linux-3.2.0/kernel/cgroup.c
@@ -1175,10 +1175,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 +1803,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;
 }
 
--- linux-3.2.0.orig/kernel/workqueue.c
+++ linux-3.2.0/kernel/workqueue.c
@@ -253,11 +253,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 <trace/events/workqueue.h>
@@ -1213,8 +1215,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 +1726,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 +1737,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
@@ -1862,7 +1876,9 @@
 
 	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);
@@ -2036,8 +2052,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 +2637,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 +3460,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 +3612,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 +3675,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 +3831,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 +3881,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/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/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,8 +457,7 @@
  * 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;
@@ -435,9 +477,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/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];
@@ -356,11 +357,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;
--- linux-3.2.0.orig/kernel/futex.c
+++ linux-3.2.0/kernel/futex.c
@@ -59,6 +59,7 @@
 #include <linux/magic.h>
 #include <linux/pid.h>
 #include <linux/nsproxy.h>
+#include <linux/ptrace.h>
 
 #include <asm/futex.h>
 
@@ -715,7 +716,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 +755,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 +773,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 +788,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 +843,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 +1081,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 +1097,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 +1109,7 @@
 		ret += op_ret;
 	}
 
+out_unlock:
 	double_unlock_hb(hb1, hb2);
 out_put_keys:
 	put_futex_key(&key2);
@@ -1383,9 +1399,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 +2250,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 +2291,9 @@
 	struct futex_q q = futex_q_init;
 	int res, ret;
 
+	if (uaddr == uaddr2)
+		return -EINVAL;
+
 	if (!bitset)
 		return -EINVAL;
 
@@ -2342,7 +2365,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 +2392,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 +2466,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 +2653,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 +2683,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/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().
@@ -3401,11 +3397,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 +3480,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 +3494,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 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;
+}
 
-static void calc_load_account_idle(struct rq *this_rq)
+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 +3687,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 +3709,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 +3731,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 +3751,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 +3770,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 +3777,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 +3852,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 +3883,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 +4355,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 +4378,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 +4407,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);
@@ -7430,11 +7622,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 +7794,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 +7826,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 +7833,7 @@
 		child->parent = sd;
 	}
 	sd->child = child;
+	set_domain_attribute(sd, attr);
 
 	return sd;
 }
@@ -7993,34 +8192,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 +8987,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 +9002,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/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/futex_compat.c
+++ linux-3.2.0/kernel/futex_compat.c
@@ -10,6 +10,7 @@
 #include <linux/compat.h>
 #include <linux/nsproxy.h>
 #include <linux/futex.h>
+#include <linux/ptrace.h>
 
 #include <asm/uaccess.h>
 
@@ -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/hrtimer.c
+++ linux-3.2.0/kernel/hrtimer.c
@@ -657,6 +657,14 @@
 	return 0;
 }
 
+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 ktime_get_update_offsets(offs_real, offs_boot);
+}
+
 /*
  * Retrigger next event is called after clock was set
  *
@@ -665,22 +673,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 +708,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; }
@@ -1250,11 +1260,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
@@ -1330,8 +1339,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 +1356,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 +1409,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();
 }
 
--- linux-3.2.0.orig/kernel/rcutree.c
+++ linux-3.2.0/kernel/rcutree.c
@@ -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);
 }
 
 /*
--- linux-3.2.0.orig/kernel/ptrace.c
+++ linux-3.2.0/kernel/ptrace.c
@@ -543,6 +543,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;
 }
 
--- linux-3.2.0.orig/kernel/printk.c
+++ linux-3.2.0/kernel/printk.c
@@ -701,6 +701,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)
 {
@@ -1733,6 +1736,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/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(&param_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, &param, &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/auditsc.c
+++ linux-3.2.0/kernel/auditsc.c
@@ -67,6 +67,7 @@
 #include <linux/syscalls.h>
 #include <linux/capability.h>
 #include <linux/fs_struct.h>
+#include <linux/compat.h>
 
 #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/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/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/pid_namespace.c
+++ linux-3.2.0/kernel/pid_namespace.c
@@ -15,6 +15,7 @@
 #include <linux/acct.h>
 #include <linux/slab.h>
 #include <linux/proc_fs.h>
+#include <linux/reboot.h>
 
 #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/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/sys.c
+++ linux-3.2.0/kernel/sys.c
@@ -365,6 +365,7 @@
 void kernel_restart(char *cmd)
 {
 	kernel_restart_prepare(cmd);
+	disable_nonboot_cpus();
 	if (!cmd)
 		printk(KERN_EMERG "Restarting system.\n");
 	else
@@ -444,6 +445,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 +1179,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 +1198,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 +1792,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 +1852,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/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/events/core.c
+++ linux-3.2.0/kernel/events/core.c
@@ -3011,12 +3011,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 +3051,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)
@@ -3304,7 +3310,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 +3324,7 @@
 		return ERR_PTR(-EBADF);
 	}
 
-	return file->private_data;
+	return file;
 }
 
 static int perf_event_set_output(struct perf_event *event,
@@ -3350,19 +3356,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;
 	}
@@ -5912,6 +5920,7 @@
 
 	mutex_init(&event->mmap_mutex);
 
+	atomic_long_set(&event->refcount, 1);
 	event->cpu		= cpu;
 	event->attr		= *attr;
 	event->group_leader	= group_leader;
@@ -6182,12 +6191,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 +6331,6 @@
 		put_ctx(gctx);
 	}
 
-	event->filp = event_file;
 	WARN_ON_ONCE(ctx->parent_ctx);
 	mutex_lock(&ctx->mutex);
 
@@ -6412,7 +6420,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 +6468,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 +6544,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 +6613,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 +6693,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 +6740,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);
--- linux-3.2.0.orig/kernel/trace/ftrace.c
+++ linux-3.2.0/kernel/trace/ftrace.c
@@ -948,7 +948,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 +1519,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 +1527,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 +1553,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 +1567,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 +1623,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 +1691,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 +1743,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 +1765,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)
@@ -2919,7 +2918,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 +3106,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);
 	}
--- 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.c
+++ linux-3.2.0/kernel/trace/trace.c
@@ -1642,6 +1642,7 @@
 	int cpu_file = iter->cpu_file;
 	u64 next_ts = 0, ts;
 	int next_cpu = -1;
+	int next_size = 0;
 	int cpu;
 
 	/*
@@ -1673,9 +1674,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 +2541,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);
@@ -3452,6 +3458,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 +3530,7 @@
 
 	ret = splice_to_pipe(pipe, &spd);
 out:
-	splice_shrink_spd(pipe, &spd);
+	splice_shrink_spd(&spd);
 	return ret;
 
 out_err:
@@ -4013,6 +4020,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 +4108,7 @@
 	}
 
 	ret = splice_to_pipe(pipe, &spd);
-	splice_shrink_spd(pipe, &spd);
+	splice_shrink_spd(&spd);
 out:
 	return ret;
 }
--- 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/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/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/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/manage.c
+++ linux-3.2.0/kernel/irq/manage.c
@@ -773,7 +773,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
@@ -985,6 +985,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 +998,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 +1059,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/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/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/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/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 <linux/export.h>
 #include <linux/suspend.h>
 #include <linux/syscore_ops.h>
+#include <linux/ftrace.h>
 #include <trace/events/power.h>
 
 #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/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/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 <pavel@ucw.cz>
  * Copyright (C) 2006 Rafael J. Wysocki <rjw@sisk.pl>
- * Copyright (C) 2010 Bojan Smojver <bojan@rexursive.com>
+ * Copyright (C) 2010-2012 Bojan Smojver <bojan@rexursive.com>
  *
  * 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/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/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/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
--- 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/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/ipc/shm.c
+++ linux-3.2.0/ipc/shm.c
@@ -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/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;
 
@@ -1012,7 +1039,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 +1083,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/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/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/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/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 <linux/sysctl.h>
@@ -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);
 
@@ -1275,18 +1428,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 +1478,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 +1510,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 +1529,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 +1613,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 +1654,7 @@
 			error = ep_insert(ep, &epds, tfile, fd);
 		} else
 			error = -EEXIST;
+		clear_tfile_check_list();
 		break;
 	case EPOLL_CTL_DEL:
 		if (epi)
@@ -1455,7 +1673,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/fifo.c
+++ linux-3.2.0/fs/fifo.c
@@ -14,7 +14,7 @@
 #include <linux/sched.h>
 #include <linux/pipe_fs_i.h>
 
-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/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/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
@@ -1678,3 +1679,7 @@
 	return false;
 }
 EXPORT_SYMBOL(inode_owner_or_capable);
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/vfs.h>
+
--- 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/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/fs-writeback.c
+++ linux-3.2.0/fs/fs-writeback.c
@@ -27,6 +27,7 @@
 #include <linux/backing-dev.h>
 #include <linux/buffer_head.h>
 #include <linux/tracepoint.h>
+#include <trace/events/vfs.h>
 #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 <trace/events/writeback.h>
-
-/*
  * 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 <trace/events/writeback.h>
+
 /* 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/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);
@@ -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/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/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/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/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/block_dev.c
+++ linux-3.2.0/fs/block_dev.c
@@ -68,7 +68,7 @@
 	spin_unlock(&dst->wb.list_lock);
 }
 
-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);
@@ -139,7 +139,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 +161,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) {
@@ -1159,8 +1159,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 +1194,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/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/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/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
+ *
+ * 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.
  *
- * If flags contains DCACHE_REFERENCED reference dentries will not be pruned.
+ * 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,13 @@
  *
  * 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);
 }
 EXPORT_SYMBOL(shrink_dcache_parent);
 
@@ -2371,6 +2361,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 +2371,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);
@@ -2935,6 +2926,8 @@
 	return;
 
 rename_retry:
+	if (locked)
+		goto again;
 	locked = 1;
 	write_seqlock(&rename_lock);
 	goto again;
--- 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/open.c
+++ linux-3.2.0/fs/open.c
@@ -33,6 +33,9 @@
 
 #include "internal.h"
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/fs.h>
+
 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/signalfd.c
+++ linux-3.2.0/fs/signalfd.c
@@ -30,6 +30,21 @@
 #include <linux/signalfd.h>
 #include <linux/syscalls.h>
 
+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/compat.c
+++ linux-3.2.0/fs/compat.c
@@ -1174,11 +1174,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 +1236,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/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/exec.c
+++ linux-3.2.0/fs/exec.c
@@ -56,6 +56,8 @@
 #include <linux/oom.h>
 #include <linux/compat.h>
 
+#include <trace/events/fs.h>
+
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
 #include <asm/tlb.h>
@@ -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,7 @@
 	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);
 	flush_thread();
 	current->personality &= ~bprm->per_clear;
 
@@ -1198,9 +1205,24 @@
 		mutex_unlock(&current->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
  */
@@ -1238,6 +1260,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 +1310,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 +1396,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 +1423,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/splice.c
+++ linux-3.2.0/fs/splice.c
@@ -31,6 +31,7 @@
 #include <linux/uio.h>
 #include <linux/security.h>
 #include <linux/gfp.h>
+#include <linux/socket.h>
 
 /*
  * 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,9 @@
 	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)
+		more |= MSG_SENDPAGE_NOTLAST;
 	return file->f_op->sendpage(file, buf->page, buf->offset,
 				    sd->len, &pos, more);
 }
@@ -1085,8 +1092,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 +1116,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 +1143,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 +1309,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 +1623,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 +1639,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/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/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/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/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/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/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/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/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/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/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/ubifs/ubifs.h
+++ linux-3.2.0/fs/ubifs/ubifs.h
@@ -1187,6 +1187,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 +1418,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/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/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/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/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/partitions/check.c
+++ linux-3.2.0/fs/partitions/check.c
@@ -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/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/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/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/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/cifs/readdir.c
+++ linux-3.2.0/fs/cifs/readdir.c
@@ -86,9 +86,12 @@
 
 	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);
 	}
@@ -219,6 +222,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 +274,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 +510,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 +570,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/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 {
--- 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/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/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/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/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 "
@@ -703,7 +703,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 +1116,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/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/file.c
+++ linux-3.2.0/fs/cifs/file.c
@@ -380,7 +380,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 +505,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 +835,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 +882,7 @@
 	if (!buf) {
 		mutex_unlock(&cinode->lock_mutex);
 		FreeXid(xid);
-		return rc;
+		return -ENOMEM;
 	}
 
 	for (i = 0; i < 2; i++) {
@@ -920,16 +928,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 +958,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 +1024,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 +1534,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 +1558,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 +1584,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/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/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/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/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/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/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/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/nfs4proc.c
+++ linux-3.2.0/fs/nfsd/nfs4proc.c
@@ -231,17 +231,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);
@@ -827,6 +827,7 @@
 	      struct nfsd4_setattr *setattr)
 {
 	__be32 status = nfs_ok;
+	int err;
 
 	if (setattr->sa_iattr.ia_valid & ATTR_SIZE) {
 		nfs4_lock_state();
@@ -838,9 +839,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,
--- linux-3.2.0.orig/fs/nfsd/vfs.c
+++ linux-3.2.0/fs/nfsd/vfs.c
@@ -1439,7 +1439,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
--- linux-3.2.0.orig/fs/nfsd/nfs4state.c
+++ linux-3.2.0/fs/nfsd/nfs4state.c
@@ -3673,6 +3673,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 +3810,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 +4081,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 +4102,6 @@
 	struct inode *inode;
 	struct file_lock file_lock;
 	struct nfs4_lockowner *lo;
-	int error;
 	__be32 status;
 
 	if (locks_in_grace())
@@ -4136,12 +4147,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/nfs4xdr.c
+++ linux-3.2.0/fs/nfsd/nfs4xdr.c
@@ -2236,7 +2236,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)
@@ -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/btrfs/tree-log.c
+++ linux-3.2.0/fs/btrfs/tree-log.c
@@ -692,6 +692,8 @@
 	kfree(name);
 
 	iput(inode);
+
+	btrfs_run_delayed_items(trans, root);
 	return ret;
 }
 
@@ -897,6 +899,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 +1480,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/super.c
+++ linux-3.2.0/fs/btrfs/super.c
@@ -40,7 +40,6 @@
 #include <linux/magic.h>
 #include <linux/slab.h>
 #include <linux/cleancache.h>
-#include <linux/mnt_namespace.h>
 #include <linux/ratelimit.h>
 #include "compat.h"
 #include "delayed-inode.h"
--- 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/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/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/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;
--- 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/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/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/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/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/isofs/export.c
+++ linux-3.2.0/fs/isofs/export.c
@@ -179,7 +179,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/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/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/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/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);
 	}
 
--- 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/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/pstore/platform.c
+++ linux-3.2.0/fs/pstore/platform.c
@@ -68,9 +68,25 @@
 /* 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";
+	}
+}
 
 /*
  * callback from kmsg_dump. (s2,l2) has the most recently
@@ -85,17 +101,15 @@
 	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";
+	why = get_reason_str(reason);
 
 	if (in_nmi()) {
 		is_locked = spin_trylock(&psinfo->buf_lock);
--- 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/root.c
+++ linux-3.2.0/fs/proc/root.c
@@ -18,6 +18,7 @@
 #include <linux/bitops.h>
 #include <linux/mount.h>
 #include <linux/pid_namespace.h>
+#include <linux/parser.h>
 
 #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/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/inode.c
+++ linux-3.2.0/fs/proc/inode.c
@@ -7,6 +7,7 @@
 #include <linux/time.h>
 #include <linux/proc_fs.h>
 #include <linux/kernel.h>
+#include <linux/pid_namespace.h>
 #include <linux/mm.h>
 #include <linux/string.h>
 #include <linux/stat.h>
@@ -17,7 +18,9 @@
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/sysctl.h>
+#include <linux/seq_file.h>
 #include <linux/slab.h>
+#include <linux/mount.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
@@ -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)
--- 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/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/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/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/version_signature.c
+++ linux-3.2.0/fs/proc/version_signature.c
@@ -0,0 +1,31 @@
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include <linux/utsname.h>
+
+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/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);
@@ -1111,10 +1127,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/udf/super.c
+++ linux-3.2.0/fs/udf/super.c
@@ -56,6 +56,7 @@
 #include <linux/seq_file.h>
 #include <linux/bitmap.h>
 #include <linux/crc-itu-t.h>
+#include <linux/log2.h>
 #include <asm/byteorder.h>
 
 #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/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/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/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/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/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/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/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/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/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/super.c
+++ linux-3.2.0/fs/ecryptfs/super.c
@@ -30,6 +30,8 @@
 #include <linux/seq_file.h>
 #include <linux/file.h>
 #include <linux/crypto.h>
+#include <linux/statfs.h>
+#include <linux/magic.h>
 #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/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/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/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 <linux/fs.h>
+#include <linux/slab.h>
+#include <linux/namei.h>
+#include <linux/file.h>
+#include <linux/xattr.h>
+#include <linux/rbtree.h>
+#include <linux/security.h>
+#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/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/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 <linux/fs.h>
+#include <linux/slab.h>
+#include <linux/xattr.h>
+#include <linux/device_cgroup.h>
+#include <linux/security.h>
+#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/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/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 <linux/fs.h>
+#include <linux/namei.h>
+#include <linux/xattr.h>
+#include <linux/security.h>
+#include <linux/mount.h>
+#include <linux/slab.h>
+#include <linux/parser.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include "overlayfs.h"
+
+MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
+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/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 <linux/fs.h>
+#include <linux/namei.h>
+#include <linux/xattr.h>
+#include <linux/security.h>
+#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/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 <linux/fs.h>
+#include <linux/slab.h>
+#include <linux/file.h>
+#include <linux/splice.h>
+#include <linux/xattr.h>
+#include <linux/security.h>
+#include <linux/uaccess.h>
+#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/jbd2/commit.c
+++ linux-3.2.0/fs/jbd2/commit.c
@@ -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)
--- linux-3.2.0.orig/fs/jbd2/transaction.c
+++ linux-3.2.0/fs/jbd2/transaction.c
@@ -1948,6 +1948,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/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/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/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/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/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/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);
 
--- 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/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,68 @@
 	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, 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 +3664,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 +3734,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 +4150,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 +4167,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 +4315,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 +4324,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 +4469,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 +4489,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 +4569,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 +4617,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 +4679,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 +4937,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 +4957,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;
 }
@@ -5697,11 +5779,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 +5842,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 +5863,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);
@@ -5936,21 +6073,22 @@
 		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)
@@ -6053,11 +6191,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.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/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);
--- linux-3.2.0.orig/fs/nfs/callback_xdr.c
+++ linux-3.2.0/fs/nfs/callback_xdr.c
@@ -9,6 +9,8 @@
 #include <linux/sunrpc/svc.h>
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
+#include <linux/ratelimit.h>
+#include <linux/printk.h>
 #include <linux/slab.h>
 #include <linux/sunrpc/bc_xprt.h>
 #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/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/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/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);
@@ -1737,7 +1765,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/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/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/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/super.c
+++ linux-3.2.0/fs/nfs/super.c
@@ -41,7 +41,6 @@
 #include <linux/lockd/bind.h>
 #include <linux/seq_file.h>
 #include <linux/mount.h>
-#include <linux/mnt_namespace.h>
 #include <linux/namei.h>
 #include <linux/nfs_idmap.h>
 #include <linux/vfs.h>
@@ -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.
  *
@@ -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/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/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/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/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/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/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,7 +566,8 @@
 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,
 
 	.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/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/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.c
+++ linux-3.2.0/fs/nfs/blocklayout/blocklayout.c
@@ -38,6 +38,8 @@
 #include <linux/buffer_head.h>	/* various write calls */
 #include <linux/prefetch.h>
 
+#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);
 
--- linux-3.2.0.orig/fs/jbd/recovery.c
+++ linux-3.2.0/fs/jbd/recovery.c
@@ -20,6 +20,7 @@
 #include <linux/fs.h>
 #include <linux/jbd.h>
 #include <linux/errno.h>
+#include <linux/blkdev.h>
 #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/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/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/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/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/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/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/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/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/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/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/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/notify/group.c
+++ linux-3.2.0/fs/notify/group.c
@@ -22,6 +22,7 @@
 #include <linux/srcu.h>
 #include <linux/rculist.h>
 #include <linux/wait.h>
+#include <linux/module.h>
 
 #include <linux/fsnotify_backend.h>
 #include "fsnotify.h"
@@ -70,6 +71,7 @@
 	if (atomic_dec_and_test(&group->refcnt))
 		fsnotify_destroy_group(group);
 }
+EXPORT_SYMBOL(fsnotify_put_group);
 
 /*
  * Create a new fsnotify_group and hold a reference for the group returned.
@@ -102,3 +104,4 @@
 
 	return group;
 }
+EXPORT_SYMBOL(fsnotify_alloc_group);
--- linux-3.2.0.orig/fs/notify/mark.c
+++ linux-3.2.0/fs/notify/mark.c
@@ -112,6 +112,7 @@
 	if (atomic_dec_and_test(&mark->refcnt))
 		mark->free_mark(mark);
 }
+EXPORT_SYMBOL(fsnotify_put_mark);
 
 /*
  * Any time a mark is getting freed we end up here.
@@ -135,9 +136,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) {
@@ -182,6 +180,11 @@
 		iput(inode);
 
 	/*
+	 * We don't necessarily have a ref on mark from caller so the above iput
+	 * may have already destroyed it.  Don't touch from now on.
+	 */
+
+	/*
 	 * 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.
@@ -189,6 +192,7 @@
 	if (unlikely(atomic_dec_and_test(&group->num_marks)))
 		fsnotify_final_destroy_group(group);
 }
+EXPORT_SYMBOL(fsnotify_destroy_mark);
 
 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
 {
@@ -276,6 +280,7 @@
 
 	return ret;
 }
+EXPORT_SYMBOL(fsnotify_add_mark);
 
 /*
  * clear any marks in a group in which mark->flags & flags is true
@@ -331,6 +336,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/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/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/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/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;
@@ -557,7 +557,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;
--- linux-3.2.0.orig/fs/ext4/bitmap.c
+++ linux-3.2.0/fs/ext4/bitmap.c
@@ -11,21 +11,15 @@
 #include <linux/jbd2.h>
 #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/extents.c
+++ linux-3.2.0/fs/ext4/extents.c
@@ -301,6 +301,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);
 }
 
@@ -2050,10 +2052,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;
@@ -2717,6 +2715,9 @@
 #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 */
+
 /*
  * ext4_split_extent_at() splits an extent at given block.
  *
@@ -2752,6 +2753,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 +2814,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;
@@ -2863,12 +2874,13 @@
 	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)
@@ -2881,8 +2893,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)
@@ -3160,26 +3172,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 +3514,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);
--- 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);
 		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;
--- linux-3.2.0.orig/fs/ext4/inode.c
+++ linux-3.2.0/fs/ext4/inode.c
@@ -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;
@@ -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);
@@ -2363,6 +2382,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 +2400,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 +2502,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();
 		}
 	}
@@ -2793,9 +2816,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 +2939,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 +3107,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();
+	}
 }
 
 
@@ -3977,6 +4007,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 +4056,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 +4112,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);
--- 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/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;
@@ -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/namei.c
+++ linux-3.2.0/fs/ext4/namei.c
@@ -1037,6 +1037,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 +1801,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/mballoc.c
+++ linux-3.2.0/fs/ext4/mballoc.c
@@ -2567,6 +2567,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 +2617,6 @@
 	}
 
 	free_percpu(sbi->s_locality_groups);
-	if (sbi->s_proc)
-		remove_proc_entry("mb_groups", sbi->s_proc);
 
 	return 0;
 }
@@ -4693,6 +4694,7 @@
 		 */
 		new_entry = kmem_cache_alloc(ext4_free_ext_cachep, GFP_NOFS);
 		if (!new_entry) {
+			ext4_mb_unload_buddy(&e4b);
 			err = -ENOMEM;
 			goto error_return;
 		}
--- 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);
 	}
 
 	/*
@@ -2006,17 +2008,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) +
@@ -2505,18 +2506,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 +2563,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 +2578,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 +3084,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);
@@ -3711,6 +3808,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 +3853,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) {
@@ -4583,67 +4693,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/ialloc.c
+++ linux-3.2.0/fs/ext4/ialloc.c
@@ -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/resize.c
+++ linux-3.2.0/fs/ext4/resize.c
@@ -952,6 +952,11 @@
 			   &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;
--- linux-3.2.0.orig/fs/ext4/page-io.c
+++ linux-3.2.0/fs/ext4/page-io.c
@@ -111,6 +111,8 @@
 	if (io->iocb)
 		aio_complete(io->iocb, io->result, 0);
 
+	if (io->flag & EXT4_IO_END_DIRECT)
+		inode_dio_done(inode);
 	/* 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));
@@ -128,12 +130,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 +154,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/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_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/xfs/xfs_buf.c
+++ linux-3.2.0/fs/xfs/xfs_buf.c
@@ -1167,9 +1167,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 +1250,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_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_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_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_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/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/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 */
@@ -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;
--- 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/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/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/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/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/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/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/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/initramfs.c
+++ linux-3.2.0/init/initramfs.c
@@ -8,6 +8,8 @@
 #include <linux/dirent.h>
 #include <linux/syscalls.h>
 #include <linux/utime.h>
+#include <linux/async.h>
+#include <linux/export.h>
 
 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/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();
 
 	/*
@@ -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/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 <linux/kdev_t.h>
 #include <linux/syscalls.h>
 
+LIST_HEAD(populate_rootfs_domain);
+
 /*
  * Create a simple rootfs that is similar to the default initramfs
  */
--- 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/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/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)
 {
--- 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);
 }
@@ -2472,7 +2472,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 +2645,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/netrom/af_netrom.c
+++ linux-3.2.0/net/netrom/af_netrom.c
@@ -1170,7 +1170,12 @@
 		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) {
 		sax->sax25_family = AF_NETROM;
--- linux-3.2.0.orig/net/8021q/vlan_core.c
+++ linux-3.2.0/net/8021q/vlan_core.c
@@ -5,7 +5,7 @@
 #include <linux/export.h>
 #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
@@ -156,7 +156,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);
 
--- 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/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/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_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/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_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/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/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/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_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/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_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/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/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_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_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/packet/af_packet.c
+++ linux-3.2.0/net/packet/af_packet.c
@@ -1281,6 +1281,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 +1341,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 +1940,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);
--- 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/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/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/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/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/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_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:
--- 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_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/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_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/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/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/llc/af_llc.c
+++ linux-3.2.0/net/llc/af_llc.c
@@ -966,14 +966,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/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/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/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/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/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.
--- 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/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/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/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/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, &ethertype, 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/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)
@@ -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/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/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/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/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/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/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/unix/af_unix.c
+++ linux-3.2.0/net/unix/af_unix.c
@@ -847,7 +847,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 +1435,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 +1596,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 +1915,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,11 +1955,8 @@
 		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 {
 			/* Copy credentials */
 			scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred);
@@ -1974,8 +1971,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 +1985,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 +1999,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/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/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);
 
@@ -1447,11 +1447,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/netlabel/netlabel_domainhash.c
+++ linux-3.2.0/net/netlabel/netlabel_domainhash.c
@@ -282,7 +282,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;
@@ -330,7 +330,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/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/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_ppp.c
+++ linux-3.2.0/net/l2tp/l2tp_ppp.c
@@ -915,7 +915,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);
--- 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/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_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_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_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/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_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);
@@ -504,74 +505,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 +620,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 +674,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 +1217,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 +1233,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 +1600,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/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/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/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/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/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;
 }
 
@@ -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);
 
@@ -4133,9 +4141,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/ipv4/esp4.c
+++ linux-3.2.0/net/ipv4/esp4.c
@@ -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/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/tcp_output.c
+++ linux-3.2.0/net/ipv4/tcp_output.c
@@ -1093,6 +1093,14 @@
 {
 	int i, k, eat;
 
+	eat = min_t(int, len, skb_headlen(skb));
+	if (eat) {
+		__skb_pull(skb, eat);
+		skb->avail_size -= eat;
+		len -= eat;
+		if (!len)
+			return;
+	}
 	eat = len;
 	k = 0;
 	for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
@@ -1124,11 +1132,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 +1142,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 +1318,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 +1560,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,7 +1584,7 @@
 		 * 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;
 	}
 
@@ -1784,7 +1787,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 +2064,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/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<<optname) & ((1<<IP_PKTINFO) | (1<<IP_RECVTTL) |
-			     (1<<IP_RECVOPTS) | (1<<IP_RECVTOS) |
-			     (1<<IP_RETOPTS) | (1<<IP_TOS) |
-			     (1<<IP_TTL) | (1<<IP_HDRINCL) |
-			     (1<<IP_MTU_DISCOVER) | (1<<IP_RECVERR) |
-			     (1<<IP_ROUTER_ALERT) | (1<<IP_FREEBIND) |
-			     (1<<IP_PASSSEC) | (1<<IP_TRANSPARENT) |
-			     (1<<IP_MINTTL) | (1<<IP_NODEFRAG))) ||
-	    optname == IP_MULTICAST_TTL ||
-	    optname == IP_MULTICAST_ALL ||
-	    optname == IP_MULTICAST_LOOP ||
-	    optname == IP_RECVORIGDSTADDR) {
+	switch (optname) {
+	case IP_PKTINFO:
+	case IP_RECVTTL:
+	case IP_RECVOPTS:
+	case IP_RECVTOS:
+	case IP_RETOPTS:
+	case IP_TOS:
+	case IP_TTL:
+	case IP_HDRINCL:
+	case IP_MTU_DISCOVER:
+	case IP_RECVERR:
+	case IP_ROUTER_ALERT:
+	case IP_FREEBIND:
+	case IP_PASSSEC:
+	case IP_TRANSPARENT:
+	case IP_MINTTL:
+	case IP_NODEFRAG:
+	case IP_MULTICAST_TTL:
+	case IP_MULTICAST_ALL:
+	case IP_MULTICAST_LOOP:
+	case IP_RECVORIGDSTADDR:
 		if (optlen >= sizeof(int)) {
 			if (get_user(val, (int __user *) optval))
 				return -EFAULT;
--- 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/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/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/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/tcp_input.c
+++ linux-3.2.0/net/ipv4/tcp_input.c
@@ -83,7 +83,7 @@
 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);
 
 int sysctl_tcp_stdurg __read_mostly;
@@ -334,6 +334,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 +474,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 +1314,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 +1352,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 +1376,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 +1395,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 +1405,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 +1445,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 +1592,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 +1686,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)))
@@ -2556,6 +2579,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 +2868,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);
 }
@@ -5388,7 +5415,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;
 				}
@@ -5809,6 +5838,8 @@
 			goto discard;
 
 		if (th->syn) {
+			if (th->fin)
+				goto discard;
 			if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
 				return 1;
 
--- 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->avail_size = 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;
@@ -3216,7 +3224,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 +3288,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/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);
--- 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, 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;
 	}
 
 	/* 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/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/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/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/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,
@@ -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/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/ip_options.c
+++ linux-3.2.0/net/ipv4/ip_options.c
@@ -573,8 +573,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/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/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/sunrpc/xprt.c
+++ linux-3.2.0/net/sunrpc/xprt.c
@@ -962,11 +962,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 +977,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 +1093,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)
--- 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/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/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/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/sched.c
+++ linux-3.2.0/net/sunrpc/sched.c
@@ -500,14 +500,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 +529,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 +755,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;
 }
 
 /**
--- 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/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/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);
@@ -893,14 +891,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 +919,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/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/ipv6/ip6_output.c
+++ linux-3.2.0/net/ipv6/ip6_output.c
@@ -1178,6 +1178,29 @@
 	return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL;
 }
 
+static void ip6_append_data_mtu(int *mtu,
+				int *maxfraglen,
+				unsigned int fragheaderlen,
+				struct sk_buff *skb,
+				struct rt6_info *rt)
+{
+	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 = 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,7 +1210,7 @@
 	struct inet_sock *inet = inet_sk(sk);
 	struct ipv6_pinfo *np = inet6_sk(sk);
 	struct inet_cork *cork;
-	struct sk_buff *skb;
+	struct sk_buff *skb, *skb_prev = NULL;
 	unsigned int maxfraglen, fragheaderlen;
 	int exthdrlen;
 	int dst_exthdrlen;
@@ -1245,8 +1268,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;
@@ -1342,25 +1369,27 @@
 			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);
+
+			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 +1398,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 +1443,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 +1453,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/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/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/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
@@ -2055,7 +2054,7 @@
 		if (!delta)
 			pmc->mca_sfcount[sfmode]--;
 		for (j=0; j<i; j++)
-			(void) ip6_mc_del1_src(pmc, sfmode, &psfsrc[i]);
+			ip6_mc_del1_src(pmc, sfmode, &psfsrc[j]);
 	} else if (isexclude != (pmc->mca_sfcount[MCAST_EXCLUDE] != 0)) {
 		struct ip6_sf_list *psf;
 
--- 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/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)
@@ -4341,6 +4343,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 +4512,7 @@
 			.data		= &ipv6_devconf.use_tempaddr,
 			.maxlen		= sizeof(int),
 			.mode		= 0644,
-			.proc_handler	= proc_dointvec,
+			.proc_handler	= addrconf_sysctl_tempaddr,
 		},
 		{
 			.procname	= "temp_valid_lft",
--- 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/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,
--- 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/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/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/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 = {
@@ -1097,7 +1097,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 +1435,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;
 }
 
@@ -2446,8 +2447,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 +2882,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 +2902,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 +2910,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 +2986,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 +3023,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/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/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/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/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(&reg_regdb_search_mutex);
 	while (!list_empty(&reg_regdb_search_list)) {
@@ -346,9 +348,7 @@
 				r = reg_copy_regd(&regdom, 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(&reg_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(&reg_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 */
 
@@ -1361,7 +1374,7 @@
 	spin_unlock(&reg_requests_lock);
 
 	if (last_request->initiator == NL80211_REGDOM_SET_BY_USER)
-		cancel_delayed_work_sync(&reg_timeout);
+		cancel_delayed_work(&reg_timeout);
 
 	if (need_more_processing)
 		schedule_work(&reg_work);
@@ -2236,6 +2249,8 @@
 	spin_lock_init(&reg_requests_lock);
 	spin_lock_init(&reg_pending_beacons_lock);
 
+	reg_regdb_size_check();
+
 	cfg80211_regdomain = cfg80211_world_regdom;
 
 	user_alpha2[0] = '9';
--- 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/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;
--- 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;
--- 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/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/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/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);
--- linux-3.2.0.orig/net/bluetooth/hci_conn.c
+++ linux-3.2.0/net/bluetooth/hci_conn.c
@@ -44,6 +44,7 @@
 
 #include <net/bluetooth/bluetooth.h>
 #include <net/bluetooth/hci_core.h>
+#include <net/bluetooth/smp.h>
 
 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/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) {
@@ -2263,12 +2265,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
--- linux-3.2.0.orig/net/bluetooth/rfcomm/sock.c
+++ linux-3.2.0/net/bluetooth/rfcomm/sock.c
@@ -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)
@@ -835,6 +836,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/atm/common.c
+++ linux-3.2.0/net/atm/common.c
@@ -784,6 +784,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/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/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, &param);
--- 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/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/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.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/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/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 <linux/list.h>
 #include <linux/phy.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
 #include <net/dsa.h>
 
-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/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_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/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/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/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/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/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/ax25/af_ax25.c
+++ linux-3.2.0/net/ax25/af_ax25.c
@@ -2006,16 +2006,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/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);
@@ -1308,6 +1309,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 +1499,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 +1522,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
@@ -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/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/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/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/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/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,14 @@
 		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);
 	return netif_rx(skb);
 }
 EXPORT_SYMBOL_GPL(dev_forward_skb);
@@ -1603,6 +1631,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 +1661,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 +1885,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 +2095,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 +2108,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 +2124,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 +2183,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 +2292,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 +2687,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 +2829,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;
@@ -3284,18 +3280,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);
@@ -3315,6 +3311,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 +3564,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 +3633,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 +4101,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 +4148,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 +4260,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 +4867,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 +5648,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 +6015,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 +6394,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/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/pktgen.c
+++ linux-3.2.0/net/core/pktgen.c
@@ -1932,7 +1932,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 +2935,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 +3758,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/filter.c
+++ linux-3.2.0/net/core/filter.c
@@ -39,6 +39,7 @@
 #include <linux/filter.h>
 #include <linux/reciprocal_div.h>
 #include <linux/ratelimit.h>
+#include <linux/seccomp.h>
 
 /* 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/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;
@@ -1045,6 +1054,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 +1063,13 @@
 	rcu_read_lock();
 	cb->seq = net->dev_base_seq;
 
+	if (nlmsg_parse(cb->nlh, sizeof(struct rtgenmsg), 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 +1079,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 +1116,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 +1136,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 +1374,7 @@
 			goto errout;
 		send_addr_notify = 1;
 		modified = 1;
+		add_device_randomness(dev->dev_addr, dev->addr_len);
 	}
 
 	if (tb[IFLA_MTU]) {
@@ -1836,6 +1859,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 +1868,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 +1882,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 +1898,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 rtgenmsg), 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 +1958,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 +2020,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;
--- linux-3.2.0.orig/net/core/neighbour.c
+++ linux-3.2.0/net/core/neighbour.c
@@ -802,6 +802,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
@@ -1252,8 +1254,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 +1263,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 +1294,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/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/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/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/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/color.c
+++ linux-3.2.0/tools/perf/util/color.c
@@ -1,3 +1,4 @@
+#include <linux/kernel.h>
 #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/strbuf.c
+++ linux-3.2.0/tools/perf/util/strbuf.c
@@ -1,4 +1,5 @@
 #include "cache.h"
+#include <linux/kernel.h>
 
 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/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/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/trace-event-parse.c
+++ linux-3.2.0/tools/perf/util/trace-event-parse.c
@@ -1582,6 +1582,8 @@
 	field = malloc_or_die(sizeof(*field));
 
 	type = process_arg(event, field, &token);
+	while (type == EVENT_OP)
+		type = process_op(event, field, &token);
 	if (test_type_token(type, token, EVENT_DELIM, ","))
 		goto out_free;
 
--- 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/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/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/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/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/hv/hv_kvp_daemon.c
+++ linux-3.2.0/tools/hv/hv_kvp_daemon.c
@@ -34,21 +34,13 @@
 #include <errno.h>
 #include <arpa/inet.h>
 #include <linux/connector.h>
+#include <linux/hyperv.h>
 #include <linux/netlink.h>
 #include <ifaddrs.h>
 #include <netdb.h>
 #include <syslog.h>
-
-/*
- * 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 <sys/stat.h>
+#include <fcntl.h>
 
 /*
  * 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/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 <apw@canonical.com>
+.\"  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 <ksrinivasan@novell.com>
--- 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/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/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 <aufs2-standalone directory>" 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
+} <aufs/BOM
+
+# Identify the tip of the standalone tree for reporting
+n_tip_sha1=`( cd "$aufs" && git log --format=%H HEAD^..HEAD )`
+
+# Update aufs to the latest.
+git rm -rf aufs
+cp -rp "$aufs/fs/aufs" aufs
+#cp -rp "$aufs/include" aufs
+cp -rp "$aufs/include/linux"/*.h include/linux
+git checkout -f HEAD -- aufs/BOM aufs/BOM.UPDATING
+
+# Reinsert the include update.
+#sed -i -e '1iEXTRA_CFLAGS += -I$(src)/include' aufs/Makefile
+
+# Fix the relative patch references ...
+sed -i -e 's@/include/@/ubuntu/include/@g;' aufs/Makefile
+
+## # Find the latest commit in the ChangeLog.
+## read x n_log_sha1 <"$aufs/ChangeLog"
+
+# Insert the new commit ID and commit the result.
+sed -i -e "s/^COMMIT: .*/COMMIT: $n_tip_sha1/" aufs/BOM
+sed -i -e "s/^CHANGELOG: .*/CHANGELOG: $n_log_sha1/" aufs/BOM
+
+git add aufs include/linux
+{
+	echo "UBUNTU: ubuntu: AUFS -- update to $n_tip_sha1"
+	echo ""
+	(cd "$aufs" && git log --no-merges "$o_tip_sha1..$n_tip_sha1" | git shortlog)
+## 	awk <"$aufs/ChangeLog" '
+## 		/^commit '"$o_log_sha1"'/ 	{ exit }
+## 						{ print "    " $0 }
+## 	'
+} | git commit -s -F -
--- 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/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/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 <linux/sched.h>
+#undef pr_fmt
+#define pr_fmt(fmt)	AUFS_NAME " %s:%d:%s[%d]: " fmt, \
+		__func__, __LINE__, current->comm, current->pid
+#else
+#include <stdint.h>
+#include <sys/types.h>
+#endif /* __KERNEL__ */
+
+#include <linux/limits.h>
+
+#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/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/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/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 <pmr09313@students.fct.unl.pt>
+  
+  Based on:
+  av5100.c from http://ipw2100.sourceforge.net/
+
+*******************************************************************************/
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/netdevice.h>
+#include <linux/version.h>
+#include <linux/proc_fs.h>
+#include <linux/ioport.h>
+#include <asm/uaccess.h>
+#include <asm/io.h>
+
+#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 <linux/moduleparam.h>
+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/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 <ipw2100-admin@linux.intel.com>
+  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+*******************************************************************************/
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/netdevice.h>
+#include <linux/version.h>
+#include <linux/proc_fs.h>
+#include <linux/ioport.h>
+#include <asm/uaccess.h>
+#include <asm/io.h>
+
+
+#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 <linux/moduleparam.h>
+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/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 <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/proc_fs.h>
+#include <linux/dmi.h>
+#include <linux/version.h>
+#include <asm/uaccess.h>
+
+#include "hardware.h"
+#include "laptop.h"
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+#include <linux/platform_device.h>
+#else
+#include <linux/device.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <asm/io.h>
+#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/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 <thp@perli.net>, 2006
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+#ifdef CONFIG_ACPI
+
+#include <acpi/acpi_drivers.h>
+#include <linux/workqueue.h>
+
+/* 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, &params,
+				      &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, &param, &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, &param, &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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/delay.h>
+#include <asm/io.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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/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/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 <mathieu.berard@crans.org>, 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 <linux/preempt.h>
+#include <linux/pci.h>
+#include <linux/kref.h>
+#include <asm/io.h>
+#include <asm/mc146818rtc.h>
+#include <linux/workqueue.h>
+#include <linux/delay.h>
+
+/* 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/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 <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+
+#include <linux/delay.h>
+#include <linux/ioport.h>
+#include <linux/pci.h>
+#include <linux/kref.h>
+
+#include <asm/io.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+#include <linux/workqueue.h>
+#include <linux/jiffies.h>
+
+/*
+ * 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/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 <sp@osb.hu>, 2002-2004
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <borislav@users.sf.net>
+ *
+ *  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<offset> 0x<value>" " (<offset> is 00-ff, <value> is 00-ff)\n");
+	len +=
+	    sprintf(buffer + len,
+		    "commands:\t0x<offset> <value>  " " (<offset> is 00-ff, <value> 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006-2007
+ */
+
+#include <linux/acpi.h>
+#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/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 <sp@osb.hu>, 2002-2004
+# Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/dmi.h>
+#include <linux/version.h>
+
+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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include "hardware.h"
+#include "compat.h"
+#include <linux/input.h>
+
+/*
+ * 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/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 <mago@acn.waw.pl>, 2002
+ * Modified by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include <linux/err.h>
+
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+#include <linux/backlight.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <mathieu.berard@crans.org>, 2006
+ */
+
+#include <linux/version.h>
+
+/*
+ * For compatibility with kernel older than 2.6.16
+ * Mutex to Semaphore fallback
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+#include <asm/semaphore.h>
+#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 <linux/mutex.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#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/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/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 <mathieu.berard@crans.org>, 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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/ctype.h>
+#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/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 <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006-2007
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/input.h>
+#include <linux/version.h>
+
+/*
+ * 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/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:  <NULL>
+Board Name:    <NULL>
+Board Version: <NULL>
+
+---------------------------------------------
+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/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/hotkeys/ob5xx.def
+++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/ob5xx.def
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP OmniBook 5xx">
+
+	<!--
+		Multimedia keys are disabled by default on HP OmniBook
+		laptops. For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<Shell		keycode="244"/>
+		<Help		keycode="243"/>
+
+		<!-- Keys below available on the docking station only -->
+
+		<PrevTrack	keycode="144"/>
+		<Play		keycode="162"/>
+		<Stop		keycode="164"/>
+		<NextTrack	keycode="153"/>
+
+		<VolUp		keycode="176" adj="1"/>
+		<VolDown	keycode="174" adj="1"/>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP OmniBook xt155">
+
+	<!--
+		Multimedia keys are disabled by default on HP OmniBook
+		laptops. For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<Email		keycode="236"/>
+		<WebBrowser	keycode="178"/>
+		<Shell		keycode="243"/>
+		<ScreenSaver	keycode="241"/>
+		<Help		keycode="240"/>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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/xe3gf.def
+++ linux-3.2.0/ubuntu/omnibook/misc/hotkeys/xe3gf.def
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP OmniBook XE3 GF">
+
+	<!--
+		Multimedia keys are disabled by default on HP OmniBook
+		laptops. For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<PrevTrack	keycode="144"/>
+		<Play		keycode="162"/>
+		<Stop		keycode="164"/>
+		<NextTrack	keycode="153"/>
+
+		<VolUp		keycode="176" adj="1"/>
+		<VolDown	keycode="174" adj="1"/>
+
+		<Email		keycode="236"/>
+		<WebBrowser	keycode="178"/>
+		<Shell		keycode="244"/>
+		<Help		keycode="243"/>
+
+		<userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP OmniBook xe4xxx and ze4xxx">
+
+	<!--
+		Multimedia keys are disabled by default on HP OmniBook
+		laptops. For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<Email		keycode="236"/>
+		<WebBrowser	keycode="178"/>
+		<Shell		keycode="243"/>
+		<ScreenSaver	keycode="241"/>
+		<Help		keycode="240"/>
+
+		<VolUp		keycode="176" adj="1"/>
+		<VolDown	keycode="174" adj="1"/>
+
+		<userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP OmniBook XE3 GC, GD, GE and HP Pavilion N5xxx">
+
+	<!--
+		Multimedia keys are disabled by default on HP OmniBook
+		laptops. For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<PrevTrack	keycode="144"/>
+		<Play		keycode="162"/>
+		<Stop		keycode="164"/>
+		<NextTrack	keycode="153"/>
+
+		<VolUp		keycode="176" adj="1"/>
+		<VolDown	keycode="174" adj="1"/>
+
+		<WebBrowser	keycode="243"/>
+		<Email		keycode="244"/>
+		<Shell		keycode="242"/>
+		<Help		keycode="241"/>
+
+		<userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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 @@
+<?xml version="1.0"?>
+<definition>
+	<config model="HP/Compaq nx9xxx laptops">
+
+	<!--
+		Multimedia keys are disabled by default on HP laptops.
+		For enabling them see the project at URL
+		http://sourceforge.net/projects/omke
+	-->
+
+		<Email		keycode="236"/>
+		<WebBrowser	keycode="178"/>
+		<Shell		keycode="243"/>
+		<ScreenSaver	keycode="241"/>
+		<Help		keycode="240"/>
+
+		<VolUp		keycode="176" adj="1"/>
+		<VolDown	keycode="174" adj="1"/>
+
+		<userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+	</config>
+
+	<contributor>
+		<name>Soos, Peter</name>
+		<email>sp@osb.hu</email>
+	</contributor>
+</definition>
--- 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 <math_b@users.sourceforge.net>
+* DMI signature added:
+	Toshiba Satellite P25 (ectype 11)
+	Toshiba Satellite M60 (ectype 12)
+* Applied patch from Danny Kukawka <dkukawka@suse.de> to
+  fix compiler warning about use uninitialized variable
+* Applied patch from Danny Kukawka <dkukawka@suse.de> to
+  fix build the driver on older kernel versions
+* Applied patches from Azael Avalos <coproscefalo@gmail.com>
+  to add support to Satellite X205 and other laptops based on
+  ICH8
+* Fix build with kernel >= 2.6.30
+
+2.20070211 Mathieu Bérard <math_b@users.sourceforge.net>
+* 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 <math_b@users.sourceforge.net>
+* 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 <math_b@users.sourceforge.net>
+* 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 <math_b@users.sourceforge.net>
+* 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 <math_b@users.sourceforge.net>
+* 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 <math_b@users.sourceforge.net>
+* 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 <thp@perli.net>
+* Added support for xe4500's "audio mute" led
+
+2006-01-26 Soós Péter <sp@osb.hu>
+* 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 <sp@osb.hu> 
+* Fixed Makefile
+* Updated Toshiba 1115 information
+
+2004-12-15 Scott Barnes <reeve@users.sourceforge.net>
+* Added Toshiba Satellite M35X
+
+2004-09-16 Soós Péter <sp@osb.hu>
+* Added INSTALL-2.6 file
+* Little spelling fixes in documentation
+* Little bugfixes
+* Added Compal ACL10
+
+2004-07-01 Soós Péter <sp@osb.hu>
+* Added new technology codes
+* Added some new HP nx9000 detection string
+* Added Toshiba Satellite P20
+
+2004-06-07 Chris Green <cmg@dok.org>
+* Added Toshiba Satellite P15
+
+2004-06-01 Soós Péter <sp@osb.hu>
+* Added Toshiba Satellite 1955
+* Added Toshiba Satellite 2435
+* Added Toshiba Satellite P10 (new ectype)
+* Acer Aspire 1350
+
+2004-01-23 Soós Péter <sp@osb.hu>
+* Added HP Pavilion ze8500 (HP nx9010)
+* fixed PM handler for OneTouch keys and touchpad
+
+2004-01-20 Soós Péter <sp@osb.hu>
+* 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 <sp@osb.hu>
+* Added fan support for Fujitsu-Siemens Amilo D series laptops
+
+2004-01-14 Soós Péter <sp@osb.hu>
+* Fixed Makefile for kernels 2.6
+* Added Fujitsu-Siemens Amilo D series laptops (new ectype)
+
+2003-12-08 Soós Péter <sp@osb.hu>
+
+* Fixed tecnology code detection
+* Added HP/Compaq nx9005
+* Fixed Makefile for kernel 2.4
+
+2003-11-12 Soós Péter <sp@osb.hu>
+
+* Fixed KERNEL_WARNING in init.c
+
+2003-11-10 Soós Péter <sp@osb.hu>
+
+* Fixed timeout bugs in ec.c
+* Fixed touchpad dependency code for kernel 2.6
+* Added Compaq nx9000
+
+2003-11-10 Mark Chappell <mark@nslm.fsnet.co.uk>
+
+* Added kernel 2.6 support to Makefile
+
+2003-10-23 Soós Péter <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* Added Toshiba Satellite 2430
+* Documentation enhancements
+
+2003-04-03 Soós Péter <sp@osb.hu>
+
+* Really fixed __init bug in user parameter code
+* Fixed omnibook_dmi_ident (it was static)
+
+2003-03-31 Soós Péter <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* Added HP Pavilion ZU1155 and ZU1175 detection
+
+2003-03-11 Soós Péter <sp@osb.hu>
+
+* Fixed bogus version information
+
+2003-03-06 Ducrot Bruno <ducrot@poupinou.org>
+
+* Fan off hack for XE3GF style machines
+
+2003-03-04 Ducrot Bruno <ducrot@poupinou.org>
+
+* Fixed spinlock problem
+
+2003-02-28 Soós Péter <sp@osb.hu>
+
+* Added /proc/omnibook/version
+* Added OMNIBOOK_ prefix to MODULE_NAME and MODULE_VERSION definitions
+* Fixed bugs in lcd.c (thanks to Bernhard Kaindl <bernhard.kaindl@gmx.de>)
+* Some code tuning and cosmetic changes
+* Fixed OmniBook 4150 support
+
+2003-02-26 Soós Péter <sp@osb.hu>
+
+* Fixed kernel Oops in technology code identification
+* Some minor changes in logging
+
+2003-02-25 Soós Péter <sp@osb.hu>
+
+* Try to identify HP laptops by technology code if machine is unsupported
+* Fixed dmi identification code
+
+2003-02-14 Soós Péter <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <ducrot@poupinou.org>
+
+* Added to use ACPI_EC if available
+
+2003-01-09 Soós Péter <sp@osb.hu>
+
+* Fixed reverse console blanking bug on OB5xx and OB6xxx
+* Disabled unreliable undocking feature on OB500
+
+2003-01-08 Ducrot Bruno <ducrot@poupinou.org>
+
+* Added Toshiba Satellite 3000, 3005, 1000, 1005, 1110, 1115, 1900, 1905
+  support
+
+2003-01-08 Soós Péter <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <rickr@mn.rr.com>
+
+* Added on and off as valid input to /proc/omnibook/lcd, to turn
+  the LCD backlight on and off.
+
+2002-12-15 Rick Richardson <rickr@mn.rr.com>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* Added Compal ACL00 laptop support
+* Updated documentation
+* Added touchpad support
+* Some bugfixes
+* /proc/apm emulation added
+
+2002-08-06 Soós Péter <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* 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 <sp@osb.hu>
+
+* Some code tuning
+
+2002-05-07 Soós Péter <sp@osb.hu>
+
+* Added missing #include <linux/sched.h> to main.c
+* Some text corrections
+* Added HP OmniBook 500 FA support (OneTouch only)
+
+2002-05-06 Soós Péter <sp@osb.hu>
+
+* LCD display turn off at console blanking added
+* Code cleanup
+
+2002-05-02 Soós Péter <sp@osb.hu>
+
+* The first release of omnibook module
+* OneTouch button support
--- 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.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <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/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 <sp@osb.hu>
+
+Special thanks to the following persons and/or organisations (without
+particular order):
+
+* Al Stone <ahs3@fc.hp.com> and Linux Systems Operation at HP for lending
+  an HP OmniBook 500 for the project purposes.
+* Pavel Mihaylov <bin@bash.info> for his omke project discovering a lot of
+  OmniBook features, providing some code for XE3 GC machines and testing.
+* Ducrot Bruno <ducrot@poupinou.org> 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 <ahs3@fc.hp.com> for sharing some programming information.
+* Guido Guenther <agx@sigxcpu.org> for initial OneTouch enabling code.
+* Jens Thoms Toerring <Jens.Toerring@physik.fu-berlin.de> for initial
+  OneTouch power management code.
+* Maciek Gorniak <mago@acn.waw.pl> for initial HP Pavilion N5415 detecting
+  code and initial lcd brighness code.
+* Rick Richardson <rickr@mn.rr.com> for some bugfixes and useful patches.
+* Bob McElrath <mcelrath@draal.physics.wisc.edu> for initial Compal ACL00
+  code.
+* Luisimi Moya <luismimoya@eresmas.net> for Acer Aspire 1400 support.
+* Bernhard Kaindl <bernhard.kaindl@gmx.de> for bugfixes and patches
+* Gabriele Vivinetto <gabriele.mailing@rvmgroup.it> for documentation
+  enhancements and testing.
+* Mark Chappell <nslm@nslm.fsnet.co.uk> for building on kernel 2.6.
+* Massimo Dal Zotto <dz@debian.org> for his i8k code.
+* Jonathan A. Buzzard <jonathan@buzzard.org.uk> 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/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/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 <sp@osb.hu>, Wed, 25 Jan 2006 21:06:28 +0100
+ -- Julien Valroff <julien@kirya.net>  Sun, 07 Oct 2007 10:38:07 +0200
+
--- 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 <sp@osb.hu> on
+Wed, 25 Jan 2006 21:06:28 +0100.
+Debian package was improved by Julien Valroff <julien@kirya.net>
+
+It was downloaded from http://sourceforge.net/projects/omnibook
+
+Copyright Holder: 2006-2007 Mathieu Bérard <math_b@users.sourceforge.net>
+
+dump.c:
+   Copyright (C) 2004-2005 Borislav Deianov <borislav@users.sf.net>
+
+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 <sp@osb.hu>
+  Copyright (C) 2006-2009 Julien Valroff <julien@kirya.net>
+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/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 <julien@kirya.net>  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 <coproscefalo@gmail.com>
+    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 <julien@kirya.net>  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 <dkukawka@suse.de> to
+    fix compiler warning about use uninitialized variable
+    + Applied patch from Danny Kukawka <dkukawka@suse.de> to
+    fix build the driver on older kernel versions
+
+  * New Standards version 3.8.0 - no further changes needed
+  * Updated copryight information
+
+ -- Julien Valroff <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  Mon, 12 Feb 2007 18:50:05 +0100
+
+omnibook (2:2.20060921+svn20061202-1) unstable; urgency=low
+
+  * New SVN snapshot (r228)
+
+ -- Julien Valroff <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  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 <julien@kirya.net>  Thu, 10 Aug 2006 01:35:38 +0200
+
+omnibook (20060126-1) unstable; urgency=low
+
+  * Minor build inconveniences corrected.
+
+ -- Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>  Sun, 18 Jun 2006 12:28:55 -0700
+
+omnibook (20060126-0) unstable; urgency=low
+
+  * Locally built.
+
+ -- Péter Soós <sp@osb.hu>  Wed, 25 Jan 2006 21:06:28 +0100
+
--- 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/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/control
+++ linux-3.2.0/ubuntu/omnibook/debian/control
@@ -0,0 +1,21 @@
+Source: omnibook
+Section: misc
+Priority: optional
+Maintainer: Julien Valroff <julien@kirya.net>
+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/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 <julien@kirya.net>
+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/compat
+++ linux-3.2.0/ubuntu/omnibook/debian/compat
@@ -0,0 +1 @@
+7
--- 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 <fsam7400@zwobbl.de>
+
+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/Kconfig
+++ linux-3.2.0/ubuntu/fsam7400/Kconfig
@@ -0,0 +1,6 @@
+config FSAM7400
+	tristate "SW RF kill switch for Fujitsu Siemens Amilo M 7400"
+	depends on X86
+	select CHECK_SIGNATURE
+	default m
+	---help---
--- 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 
+<http://www.fsf.org/copyleft/gpl.html>"
+
+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/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/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/Makefile
+++ linux-3.2.0/ubuntu/fsam7400/Makefile
@@ -0,0 +1,2 @@
+
+obj-$(CONFIG_FSAM7400) += fsam7400.o
--- linux-3.2.0.orig/ubuntu/fsam7400/CHANGELOG
+++ linux-3.2.0/ubuntu/fsam7400/CHANGELOG
@@ -0,0 +1,34 @@
+Nov 22 2008 Changes in 0.5.2 by legolas558
+* fixed some missing include files
+
+Sep 22 2006 Changes in 0.5.1
+* Fix: possible null pointer dereference in proc code
+* Fix: module exit code was mistakenly disabled
+
+Sep 22 2006 Changes in 0.5.0
+* fixed compilation problems with kernel 2.6.18
+* debug-output enabling via module parameter
+* hibernation support: reconstruct last radio state on resume
+* disabled autoload option by default
+
+Jul 16 2006 Changes in 0.4.1
+* new Makefile fixing problems with kernel 2.6.17
+* several bug fixes and compiler cleanups
+
+Aug 20 2004 Changes in 0.4.0
+* several bug fixes and compiler cleanups
+* UID/GID for procfs entry selectable via module parameter
+* Autoload support: fsam7400 modprobes and rmmods ipw2100 automatically
+  depending on radio state
+
+Apr 15 2004 Changes in 0.3.0
+* Fix: radio state was not displayed properly
+* some proc improvements
+* finished code for alternative routine address calculation
+* debug-output selectable at compile-time with CONFIG_IPW2100_DEBUG define
+  for smaller module size if no debug is needed ;)
+
+Apr 9 2004 Changes in 0.2.1
+* Initial release
+* Determines if wireless device is enabled by default Bios-settings
+* Auto-off functionality
--- linux-3.2.0.orig/ubuntu/fsam7400/fsam7400.c
+++ linux-3.2.0/ubuntu/fsam7400/fsam7400.c
@@ -0,0 +1,386 @@
+/*******************************************************************************
+
+  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.
+
+  Author:
+  Marcel Naziri <fsam7400@zwobbl.de>
+
+  Based on:
+  pbe5.c by Pedro Ramalhais <pmr09313@students.fct.unl.pt>
+
+  Many thanks to:
+  Pedro Ramalhais for spending several nights with me on IRC
+
+*******************************************************************************/
+
+#ifdef CONFIG_X86
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#include <linux/moduleparam.h>
+#else
+#include <linux/modversions.h>
+#endif
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/compiler.h>
+#include <linux/types.h>
+#include <linux/proc_fs.h>
+#include <linux/ctype.h>
+#include <linux/string.h>
+#include <linux/kmod.h>
+#include <linux/io.h>
+#include <asm/uaccess.h>
+
+#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/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 <fsam7400@zwobbl.de>
--- 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/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 <linux/slab.h>
+
+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 <linux/fs.h>
+#include <linux/magic.h>
+#include <linux/romfs_fs.h>
+
+static inline int au_test_aufs(struct super_block *sb)
+{
+	return sb->s_magic == AUFS_SUPER_MAGIC;
+}
+
+static inline const char *au_sbtype(struct super_block *sb)
+{
+	return sb->s_type->name;
+}
+
+static inline int au_test_iso9660(struct super_block *sb __maybe_unused)
+{
+#if 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/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 <linux/fsnotify.h>
+#include "rwsem.h"
+
+struct vfsmount;
+
+struct au_hnotify {
+#ifdef CONFIG_AUFS_HNOTIFY
+#ifdef CONFIG_AUFS_HFSNOTIFY
+	/* never use fsnotify_add_vfsmount_mark() */
+	struct fsnotify_mark		hn_mark;
+	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/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 <linux/seq_file.h>
+#include "aufs.h"
+
+#ifdef CONFIG_AUFS_FS_MODULE
+/* this entry violates the "one line per file" policy of sysfs */
+static ssize_t config_show(struct kobject *kobj, struct kobj_attribute *attr,
+			   char *buf)
+{
+	ssize_t err;
+	static char *conf =
+/* this file is generated at compiling */
+#include "conf.str"
+		;
+
+	err = snprintf(buf, PAGE_SIZE, conf);
+	if (unlikely(err >= PAGE_SIZE))
+		err = -EFBIG;
+	return err;
+}
+
+static struct kobj_attribute au_config_attr = __ATTR_RO(config);
+#endif
+
+static struct attribute *au_attr[] = {
+#ifdef CONFIG_AUFS_FS_MODULE
+	&au_config_attr.attr,
+#endif
+	NULL,	/* need to NULL terminate the list of attributes */
+};
+
+static struct attribute_group sysaufs_attr_group_body = {
+	.attrs = au_attr
+};
+
+struct attribute_group *sysaufs_attr_group = &sysaufs_attr_group_body;
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb)
+{
+	int err;
+
+	SiMustAnyLock(sb);
+
+	err = 0;
+	if (au_opt_test(au_mntflags(sb), XINO)) {
+		err = au_xino_path(seq, au_sbi(sb)->si_xib);
+		seq_putc(seq, '\n');
+	}
+	return err;
+}
+
+/*
+ * the lifetime of branch is independent from the entry under sysfs.
+ * sysfs handles the lifetime of the entry, and never call ->show() after it is
+ * unlinked.
+ */
+static int sysaufs_si_br(struct seq_file *seq, struct super_block *sb,
+			 aufs_bindex_t bindex)
+{
+	int 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/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/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/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/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 <linux/fs.h>
+#include <linux/lglock.h>
+#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/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/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 <linux/module.h>
+#include <linux/seq_file.h>
+#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 <aufs-users@lists.sourceforge.net>");
+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 <sysfs>/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/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/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 <linux/path.h>
+
+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/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/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/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/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/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/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 <linux/vt_kern.h>
+#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/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/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 <linux/seq_file.h>
+#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/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/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 <linux/fs.h>
+#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/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 <linux/mount.h>
+#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/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/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 <linux/file.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include "rwsem.h"
+
+struct au_branch;
+struct au_hfile {
+	struct file		*hf_file;
+	struct au_branch	*hf_br;
+};
+
+struct au_vdir;
+struct au_fidir {
+	aufs_bindex_t		fd_bbot;
+	aufs_bindex_t		fd_nent;
+	struct au_vdir		*fd_vdir_cache;
+	struct au_hfile		fd_hfile[];
+};
+
+static inline int au_fidir_sz(int nent)
+{
+	AuDebugOn(nent < 0);
+	return sizeof(struct au_fidir) + sizeof(struct au_hfile) * nent;
+}
+
+struct au_finfo {
+	atomic_t		fi_generation;
+
+	struct au_rwsem		fi_rwsem;
+	aufs_bindex_t		fi_btop;
+
+	/* do not union them */
+	struct {				/* for non-dir */
+		struct au_hfile			fi_htop;
+		atomic_t			fi_mmapped;
+	};
+	struct au_fidir		*fi_hdir;	/* for dir only */
+} ____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/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/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/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/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/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/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 <linux/debugfs.h>
+#include "aufs.h"
+
+#ifndef CONFIG_SYSFS
+#error DEBUG_FS depends upon SYSFS
+#endif
+
+static struct dentry *dbgaufs;
+static const mode_t dbgaufs_mode = 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/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/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 <linux/compat.h>
+#include <linux/fs_stack.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+/* bits for struct aufs_rdu.flags */
+#define	AuRdu_CALLED	1
+#define	AuRdu_CONT	(1 << 1)
+#define	AuRdu_FULL	(1 << 2)
+#define au_ftest_rdu(flags, name)	((flags) & AuRdu_##name)
+#define au_fset_rdu(flags, name) \
+	do { (flags) |= AuRdu_##name; } while (0)
+#define au_fclr_rdu(flags, name) \
+	do { (flags) &= ~AuRdu_##name; } while (0)
+
+struct au_rdu_arg {
+	struct 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/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 <linux/pagemap.h>
+#include "aufs.h"
+
+/* drop flags for writing */
+unsigned int au_file_roflags(unsigned int flags)
+{
+	flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC);
+	flags |= O_RDONLY | O_NOATIME;
+	return flags;
+}
+
+/* common functions to regular file and dir */
+struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
+		       struct file *file)
+{
+	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/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 <linux/ima.h>
+#include <linux/namei.h>
+#include <linux/security.h>
+#include <linux/splice.h>
+#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/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 <linux/random.h>
+#include "aufs.h"
+
+unsigned long sysaufs_si_mask;
+struct kset *sysaufs_kset;
+
+#define AuSiAttr(_name) { \
+	.attr   = { .name = __stringify(_name), .mode = 0444 },	\
+	.show   = sysaufs_si_##_name,				\
+}
+
+static struct sysaufs_si_attr sysaufs_si_attr_xi_path = AuSiAttr(xi_path);
+struct attribute *sysaufs_si_attrs[] = {
+	&sysaufs_si_attr_xi_path.attr,
+	NULL,
+};
+
+static const struct sysfs_ops au_sbi_ops = {
+	.show   = sysaufs_si_show
+};
+
+static struct kobj_type au_sbi_ktype = {
+	.release	= au_si_free,
+	.sysfs_ops	= &au_sbi_ops,
+	.default_attrs	= sysaufs_si_attrs
+};
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_init(struct au_sbinfo *sbinfo)
+{
+	int err;
+
+	sbinfo->si_kobj.kset = sysaufs_kset;
+	/* cf. sysaufs_name() */
+	err = kobject_init_and_add
+		(&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_kset->kobj*/NULL,
+		 SysaufsSiNamePrefix "%lx", sysaufs_si_id(sbinfo));
+
+	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/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/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 <linux/module.h>
+#include "aufs.h"
+
+/* internal workqueue named AUFS_WKQ_NAME */
+
+static struct workqueue_struct *au_wkq;
+
+struct au_wkinfo {
+	struct work_struct wk;
+	struct kobject *kobj;
+
+	unsigned int flags; /* see wkq.h */
+
+	au_wkq_func_t func;
+	void *args;
+
+	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/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/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 <linux/compat.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/*
+ * free a single branch
+ */
+static void au_br_do_free(struct au_branch *br)
+{
+	int i;
+	struct au_wbr *wbr;
+	struct au_dykey **key;
+
+	au_hnotify_fin_br(br);
+
+	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/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/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 <linux/sysrq.h> */
+#include <linux/writeback.h>
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+static void sysrq_sb(struct super_block *sb)
+{
+	char *plevel;
+	struct au_sbinfo *sbinfo;
+	struct file *file;
+
+	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/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 <linux/exportfs.h>
+#include <linux/mnt_namespace.h>
+#include <linux/namei.h>
+#include <linux/nsproxy.h>
+#include <linux/random.h>
+#include <linux/writeback.h>
+#include "aufs.h"
+
+union conv {
+#ifdef CONFIG_AUFS_INO_T_64
+	__u32 a[2];
+#else
+	__u32 a[1];
+#endif
+	ino_t ino;
+};
+
+static ino_t decode_ino(__u32 *a)
+{
+	union conv u;
+
+	BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a));
+	u.a[0] = a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+	u.a[1] = a[1];
+#endif
+	return u.ino;
+}
+
+static void encode_ino(__u32 *a, ino_t ino)
+{
+	union conv u;
+
+	u.ino = ino;
+	a[0] = u.a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+	a[1] = u.a[1];
+#endif
+}
+
+/* NFS file handle */
+enum {
+	Fh_br_id,
+	Fh_sigen,
+#ifdef CONFIG_AUFS_INO_T_64
+	/* support 64bit inode number */
+	Fh_ino1,
+	Fh_ino2,
+	Fh_dir_ino1,
+	Fh_dir_ino2,
+#else
+	Fh_ino1,
+	Fh_dir_ino1,
+#endif
+	Fh_igen,
+	Fh_h_type,
+	Fh_tail,
+
+	Fh_ino = Fh_ino1,
+	Fh_dir_ino = Fh_dir_ino1
+};
+
+static int au_test_anon(struct dentry *dentry)
+{
+	/* note: read d_flags without d_lock */
+	return !!(dentry->d_flags & DCACHE_DISCONNECTED);
+}
+
+/* ---------------------------------------------------------------------- */
+/* 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/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 <linux/dcache.h>
+#include "rwsem.h"
+
+struct au_hdentry {
+	struct dentry		*hd_dentry;
+	aufs_bindex_t		hd_id;
+};
+
+struct au_dinfo {
+	atomic_t		di_generation;
+
+	struct au_rwsem		di_rwsem;
+	aufs_bindex_t		di_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/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 <asm/system.h>
+#include <linux/module.h>
+#include <linux/kallsyms.h>
+#include <linux/sysrq.h>
+
+#ifdef CONFIG_AUFS_DEBUG
+#define AuDebugOn(a)		BUG_ON(a)
+
+/* module parameter */
+extern 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/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/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 <linux/proc_fs.h>
+#include "aufs.h"
+
+static int au_procfs_plm_release(struct inode *inode, struct file *file)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = file->private_data;
+	if (sbinfo) {
+		au_plink_maint_leave(sbinfo);
+		kobject_put(&sbinfo->si_kobj);
+	}
+
+	return 0;
+}
+
+static void au_procfs_plm_write_clean(struct file *file)
+{
+	struct au_sbinfo *sbinfo;
+
+	sbinfo = file->private_data;
+	if (sbinfo)
+		au_plink_clean(sbinfo->si_sb, /*verbose*/0);
+}
+
+static int au_procfs_plm_write_si(struct file *file, unsigned long id)
+{
+	int err;
+	struct super_block *sb;
+	struct au_sbinfo *sbinfo;
+
+	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/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 <linux/mm.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include <linux/statfs.h>
+#include <linux/vmalloc.h>
+#include <linux/writeback.h>
+#include "aufs.h"
+
+/*
+ * super_operations
+ */
+static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused)
+{
+	struct au_icntnr *c;
+
+	c = au_cache_alloc_icntnr();
+	if (c) {
+		au_icntnr_init(c);
+		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/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 <linux/path.h>
+
+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/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 <linux/sysfs.h>
+#include "module.h"
+
+struct super_block;
+struct au_sbinfo;
+
+struct sysaufs_si_attr {
+	struct attribute attr;
+	int (*show)(struct seq_file *seq, struct super_block *sb);
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* sysaufs.c */
+extern unsigned long sysaufs_si_mask;
+extern struct kset *sysaufs_kset;
+extern struct attribute *sysaufs_si_attrs[];
+int sysaufs_si_init(struct au_sbinfo *sbinfo);
+int __init sysaufs_init(void);
+void sysaufs_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+/* some people doesn't like to show a pointer in kernel */
+static inline unsigned long sysaufs_si_id(struct au_sbinfo *sbinfo)
+{
+	return sysaufs_si_mask ^ (unsigned long)sbinfo;
+}
+
+#define SysaufsSiNamePrefix	"si_"
+#define SysaufsSiNameLen	(sizeof(SysaufsSiNamePrefix) + 16)
+static inline void sysaufs_name(struct au_sbinfo *sbinfo, char *name)
+{
+	snprintf(name, SysaufsSiNameLen, SysaufsSiNamePrefix "%lx",
+		 sysaufs_si_id(sbinfo));
+}
+
+struct au_branch;
+#ifdef CONFIG_SYSFS
+/* sysfs.c */
+extern struct attribute_group *sysaufs_attr_group;
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb);
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+			 char *buf);
+
+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/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 <linux/fs_stack.h>
+#include "aufs.h"
+
+void au_add_nlink(struct inode *dir, struct inode *h_dir)
+{
+	unsigned int nlink;
+
+	AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
+
+	nlink = dir->i_nlink;
+	nlink += h_dir->i_nlink - 2;
+	if (h_dir->i_nlink < 2)
+		nlink += 2;
+	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/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/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 <linux/statfs.h>
+#include "aufs.h"
+
+/* subset of cpup_attr() */
+static noinline_for_stack
+int au_cpdown_attr(struct path *h_path, struct dentry *h_src)
+{
+	int err, sbits;
+	struct iattr ia;
+	struct inode *h_isrc;
+
+	h_isrc = 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/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/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 <linux/device_cgroup.h>
+#include <linux/fs_stack.h>
+#include <linux/namei.h>
+#include <linux/security.h>
+#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/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/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/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/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 <linux/fs.h>
+
+/* ---------------------------------------------------------------------- */
+
+/* need to be faster and smaller */
+
+struct au_nhash {
+	unsigned int		nh_num;
+	struct hlist_head	*nh_head;
+};
+
+struct au_vdir_destr {
+	unsigned char	len;
+	unsigned char	name[0];
+} __packed;
+
+struct au_vdir_dehstr {
+	struct hlist_node	hash;
+	struct au_vdir_destr	*str;
+} ____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/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 <linux/fs_stack.h>
+#include <linux/mman.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+int au_do_open_nondir(struct file *file, int flags)
+{
+	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/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 <linux/dcache.h>
+#include <linux/fs.h>
+
+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/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 <linux/loop.h>
+#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/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/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/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/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 <linux/fs_stack.h>
+#include <linux/mm.h>
+#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/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 <linux/namei.h>
+#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/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/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 <linux/namei.h>
+#include <linux/types.h> /* a distribution requires */
+#include <linux/parser.h>
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+enum {
+	Opt_br,
+	Opt_add, Opt_del, Opt_mod, Opt_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/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 <Mauelshagen@RedHat.com>
+ *
+ * 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 <linux/dm-io.h>
+
+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-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/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/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 <linux/dm-dirty-log.h>
+
+/*-----------------------------------------------------------------
+ * 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/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-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 <heinzm@redhat.com>
+ *
+ * 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 <linux/kernel.h>
+#include <linux/vmalloc.h>
+#include <linux/raid/xor.h>
+
+#include <linux/bio.h>
+#include <linux/dm-io.h>
+#include <linux/dm-dirty-log.h>
+#include "dm-region-hash.h"
+
+#include <linux/slab.h>
+#include <linux/module.h>
+
+/*
+ * 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 <offset>. */
+	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 <log_params> \
+ * raid_type [#parity_dev] #raid_variable_params <raid_params> \
+ * [locking "none"/"cluster"]
+ * #raid_devs #dev_to_initialize [<dev_path> <offset>]{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
+ *
+ * <dev_path> = device_path (eg, /dev/sdd1)
+ * <offset>   = begin at offset on <dev_path>
+ *
+ */
+#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,
+		      &sectors_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 <hjm@redhat.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("dm-raid4");
+MODULE_ALIAS("dm-raid5");
--- 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 <heinzm@redhat.com>
+ *
+ * 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 <linux/kernel.h>
+#include <linux/module.h>
+
+#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 <hjm@redhat.com>");
+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-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 <Mauelshagen@RedHat.de>
+ *
+ * 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-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 <heinzm@redhat.com>
+ *
+ * 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 <linux/dm-io.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+
+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 <hjm@redhat.com>");
+MODULE_LICENSE("GPL");
--- 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 <linux/dm-dirty-log.h>
+#include "dm-region-hash.h"
+
+#include <linux/ctype.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+
+#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(&reg->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(&reg->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, &reg->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(&reg->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(&reg->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(&reg->hash_list);
+	}
+
+	if (!list_empty(&rh->recovered_regions)) {
+		list_splice_init(&rh->recovered_regions, &recovered);
+
+		list_for_each_entry(reg, &recovered, list)
+			list_del(&reg->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(&reg->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(&reg->pending);
+
+	if (reg->state == DM_RH_CLEAN) {
+		reg->state = DM_RH_DIRTY;
+		list_del_init(&reg->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(&reg->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(&reg->list, &rh->quiesced_regions);
+		} else if (reg->state == DM_RH_DIRTY) {
+			reg->state = DM_RH_CLEAN;
+			list_add(&reg->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, &region);
+	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(&reg->pending))
+		list_del_init(&reg->list);
+	else
+		list_move(&reg->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(&reg->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(&reg->list, &reg->rh->recovered_regions);
+	else {
+		reg->state = DM_RH_NOSYNC;
+		list_add(&reg->list, &reg->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(&reg->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(&reg->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 <dm-devel@redhat.com>");
+MODULE_LICENSE("GPL");
--- 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/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/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/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/device_cgroup.c
+++ linux-3.2.0/security/device_cgroup.c
@@ -13,6 +13,7 @@
 #include <linux/slab.h>
 #include <linux/rcupdate.h>
 #include <linux/mutex.h>
+#include <linux/export.h>
 
 #define ACC_MKNOD 1
 #define ACC_READ  2
@@ -202,8 +203,8 @@
 
 	dev_cgroup = cgroup_to_devcgroup(cgroup);
 	list_for_each_entry_safe(wh, tmp, &dev_cgroup->whitelist, list) {
-		list_del(&wh->list);
-		kfree(wh);
+		list_del_rcu(&wh->list);
+		kfree_rcu(wh, rcu);
 	}
 	kfree(dev_cgroup);
 }
@@ -278,7 +279,7 @@
 {
 	struct dev_whitelist_item *whitem;
 
-	list_for_each_entry(whitem, &c->whitelist, list) {
+	list_for_each_entry_rcu(whitem, &c->whitelist, list) {
 		if (whitem->type & DEV_ALL)
 			return 1;
 		if ((refwh->type & DEV_BLOCK) && !(whitem->type & DEV_BLOCK))
@@ -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 <linux/prctl.h>
 #include <linux/securebits.h>
 #include <linux/user_namespace.h>
+#include <linux/personality.h>
 
 /*
  * 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/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/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/yama/yama_lsm.c
+++ linux-3.2.0/security/yama/yama_lsm.c
@@ -0,0 +1,443 @@
+/*
+ * Yama Linux Security Module
+ *
+ * Author: Kees Cook <keescook@chromium.org>
+ *
+ * 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 <linux/security.h>
+#include <linux/sysctl.h>
+#include <linux/ptrace.h>
+#include <linux/prctl.h>
+#include <linux/ratelimit.h>
+
+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/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/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 <linux/slab.h>
 #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/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/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/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/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) & ~quiet_mask;
+
+		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/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/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/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/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/path.c
+++ linux-3.2.0/security/apparmor/path.c
@@ -13,7 +13,6 @@
  */
 
 #include <linux/magic.h>
-#include <linux/mnt_namespace.h>
 #include <linux/mount.h>
 #include <linux/namei.h>
 #include <linux/nsproxy.h>
@@ -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/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 <state>, 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 <state>, 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/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/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 <linux/fs.h>
+#include <linux/mount.h>
+#include <linux/namei.h>
+
+#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/apparmorfs.c
+++ linux-3.2.0/security/apparmor/apparmorfs.c
@@ -18,12 +18,14 @@
 #include <linux/seq_file.h>
 #include <linux/uaccess.h>
 #include <linux/namei.h>
+#include <linux/capability.h>
 
 #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/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/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/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/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 <net/sock.h>
+
+#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/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/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/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 <linux/fs.h>
+#include <linux/path.h>
+
+#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/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/resource.h
+++ linux-3.2.0/security/apparmor/include/resource.h
@@ -18,6 +18,8 @@
 #include <linux/resource.h>
 #include <linux/sched.h>
 
+#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/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/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 = "<NULL>";
--- 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/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/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/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/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
