]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.33 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Mar 2010 22:44:57 +0000 (15:44 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Mar 2010 22:44:57 +0000 (15:44 -0700)
queue-2.6.33/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch [new file with mode: 0644]
queue-2.6.33/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch [new file with mode: 0644]
queue-2.6.33/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch [new file with mode: 0644]
queue-2.6.33/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch [new file with mode: 0644]
queue-2.6.33/drm-i915-fix-small-leak-on-overlay-error-path.patch [new file with mode: 0644]
queue-2.6.33/drm-nouveau-report-unknown-connector-state-if-lid-closed.patch [new file with mode: 0644]
queue-2.6.33/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch [new file with mode: 0644]
queue-2.6.33/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch [new file with mode: 0644]
queue-2.6.33/series
queue-2.6.33/x86-amd-restrict-usage-of-c1e_idle.patch [new file with mode: 0644]
queue-2.6.33/x86-fix-placement-of-fix_ohci1394_base.patch [new file with mode: 0644]

diff --git a/queue-2.6.33/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch b/queue-2.6.33/alsa-ac97-add-ibm-thinkpad-r40e-to-headphone-line-jack-sense-blacklist.patch
new file mode 100644 (file)
index 0000000..602f00a
--- /dev/null
@@ -0,0 +1,33 @@
+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 */
diff --git a/queue-2.6.33/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch b/queue-2.6.33/alsa-ac97-add-toshiba-p500-to-ac97-jack-sense-blacklist.patch
new file mode 100644 (file)
index 0000000..1327bf1
--- /dev/null
@@ -0,0 +1,35 @@
+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 */
+ };
diff --git a/queue-2.6.33/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch b/queue-2.6.33/alsa-hda-use-lpib-for-ga-ma770-ud3-board.patch
new file mode 100644 (file)
index 0000000..487874d
--- /dev/null
@@ -0,0 +1,34 @@
+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
+@@ -2265,6 +2265,7 @@ static struct snd_pci_quirk position_fix
+       SND_PCI_QUIRK(0x103c, 0x306d, "HP dv3", POS_FIX_LPIB),
+       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(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.33/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch b/queue-2.6.33/drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch
new file mode 100644 (file)
index 0000000..ecb727b
--- /dev/null
@@ -0,0 +1,85 @@
+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]);
+@@ -2228,7 +2225,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;
+@@ -2251,11 +2247,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;
+       }
+@@ -2263,6 +2257,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.33/drm-i915-fix-small-leak-on-overlay-error-path.patch b/queue-2.6.33/drm-i915-fix-small-leak-on-overlay-error-path.patch
new file mode 100644 (file)
index 0000000..8f50769
--- /dev/null
@@ -0,0 +1,53 @@
+From 915a428e43acfd05e4ffeaf40549b0cf163eebe2 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <error27@gmail.com>
+Date: Sat, 6 Mar 2010 14:05:39 +0300
+Subject: drm/i915: fix small leak on overlay error path
+
+From: Dan Carpenter <error27@gmail.com>
+
+commit 915a428e43acfd05e4ffeaf40549b0cf163eebe2 upstream.
+
+We should free "params" before returning.
+
+Signed-off-by: Dan Carpenter <error27@gmail.com>
+Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/i915/intel_overlay.c |   13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_overlay.c
++++ b/drivers/gpu/drm/i915/intel_overlay.c
+@@ -1083,14 +1083,18 @@ int intel_overlay_put_image(struct drm_d
+       drmmode_obj = drm_mode_object_find(dev, put_image_rec->crtc_id,
+                         DRM_MODE_OBJECT_CRTC);
+-      if (!drmmode_obj)
+-              return -ENOENT;
++      if (!drmmode_obj) {
++              ret = -ENOENT;
++              goto out_free;
++      }
+       crtc = to_intel_crtc(obj_to_crtc(drmmode_obj));
+       new_bo = drm_gem_object_lookup(dev, file_priv,
+                       put_image_rec->bo_handle);
+-      if (!new_bo)
+-              return -ENOENT;
++      if (!new_bo) {
++              ret = -ENOENT;
++              goto out_free;
++      }
+       mutex_lock(&dev->mode_config.mutex);
+       mutex_lock(&dev->struct_mutex);
+@@ -1180,6 +1184,7 @@ out_unlock:
+       mutex_unlock(&dev->struct_mutex);
+       mutex_unlock(&dev->mode_config.mutex);
+       drm_gem_object_unreference(new_bo);
++out_free:
+       kfree(params);
+       return ret;
diff --git a/queue-2.6.33/drm-nouveau-report-unknown-connector-state-if-lid-closed.patch b/queue-2.6.33/drm-nouveau-report-unknown-connector-state-if-lid-closed.patch
new file mode 100644 (file)
index 0000000..117d154
--- /dev/null
@@ -0,0 +1,40 @@
+From b30083bdb990bcc2829fce83d871a86059ff4fc1 Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs@redhat.com>
+Date: Thu, 25 Feb 2010 12:12:09 +1000
+Subject: drm/nouveau: report unknown connector state if lid closed
+
+From: Ben Skeggs <bskeggs@redhat.com>
+
+commit b30083bdb990bcc2829fce83d871a86059ff4fc1 upstream.
+
+This is in preference to disconnected.  If there's no other outputs
+connected this will cause LVDS to be programmed even with the lid
+closed rather than having X fail to start because of no available
+outputs.
+
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/nouveau/nouveau_connector.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
++++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
+@@ -239,12 +239,14 @@ nouveau_connector_detect(struct drm_conn
+       if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
+               nv_encoder = find_encoder_by_type(connector, OUTPUT_LVDS);
+       if (nv_encoder && nv_connector->native_mode) {
++              unsigned status = connector_status_connected;
++
+ #ifdef CONFIG_ACPI
+               if (!nouveau_ignorelid && !acpi_lid_open())
+-                      return connector_status_disconnected;
++                      status = connector_status_unknown;
+ #endif
+               nouveau_connector_set_encoder(connector, nv_encoder);
+-              return connector_status_connected;
++              return status;
+       }
+       /* Cleanup the previous EDID block. */
diff --git a/queue-2.6.33/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch b/queue-2.6.33/hwmon-coretemp-add-missing-newline-to-dev_warn-message.patch
new file mode 100644 (file)
index 0000000..4c77fc7
--- /dev/null
@@ -0,0 +1,32 @@
+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;
+               }
diff --git a/queue-2.6.33/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch b/queue-2.6.33/netfilter-xt_recent-fix-regression-in-rules-using-a-zero-hit_count.patch
new file mode 100644 (file)
index 0000000..dfe6e39
--- /dev/null
@@ -0,0 +1,39 @@
+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;
+                       }
index 2227b6512bf3a72856de396716cf6e936bd82944..ce51961a988bec07270bd251474415255884da9b 100644 (file)
@@ -95,3 +95,13 @@ cpuset-fix-the-problem-that-cpuset_mem_spread_node-returns-an-offline-node.patch
 nilfs2-fix-hang-up-of-cleaner-after-log-writer-returned-with-error.patch
 genirq-prevent-oneshot-irq-thread-race.patch
 softlockup-stop-spurious-softlockup-messages-due-to-overflow.patch
+drm-i915-fix-small-leak-on-overlay-error-path.patch
+drm-i915-avoid-null-deref-in-get_pages-unwind-after-error.patch
+drm-nouveau-report-unknown-connector-state-if-lid-closed.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.33/x86-amd-restrict-usage-of-c1e_idle.patch b/queue-2.6.33/x86-amd-restrict-usage-of-c1e_idle.patch
new file mode 100644 (file)
index 0000000..e0e5151
--- /dev/null
@@ -0,0 +1,88 @@
+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
+@@ -105,6 +105,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
+@@ -519,21 +519,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.33/x86-fix-placement-of-fix_ohci1394_base.patch b/queue-2.6.33/x86-fix-placement-of-fix_ohci1394_base.patch
new file mode 100644 (file)
index 0000000..ab21075
--- /dev/null
@@ -0,0 +1,51 @@
+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