From: Greg Kroah-Hartman Date: Mon, 29 Mar 2010 22:47:12 +0000 (-0700) Subject: .32 patches X-Git-Tag: v2.6.27.46~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=694facec407d3b17bc98ff982dbce0d8f6ea0df5;p=thirdparty%2Fkernel%2Fstable-queue.git .32 patches --- diff --git a/queue-2.6.32/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch b/queue-2.6.32/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch new file mode 100644 index 00000000000..602f00ac28f --- /dev/null +++ b/queue-2.6.32/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch @@ -0,0 +1,33 @@ +From e1f7f02b45cf33a774d56e505ce1718af9392f5e Mon Sep 17 00:00:00 2001 +From: Daniel T Chen +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 + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */ diff --git a/queue-2.6.32/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch b/queue-2.6.32/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch new file mode 100644 index 00000000000..1327bf1534c --- /dev/null +++ b/queue-2.6.32/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch @@ -0,0 +1,35 @@ +From 5cd165e7057020884e430941c24454d3df9a799d Mon Sep 17 00:00:00 2001 +From: Daniel Chen +Date: Sun, 28 Mar 2010 13:32:34 -0700 +Subject: ALSA: ac97: Add Toshiba P500 to ac97 jack sense blacklist + +From: Daniel Chen + +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 +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */ + }; diff --git a/queue-2.6.32/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch b/queue-2.6.32/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch new file mode 100644 index 00000000000..ca1be34b5de --- /dev/null +++ b/queue-2.6.32/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch @@ -0,0 +1,34 @@ +From 9ec8ddad59fadd8021adfea4cb716a49b0e232e9 Mon Sep 17 00:00:00 2001 +From: Daniel T Chen +Date: Sun, 28 Mar 2010 02:34:40 -0400 +Subject: ALSA: hda: Use LPIB for ga-ma770-ud3 board + +From: Daniel T Chen + +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 +Tested-by: Carlos Laviola +Signed-off-by: Daniel T Chen +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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), diff --git a/queue-2.6.32/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch b/queue-2.6.32/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch new file mode 100644 index 00000000000..2ddc1353124 --- /dev/null +++ b/queue-2.6.32/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch @@ -0,0 +1,85 @@ +From 1f2b10131f83f7caa67bf1273cec126b4283015d Mon Sep 17 00:00:00 2001 +From: Chris Wilson +Date: Fri, 12 Mar 2010 19:52:55 +0000 +Subject: drm/i915: Avoid NULL deref in get_pages() unwind after error. + +From: Chris Wilson + +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: [] i915_gem_object_save_bit_17_swizzle+0x5b/0xc0 [i915] +Call Trace: +[] ? i915_gem_object_put_pages+0x125/0x150 [i915] +[] ? i915_gem_object_get_pages+0xf1/0x110 [i915] +[] ? i915_gem_object_bind_to_gtt+0xb8/0x2a0 [i915] +[] ? drm_mm_get_block_generic+0x4d/0x180 +[] ? i915_gem_mmap_gtt_ioctl+0x16d/0x240 [i915] +[] ? i915_gem_madvise_ioctl+0x86/0x120 [i915] + +Signed-off-by: Chris Wilson +Reported-by: maciej.rutecki@gmail.com +Cc: stable@kernel.org +Reviewed-by: Eric Anholt +Signed-off-by: Eric Anholt +Signed-off-by: Greg Kroah-Hartman + +--- + 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) diff --git a/queue-2.6.32/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch b/queue-2.6.32/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch new file mode 100644 index 00000000000..4c77fc7f374 --- /dev/null +++ b/queue-2.6.32/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch @@ -0,0 +1,32 @@ +From 4d7a5644e4adfafe76c2bd8ee168e3f3b5dae3a8 Mon Sep 17 00:00:00 2001 +From: Dean Nelson +Date: Mon, 29 Mar 2010 22:03:00 +0200 +Subject: hwmon: (coretemp) Add missing newline to dev_warn() message + +From: Dean Nelson + +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 +Signed-off-by: Jean Delvare +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } diff --git a/queue-2.6.32/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch b/queue-2.6.32/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch new file mode 100644 index 00000000000..dfe6e3930be --- /dev/null +++ b/queue-2.6.32/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch @@ -0,0 +1,39 @@ +From ef1691504c83ba3eb636c0cfd3ed33f7a6d0b4ee Mon Sep 17 00:00:00 2001 +From: Patrick McHardy +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 + +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 +Tested-by: Thomas Jarosch +Signed-off-by: Patrick McHardy +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } diff --git a/queue-2.6.32/series b/queue-2.6.32/series index 7090ee840fe..7ebad0b7c03 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -90,3 +90,11 @@ rt2860sta-fix-argument-to-linux_pci_unmap_single.patch 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 diff --git a/queue-2.6.32/x86-amd-restrict-usage-of-c1e_idle.patch b/queue-2.6.32/x86-amd-restrict-usage-of-c1e_idle.patch new file mode 100644 index 00000000000..3cefe8c4e25 --- /dev/null +++ b/queue-2.6.32/x86-amd-restrict-usage-of-c1e_idle.patch @@ -0,0 +1,88 @@ +From 035a02c1e1de31888e8b6adac0ff667971ac04db Mon Sep 17 00:00:00 2001 +From: Andreas Herrmann +Date: Fri, 19 Mar 2010 12:09:22 +0100 +Subject: x86, amd: Restrict usage of c1e_idle() + +From: Andreas Herrmann + +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 +LKML-Reference: <20100319110922.GA19614@alberich.amd.com> +Signed-off-by: H. Peter Anvin +Signed-off-by: Greg Kroah-Hartman + +--- + 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; diff --git a/queue-2.6.32/x86-fix-placement-of-fix_ohci1394_base.patch b/queue-2.6.32/x86-fix-placement-of-fix_ohci1394_base.patch new file mode 100644 index 00000000000..ab21075431b --- /dev/null +++ b/queue-2.6.32/x86-fix-placement-of-fix_ohci1394_base.patch @@ -0,0 +1,51 @@ +From ff30a0543e9a6cd732582063e7cae951cdb7acf2 Mon Sep 17 00:00:00 2001 +From: Jan Beulich +Date: Mon, 15 Mar 2010 10:11:15 +0000 +Subject: x86: Fix placement of FIX_OHCI1394_BASE + +From: Jan Beulich + +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 +Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=14487 +Signed-off-by: Jan Beulich +LKML-Reference: <4B9E15D30200007800034D23@vpn.id2.novell.com> +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + 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