summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-11-08 16:01:37 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-08 16:01:37 -0800
commit6e364cc455f4caa3a0e942d76e1d0fefeea3fda6 (patch)
treea9e0f7deed4255b4243466087f365ed16abbfe56
parentb94ee57064a594391599f4eda24ec9a1788037ae (diff)
downloadlongterm-queue-2.6.32-6e364cc455f4caa3a0e942d76e1d0fefeea3fda6.tar.gz
32 patches
added patches: 0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch 0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch 0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch
-rw-r--r--queue-2.6.32/0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch144
-rw-r--r--queue-2.6.32/0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch30
-rw-r--r--queue-2.6.32/0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch70
-rw-r--r--queue-2.6.32/series3
4 files changed, 247 insertions, 0 deletions
diff --git a/queue-2.6.32/0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch b/queue-2.6.32/0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch
new file mode 100644
index 0000000..35bdfab
--- /dev/null
+++ b/queue-2.6.32/0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch
@@ -0,0 +1,144 @@
+From 402a1955b2c0072733b13500b7f6378149e1f72e Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Tue, 8 Nov 2011 15:40:42 -0800
+Subject: Revert "genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier"
+
+This reverts commit 0f12a6ad9fa3a03f2bcee36c9cb704821e244c40.
+
+It causes too many build errors and needs to be done properly.
+
+Reported-by: Jiri Slaby <jslaby@suse.cz>
+Reported-by: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de>
+Cc: Ian Campbell <ian.campbell@citrix.com>
+Cc: Rafael J. Wysocki <rjw@sisk.pl>
+Cc: Jeremy Fitzhardinge <Jeremy.Fitzhardinge@citrix.com>
+Cc: xen-devel <xen-devel@lists.xensource.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/base/sys.c | 6 ------
+ drivers/xen/events.c | 2 +-
+ include/linux/interrupt.h | 5 -----
+ kernel/irq/pm.c | 35 +++++++----------------------------
+ 4 files changed, 8 insertions(+), 40 deletions(-)
+
+--- a/drivers/base/sys.c
++++ b/drivers/base/sys.c
+@@ -471,12 +471,6 @@ int sysdev_resume(void)
+ {
+ struct sysdev_class *cls;
+
+- /*
+- * Called from syscore in mainline but called directly here
+- * since syscore does not exist in this tree.
+- */
+- irq_pm_syscore_resume();
+-
+ WARN_ONCE(!irqs_disabled(),
+ "Interrupts enabled while resuming system devices\n");
+
+--- a/drivers/xen/events.c
++++ b/drivers/xen/events.c
+@@ -536,7 +536,7 @@ int bind_ipi_to_irqhandler(enum ipi_vect
+ if (irq < 0)
+ return irq;
+
+- irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME | IRQF_EARLY_RESUME;
++ irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME;
+ retval = request_irq(irq, handler, irqflags, devname, dev_id);
+ if (retval != 0) {
+ unbind_from_irq(irq);
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -54,8 +54,6 @@
+ * irq line disabled until the threaded handler has been run.
+ * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
+ * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
+- * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
+- * resume time.
+ */
+ #define IRQF_DISABLED 0x00000020
+ #define IRQF_SAMPLE_RANDOM 0x00000040
+@@ -68,7 +66,6 @@
+ #define IRQF_ONESHOT 0x00002000
+ #define IRQF_NO_SUSPEND 0x00004000
+ #define IRQF_FORCE_RESUME 0x00008000
+-#define IRQF_EARLY_RESUME 0x00020000
+
+ #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND)
+
+@@ -199,7 +196,6 @@ extern void enable_irq(unsigned int irq)
+ #ifdef CONFIG_GENERIC_HARDIRQS
+ extern void suspend_device_irqs(void);
+ extern void resume_device_irqs(void);
+-extern void irq_pm_syscore_resume(void);
+ #ifdef CONFIG_PM_SLEEP
+ extern int check_wakeup_irqs(void);
+ #else
+@@ -208,7 +204,6 @@ static inline int check_wakeup_irqs(void
+ #else
+ static inline void suspend_device_irqs(void) { };
+ static inline void resume_device_irqs(void) { };
+-static inline void irq_pm_syscore_resume(void) { };
+ static inline int check_wakeup_irqs(void) { return 0; }
+ #endif
+
+--- a/kernel/irq/pm.c
++++ b/kernel/irq/pm.c
+@@ -39,46 +39,25 @@ void suspend_device_irqs(void)
+ }
+ EXPORT_SYMBOL_GPL(suspend_device_irqs);
+
+-static void resume_irqs(bool want_early)
++/**
++ * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
++ *
++ * Enable all interrupt lines previously disabled by suspend_device_irqs() that
++ * have the IRQ_SUSPENDED flag set.
++ */
++void resume_device_irqs(void)
+ {
+ struct irq_desc *desc;
+ int irq;
+
+ for_each_irq_desc(irq, desc) {
+ unsigned long flags;
+- bool is_early = desc->action &&
+- desc->action->flags & IRQF_EARLY_RESUME;
+-
+- if (is_early != want_early)
+- continue;
+
+ spin_lock_irqsave(&desc->lock, flags);
+ __enable_irq(desc, irq, true);
+ spin_unlock_irqrestore(&desc->lock, flags);
+ }
+ }
+-
+-/**
+- * irq_pm_syscore_ops - enable interrupt lines early
+- *
+- * Enable all interrupt lines with %IRQF_EARLY_RESUME set.
+- */
+-void irq_pm_syscore_resume(void)
+-{
+- resume_irqs(true);
+-}
+-
+-/**
+- * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
+- *
+- * Enable all non-%IRQF_EARLY_RESUME interrupt lines previously
+- * disabled by suspend_device_irqs() that have the IRQS_SUSPENDED flag
+- * set as well as those with %IRQF_FORCE_RESUME.
+- */
+-void resume_device_irqs(void)
+-{
+- resume_irqs(false);
+-}
+ EXPORT_SYMBOL_GPL(resume_device_irqs);
+
+ /**
diff --git a/queue-2.6.32/0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch b/queue-2.6.32/0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch
new file mode 100644
index 0000000..5b30567
--- /dev/null
+++ b/queue-2.6.32/0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch
@@ -0,0 +1,30 @@
+From cc2e66eaae667a0ca6e21308c77c8db6b853092e Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Tue, 8 Nov 2011 15:42:21 -0800
+Subject: Revert "ASoC: wm8940: Properly set codec->dapm.bias_level"
+
+This reverts commit d85b1ce7fd0ecfdd43e8c3e67eb953900c209939.
+
+It breaks the build and probably shouldn't be in the 2.6.32 kernel
+
+Reported-by: Stefan Bader <stefan.bader@canonical.com>
+Cc: Chris Paulson-Ellis <chris@edesix.com>
+Cc: Axel Lin <axel.lin@gmail.com>
+Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/codecs/wm8940.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/sound/soc/codecs/wm8940.c
++++ b/sound/soc/codecs/wm8940.c
+@@ -473,8 +473,6 @@ static int wm8940_set_bias_level(struct
+ break;
+ }
+
+- codec->dapm.bias_level = level;
+-
+ return ret;
+ }
+
diff --git a/queue-2.6.32/0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch b/queue-2.6.32/0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch
new file mode 100644
index 0000000..9890cc6
--- /dev/null
+++ b/queue-2.6.32/0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch
@@ -0,0 +1,70 @@
+From 091a1c005f03f80ea3699a7b7da6ba0a38cba918 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Tue, 8 Nov 2011 15:44:02 -0800
+Subject: Revert "powerpc/mpic: Fix problem that affinity is not updated"
+
+This reverts commit 1badd98ea79b7b20fb4ddfea110d1bb99c33a55f.
+
+It breaks the build on powerpc systems:
+
+arch/powerpc/sysdev/mpic.c: In function 'irq_choose_cpu':
+arch/powerpc/sysdev/mpic.c:574: error: passing argument 1 of '__cpus_equal' from incompatible pointer type
+
+Reported-by: Jiri Slaby <jslaby@suse.cz>
+Cc: Jiajun Wu <b06378@freescale.com>
+Cc: Li Yang <leoli@freescale.com>
+Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ arch/powerpc/sysdev/mpic.c | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+--- a/arch/powerpc/sysdev/mpic.c
++++ b/arch/powerpc/sysdev/mpic.c
+@@ -567,10 +567,12 @@ static void __init mpic_scan_ht_pics(str
+ #endif /* CONFIG_MPIC_U3_HT_IRQS */
+
+ #ifdef CONFIG_SMP
+-static int irq_choose_cpu(const cpumask_t *mask)
++static int irq_choose_cpu(unsigned int virt_irq)
+ {
++ cpumask_t mask;
+ int cpuid;
+
++ cpumask_copy(&mask, irq_desc[virt_irq].affinity);
+ if (cpus_equal(mask, CPU_MASK_ALL)) {
+ static int irq_rover;
+ static DEFINE_SPINLOCK(irq_rover_lock);
+@@ -592,15 +594,20 @@ static int irq_choose_cpu(const cpumask_
+
+ spin_unlock_irqrestore(&irq_rover_lock, flags);
+ } else {
+- cpuid = cpumask_first_and(mask, cpu_online_mask);
+- if (cpuid >= nr_cpu_ids)
++ cpumask_t tmp;
++
++ cpus_and(tmp, cpu_online_map, mask);
++
++ if (cpus_empty(tmp))
+ goto do_round_robin;
++
++ cpuid = first_cpu(tmp);
+ }
+
+ return get_hard_smp_processor_id(cpuid);
+ }
+ #else
+-static int irq_choose_cpu(const cpumask_t *mask)
++static int irq_choose_cpu(unsigned int virt_irq)
+ {
+ return hard_smp_processor_id();
+ }
+@@ -809,7 +816,7 @@ int mpic_set_affinity(unsigned int irq,
+ unsigned int src = mpic_irq_to_hw(irq);
+
+ if (mpic->flags & MPIC_SINGLE_DEST_CPU) {
+- int cpuid = irq_choose_cpu(cpumask);
++ int cpuid = irq_choose_cpu(irq);
+
+ mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 1 << cpuid);
+ } else {
diff --git a/queue-2.6.32/series b/queue-2.6.32/series
index 79dc596..bfa9e4d 100644
--- a/queue-2.6.32/series
+++ b/queue-2.6.32/series
@@ -1,3 +1,6 @@
+0001-Revert-genirq-Add-IRQF_RESUME_EARLY-and-resume-such-.patch
+0002-Revert-ASoC-wm8940-Properly-set-codec-dapm.bias_leve.patch
+0003-Revert-powerpc-mpic-Fix-problem-that-affinity-is-not.patch
st-fix-race-in-st_scsi_execute_end.patch
make-scsi_free_queue-kill-pending-scsi-commands.patch
nfs-sunrpc-don-t-use-a-credential-with-extra-groups.patch