--- /dev/null
+From e1f7f02b45cf33a774d56e505ce1718af9392f5e Mon Sep 17 00:00:00 2001
+From: Daniel T Chen <crimsun@ubuntu.com>
+Date: Thu, 25 Mar 2010 22:38:15 -0700
+Subject: ALSA: ac97: Add IBM ThinkPad R40e to Headphone/Line Jack Sense blacklist
+
+From: Daniel T Chen <crimsun@ubuntu.com>
+
+commit e1f7f02b45cf33a774d56e505ce1718af9392f5e upstream.
+
+BugLink: https://launchpad.net/bugs/303789
+
+This model needs both 'Headphone Jack Sense' and 'Line Jack Sense'
+muted for audible audio, so just add its SSID to the blacklist and
+don't enumerate the controls.
+
+Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/ac97/ac97_patch.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/ac97/ac97_patch.c
++++ b/sound/pci/ac97/ac97_patch.c
+@@ -1867,6 +1867,7 @@ static unsigned int ad1981_jacks_blackli
+ 0x10140523, /* Thinkpad R40 */
+ 0x10140534, /* Thinkpad X31 */
+ 0x10140537, /* Thinkpad T41p */
++ 0x1014053e, /* Thinkpad R40e */
+ 0x10140554, /* Thinkpad T42p/R50p */
+ 0x10140567, /* Thinkpad T43p 2668-G7U */
+ 0x10140581, /* Thinkpad X41-2527 */
--- /dev/null
+From 5cd165e7057020884e430941c24454d3df9a799d Mon Sep 17 00:00:00 2001
+From: Daniel Chen <seven.steps@gmail.com>
+Date: Sun, 28 Mar 2010 13:32:34 -0700
+Subject: ALSA: ac97: Add Toshiba P500 to ac97 jack sense blacklist
+
+From: Daniel Chen <seven.steps@gmail.com>
+
+commit 5cd165e7057020884e430941c24454d3df9a799d upstream.
+
+BugLink: https://launchpad.net/bugs/481058
+
+The OR has verified that both 'Headphone Jack Sense' and 'Line Jack Sense'
+need to be muted for sound to be audible, so just add the machine's SSID
+to the ac97 jack sense blacklist.
+
+Reported-by: Richard Gagne
+Tested-by: Richard Gagne
+Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/ac97/ac97_patch.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/ac97/ac97_patch.c
++++ b/sound/pci/ac97/ac97_patch.c
+@@ -1873,6 +1873,7 @@ static unsigned int ad1981_jacks_blackli
+ 0x10280160, /* Dell Dimension 2400 */
+ 0x104380b0, /* Asus A7V8X-MX */
+ 0x11790241, /* Toshiba Satellite A-15 S127 */
++ 0x1179ff10, /* Toshiba P500 */
+ 0x144dc01a, /* Samsung NP-X20C004/SEG */
+ 0 /* end */
+ };
--- /dev/null
+From 9ec8ddad59fadd8021adfea4cb716a49b0e232e9 Mon Sep 17 00:00:00 2001
+From: Daniel T Chen <crimsun@ubuntu.com>
+Date: Sun, 28 Mar 2010 02:34:40 -0400
+Subject: ALSA: hda: Use LPIB for ga-ma770-ud3 board
+
+From: Daniel T Chen <crimsun@ubuntu.com>
+
+commit 9ec8ddad59fadd8021adfea4cb716a49b0e232e9 upstream.
+
+BugLink: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575669
+
+The OR states that position_fix=1 is necessary to work around glitching
+during volume adjustments using PulseAudio.
+
+Reported-by: Carlos Laviola <claviola@debian.org>
+Tested-by: Carlos Laviola <claviola@debian.org>
+Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/hda_intel.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2228,6 +2228,7 @@ static struct snd_pci_quirk position_fix
+ SND_PCI_QUIRK(0x1106, 0x3288, "ASUS M2V-MX SE", POS_FIX_LPIB),
+ SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB),
+ SND_PCI_QUIRK(0x1028, 0x01f6, "Dell Latitude 131L", 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),
+ SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB),
+ SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB),
--- /dev/null
+From 1f2b10131f83f7caa67bf1273cec126b4283015d Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri, 12 Mar 2010 19:52:55 +0000
+Subject: drm/i915: Avoid NULL deref in get_pages() unwind after error.
+
+From: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 1f2b10131f83f7caa67bf1273cec126b4283015d upstream.
+
+Fixes:
+ http://bugzilla.kernel.org/show_bug.cgi?id=15527
+ NULL pointer dereference in i915_gem_object_save_bit_17_swizzle
+
+BUG: unable to handle kernel NULL pointer dereference at (null)
+IP: [<f82b5d2b>] i915_gem_object_save_bit_17_swizzle+0x5b/0xc0 [i915]
+Call Trace:
+[<f82aea55>] ? i915_gem_object_put_pages+0x125/0x150 [i915]
+[<f82aeb71>] ? i915_gem_object_get_pages+0xf1/0x110 [i915]
+[<f82b0de8>] ? i915_gem_object_bind_to_gtt+0xb8/0x2a0 [i915]
+[<c02db74d>] ? drm_mm_get_block_generic+0x4d/0x180
+[<f82b11cd>] ? i915_gem_mmap_gtt_ioctl+0x16d/0x240 [i915]
+[<f82ae786>] ? i915_gem_madvise_ioctl+0x86/0x120 [i915]
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Reported-by: maciej.rutecki@gmail.com
+Cc: stable@kernel.org
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/i915/i915_gem.c | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -1470,9 +1470,6 @@ i915_gem_object_put_pages(struct drm_gem
+ obj_priv->dirty = 0;
+
+ for (i = 0; i < page_count; i++) {
+- if (obj_priv->pages[i] == NULL)
+- break;
+-
+ if (obj_priv->dirty)
+ set_page_dirty(obj_priv->pages[i]);
+
+@@ -2246,7 +2243,6 @@ i915_gem_object_get_pages(struct drm_gem
+ struct address_space *mapping;
+ struct inode *inode;
+ struct page *page;
+- int ret;
+
+ if (obj_priv->pages_refcount++ != 0)
+ return 0;
+@@ -2269,11 +2265,9 @@ i915_gem_object_get_pages(struct drm_gem
+ mapping_gfp_mask (mapping) |
+ __GFP_COLD |
+ gfpmask);
+- if (IS_ERR(page)) {
+- ret = PTR_ERR(page);
+- i915_gem_object_put_pages(obj);
+- return ret;
+- }
++ if (IS_ERR(page))
++ goto err_pages;
++
+ obj_priv->pages[i] = page;
+ }
+
+@@ -2281,6 +2275,15 @@ i915_gem_object_get_pages(struct drm_gem
+ i915_gem_object_do_bit_17_swizzle(obj);
+
+ return 0;
++
++err_pages:
++ while (i--)
++ page_cache_release(obj_priv->pages[i]);
++
++ drm_free_large(obj_priv->pages);
++ obj_priv->pages = NULL;
++ obj_priv->pages_refcount--;
++ return PTR_ERR(page);
+ }
+
+ static void i965_write_fence_reg(struct drm_i915_fence_reg *reg)
--- /dev/null
+From 4d7a5644e4adfafe76c2bd8ee168e3f3b5dae3a8 Mon Sep 17 00:00:00 2001
+From: Dean Nelson <dnelson@redhat.com>
+Date: Mon, 29 Mar 2010 22:03:00 +0200
+Subject: hwmon: (coretemp) Add missing newline to dev_warn() message
+
+From: Dean Nelson <dnelson@redhat.com>
+
+commit 4d7a5644e4adfafe76c2bd8ee168e3f3b5dae3a8 upstream.
+
+Add missing newline to dev_warn() message string. This is more of an issue
+with older kernels that don't automatically add a newline if it was missing
+from the end of the previous line.
+
+Signed-off-by: Dean Nelson <dnelson@redhat.com>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/coretemp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/hwmon/coretemp.c
++++ b/drivers/hwmon/coretemp.c
+@@ -228,7 +228,7 @@ static int __devinit adjust_tjmax(struct
+ if (err) {
+ dev_warn(dev,
+ "Unable to access MSR 0xEE, for Tjmax, left"
+- " at default");
++ " at default\n");
+ } else if (eax & 0x40000000) {
+ tjmax = tjmax_ee;
+ }
--- /dev/null
+From ef1691504c83ba3eb636c0cfd3ed33f7a6d0b4ee Mon Sep 17 00:00:00 2001
+From: Patrick McHardy <kaber@trash.net>
+Date: Mon, 22 Mar 2010 18:25:20 +0100
+Subject: netfilter: xt_recent: fix regression in rules using a zero hit_count
+
+From: Patrick McHardy <kaber@trash.net>
+
+commit ef1691504c83ba3eb636c0cfd3ed33f7a6d0b4ee upstream.
+
+Commit 8ccb92ad (netfilter: xt_recent: fix false match) fixed supposedly
+false matches in rules using a zero hit_count. As it turns out there is
+nothing false about these matches and people are actually using entries
+with a hit_count of zero to make rules dependant on addresses inserted
+manually through /proc.
+
+Since this slipped past the eyes of three reviewers, instead of
+reverting the commit in question, this patch explicitly checks
+for a hit_count of zero to make the intentions more clear.
+
+Reported-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
+Tested-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
+Signed-off-by: Patrick McHardy <kaber@trash.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/netfilter/xt_recent.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/netfilter/xt_recent.c
++++ b/net/netfilter/xt_recent.c
+@@ -260,7 +260,7 @@ recent_mt(const struct sk_buff *skb, con
+ for (i = 0; i < e->nstamps; i++) {
+ if (info->seconds && time_after(time, e->stamps[i]))
+ continue;
+- if (info->hit_count && ++hits >= info->hit_count) {
++ if (!info->hit_count || ++hits >= info->hit_count) {
+ ret = !ret;
+ break;
+ }
ath9k-fix-bug_on-triggered-by-pae-frames.patch
cpuset-fix-the-problem-that-cpuset_mem_spread_node-returns-an-offline-node.patch
softlockup-stop-spurious-softlockup-messages-due-to-overflow.patch
+drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch
+netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch
+x86-fix-placement-of-fix_ohci1394_base.patch
+x86-amd-restrict-usage-of-c1e_idle.patch
+hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch
+alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch
+alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch
+alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch
--- /dev/null
+From 035a02c1e1de31888e8b6adac0ff667971ac04db Mon Sep 17 00:00:00 2001
+From: Andreas Herrmann <andreas.herrmann3@amd.com>
+Date: Fri, 19 Mar 2010 12:09:22 +0100
+Subject: x86, amd: Restrict usage of c1e_idle()
+
+From: Andreas Herrmann <andreas.herrmann3@amd.com>
+
+commit 035a02c1e1de31888e8b6adac0ff667971ac04db upstream.
+
+Currently c1e_idle returns true for all CPUs greater than or equal to
+family 0xf model 0x40. This covers too many CPUs.
+
+Meanwhile a respective erratum for the underlying problem was filed
+(#400). This patch adds the logic to check whether erratum #400
+applies to a given CPU.
+Especially for CPUs where SMI/HW triggered C1e is not supported,
+c1e_idle() doesn't need to be used. We can check this by looking at
+the respective OSVW bit for erratum #400.
+
+Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
+LKML-Reference: <20100319110922.GA19614@alberich.amd.com>
+Signed-off-by: H. Peter Anvin <hpa@zytor.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/include/asm/msr-index.h | 2 ++
+ arch/x86/kernel/process.c | 32 ++++++++++++++++++++++++--------
+ 2 files changed, 26 insertions(+), 8 deletions(-)
+
+--- a/arch/x86/include/asm/msr-index.h
++++ b/arch/x86/include/asm/msr-index.h
+@@ -104,6 +104,8 @@
+ #define MSR_AMD64_PATCH_LEVEL 0x0000008b
+ #define MSR_AMD64_NB_CFG 0xc001001f
+ #define MSR_AMD64_PATCH_LOADER 0xc0010020
++#define MSR_AMD64_OSVW_ID_LENGTH 0xc0010140
++#define MSR_AMD64_OSVW_STATUS 0xc0010141
+ #define MSR_AMD64_IBSFETCHCTL 0xc0011030
+ #define MSR_AMD64_IBSFETCHLINAD 0xc0011031
+ #define MSR_AMD64_IBSFETCHPHYSAD 0xc0011032
+--- a/arch/x86/kernel/process.c
++++ b/arch/x86/kernel/process.c
+@@ -439,21 +439,37 @@ static int __cpuinit mwait_usable(const
+ }
+
+ /*
+- * Check for AMD CPUs, which have potentially C1E support
++ * Check for AMD CPUs, where APIC timer interrupt does not wake up CPU from C1e.
++ * For more information see
++ * - Erratum #400 for NPT family 0xf and family 0x10 CPUs
++ * - Erratum #365 for family 0x11 (not affected because C1e not in use)
+ */
+ static int __cpuinit check_c1e_idle(const struct cpuinfo_x86 *c)
+ {
++ u64 val;
+ if (c->x86_vendor != X86_VENDOR_AMD)
+- return 0;
+-
+- if (c->x86 < 0x0F)
+- return 0;
++ goto no_c1e_idle;
+
+ /* Family 0x0f models < rev F do not have C1E */
+- if (c->x86 == 0x0f && c->x86_model < 0x40)
+- return 0;
++ if (c->x86 == 0x0F && c->x86_model >= 0x40)
++ return 1;
++
++ if (c->x86 == 0x10) {
++ /*
++ * check OSVW bit for CPUs that are not affected
++ * by erratum #400
++ */
++ rdmsrl(MSR_AMD64_OSVW_ID_LENGTH, val);
++ if (val >= 2) {
++ rdmsrl(MSR_AMD64_OSVW_STATUS, val);
++ if (!(val & BIT(1)))
++ goto no_c1e_idle;
++ }
++ return 1;
++ }
+
+- return 1;
++no_c1e_idle:
++ return 0;
+ }
+
+ static cpumask_var_t c1e_mask;
--- /dev/null
+From ff30a0543e9a6cd732582063e7cae951cdb7acf2 Mon Sep 17 00:00:00 2001
+From: Jan Beulich <JBeulich@novell.com>
+Date: Mon, 15 Mar 2010 10:11:15 +0000
+Subject: x86: Fix placement of FIX_OHCI1394_BASE
+
+From: Jan Beulich <JBeulich@novell.com>
+
+commit ff30a0543e9a6cd732582063e7cae951cdb7acf2 upstream.
+
+Ever for 32-bit with sufficiently high NR_CPUS, and starting
+with commit 789d03f584484af85dbdc64935270c8e45f36ef7 also for
+64-bit, the statically allocated early fixmap page tables were
+not covering FIX_OHCI1394_BASE, leading to a boot time crash
+when "ohci1394_dma=early" was used. Despite this entry not being
+a permanently used one, it needs to be moved into the permanent
+range since it has to be close to FIX_DBGP_BASE and
+FIX_EARLYCON_MEM_BASE.
+
+Reported-bisected-and-tested-by: Justin P. Mattock <justinmattock@gmail.com>
+Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=14487
+Signed-off-by: Jan Beulich <jbeulich@novell.com>
+LKML-Reference: <4B9E15D30200007800034D23@vpn.id2.novell.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/include/asm/fixmap.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/include/asm/fixmap.h
++++ b/arch/x86/include/asm/fixmap.h
+@@ -82,6 +82,9 @@ enum fixed_addresses {
+ #endif
+ FIX_DBGP_BASE,
+ FIX_EARLYCON_MEM_BASE,
++#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
++ FIX_OHCI1394_BASE,
++#endif
+ #ifdef CONFIG_X86_LOCAL_APIC
+ FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
+ #endif
+@@ -126,9 +129,6 @@ enum fixed_addresses {
+ FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
+ (__end_of_permanent_fixed_addresses & 255),
+ FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
+-#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
+- FIX_OHCI1394_BASE,
+-#endif
+ #ifdef CONFIG_X86_32
+ FIX_WP_TEST,
+ #endif