]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more .25 patches added
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 19 May 2008 17:25:28 +0000 (10:25 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 19 May 2008 17:25:28 +0000 (10:25 -0700)
queue-2.6.25/i2c-max6875-really-prevent-24rf08-corruption.patch [new file with mode: 0644]
queue-2.6.25/i2c-nforce2-disable-the-second-smbus-channel-on-the-dfi-lanparty-nf4-expert.patch [new file with mode: 0644]
queue-2.6.25/series
queue-2.6.25/x86-user_regset_view-table-fix-for-ia32-on-64-bit.patch [new file with mode: 0644]

diff --git a/queue-2.6.25/i2c-max6875-really-prevent-24rf08-corruption.patch b/queue-2.6.25/i2c-max6875-really-prevent-24rf08-corruption.patch
new file mode 100644 (file)
index 0000000..5c553dc
--- /dev/null
@@ -0,0 +1,37 @@
+From khali@linux-fr.org  Mon May 19 10:20:33 2008
+From: Jean Delvare <khali@linux-fr.org>
+Date: Mon, 19 May 2008 11:14:02 +0200
+Subject: i2c/max6875: Really prevent 24RF08 corruption
+To: stable@kernel.org
+Cc: Ben Gardner <bgardner@wabtec.com>
+Message-ID: <20080519111402.4aec493b@hyperion.delvare>
+
+commit 70455e790391dac85d9b483a9e286a40df1ecc7f in upstream
+
+i2c-core takes care of the possible corruption of 24RF08 chips for
+quite some times, so device drivers no longer need to do it. And they
+really should not, as applying the prevention twice voids it.
+
+I thought that I had fixed all drivers long ago but apparently I had
+missed that one.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Cc: Ben Gardner <bgardner@wabtec.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/i2c/chips/max6875.c |    3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/drivers/i2c/chips/max6875.c
++++ b/drivers/i2c/chips/max6875.c
+@@ -207,9 +207,6 @@ static int max6875_detect(struct i2c_ada
+       fake_client->flags = 0;
+       strlcpy(fake_client->name, "max6875 subclient", I2C_NAME_SIZE);
+-      /* Prevent 24RF08 corruption (in case of user error) */
+-      i2c_smbus_write_quick(real_client, 0);
+-
+       if ((err = i2c_attach_client(real_client)) != 0)
+               goto exit_kfree2;
diff --git a/queue-2.6.25/i2c-nforce2-disable-the-second-smbus-channel-on-the-dfi-lanparty-nf4-expert.patch b/queue-2.6.25/i2c-nforce2-disable-the-second-smbus-channel-on-the-dfi-lanparty-nf4-expert.patch
new file mode 100644 (file)
index 0000000..46a08f1
--- /dev/null
@@ -0,0 +1,76 @@
+From khali@linux-fr.org  Mon May 19 10:20:06 2008
+From: Jean Delvare <khali@linux-fr.org>
+Date: Mon, 19 May 2008 11:12:07 +0200
+Subject: i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 Expert
+To: stable@kernel.org
+Message-ID: <20080519111207.61fe8ee9@hyperion.delvare>
+
+commit 08851d6eb4eeb0894f4d095dfdf8ab61c435ad57 in upstream
+
+There is a strange chip at 0x2e on the second SMBus channel of the
+DFI Lanparty NF4 Expert motherboard. Accessing the chip reboots the
+system. As there's nothing interesting on this SMBus channel, the
+easiest and safest thing to do is to disable it on that board.
+
+This is a better fix to bug #5889 than the it87 driver update that was
+done originally:
+http://bugzilla.kernel.org/show_bug.cgi?id=5889
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/i2c/busses/i2c-nforce2.c |   28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+--- a/drivers/i2c/busses/i2c-nforce2.c
++++ b/drivers/i2c/busses/i2c-nforce2.c
+@@ -50,6 +50,7 @@
+ #include <linux/init.h>
+ #include <linux/i2c.h>
+ #include <linux/delay.h>
++#include <linux/dmi.h>
+ #include <asm/io.h>
+ MODULE_LICENSE("GPL");
+@@ -109,6 +110,18 @@ struct nforce2_smbus {
+ /* Misc definitions */
+ #define MAX_TIMEOUT   100
++/* We disable the second SMBus channel on these boards */
++static struct dmi_system_id __devinitdata nforce2_dmi_blacklist2[] = {
++      {
++              .ident = "DFI Lanparty NF4 Expert",
++              .matches = {
++                      DMI_MATCH(DMI_BOARD_VENDOR, "DFI Corp,LTD"),
++                      DMI_MATCH(DMI_BOARD_NAME, "LP UT NF4 Expert"),
++              },
++      },
++      { }
++};
++
+ static struct pci_driver nforce2_driver;
+ static void nforce2_abort(struct i2c_adapter *adap)
+@@ -367,10 +380,17 @@ static int __devinit nforce2_probe(struc
+               smbuses[0].base = 0;    /* to have a check value */
+       }
+       /* SMBus adapter 2 */
+-      res2 = nforce2_probe_smb(dev, 5, NFORCE_PCI_SMB2, &smbuses[1], "SMB2");
+-      if (res2 < 0) {
+-              dev_err(&dev->dev, "Error probing SMB2.\n");
+-              smbuses[1].base = 0;    /* to have a check value */
++      if (dmi_check_system(nforce2_dmi_blacklist2)) {
++              dev_err(&dev->dev, "Disabling SMB2 for safety reasons.\n");
++              res2 = -EPERM;
++              smbuses[1].base = 0;
++      } else {
++              res2 = nforce2_probe_smb(dev, 5, NFORCE_PCI_SMB2, &smbuses[1],
++                                       "SMB2");
++              if (res2 < 0) {
++                      dev_err(&dev->dev, "Error probing SMB2.\n");
++                      smbuses[1].base = 0;    /* to have a check value */
++              }
+       }
+       if ((res1 < 0) && (res2 < 0)) {
+               /* we did not find even one of the SMBuses, so we give up */
index bb6184cd5ed5d073d954ae7873ee9ec306730807..bd50505ce698d87663d831e01bfbd25f57acef07 100644 (file)
@@ -10,3 +10,6 @@ ext3-4-fix-uninitialized-bs-in-ext3-4_xattr_set_handle.patch
 libata-force-hardreset-if-link-is-in-powersave-mode.patch
 memory_hotplug-always-initialize-pageblock-bitmap.patch
 usb-fix-build-errors-in-ohci-omap.c-and-ohci-sm501.c.patch
+i2c-nforce2-disable-the-second-smbus-channel-on-the-dfi-lanparty-nf4-expert.patch
+i2c-max6875-really-prevent-24rf08-corruption.patch
+x86-user_regset_view-table-fix-for-ia32-on-64-bit.patch
diff --git a/queue-2.6.25/x86-user_regset_view-table-fix-for-ia32-on-64-bit.patch b/queue-2.6.25/x86-user_regset_view-table-fix-for-ia32-on-64-bit.patch
new file mode 100644 (file)
index 0000000..b11773e
--- /dev/null
@@ -0,0 +1,50 @@
+From 1f465f4e475454b8bb590846c50a9d16e8046f3d Mon Sep 17 00:00:00 2001
+From: Roland McGrath <roland@redhat.com>
+Date: Fri, 9 May 2008 15:43:44 -0700
+Subject: x86: user_regset_view table fix for ia32 on 64-bit
+
+From: Roland McGrath <roland@redhat.com>
+
+commit 1f465f4e475454b8bb590846c50a9d16e8046f3d upstream
+
+The user_regset_view table for the 32-bit regsets on the 64-bit build had
+the wrong sizes for the FP regsets.  This bug had no user-visible effect
+(just on kernel modules using the user_regset interfaces and the like).
+But the fix is trivial and risk-free.
+
+Signed-off-by: Roland McGrath <roland@redhat.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/ptrace.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kernel/ptrace.c
++++ b/arch/x86/kernel/ptrace.c
+@@ -1382,6 +1382,9 @@ static const struct user_regset_view use
+ #define genregs32_get         genregs_get
+ #define genregs32_set         genregs_set
++#define user_i387_ia32_struct user_i387_struct
++#define user32_fxsr_struct    user_fxsr_struct
++
+ #endif        /* CONFIG_X86_64 */
+ #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
+@@ -1394,13 +1397,13 @@ static const struct user_regset x86_32_r
+       },
+       [REGSET_FP] = {
+               .core_note_type = NT_PRFPREG,
+-              .n = sizeof(struct user_i387_struct) / sizeof(u32),
++              .n = sizeof(struct user_i387_ia32_struct) / sizeof(u32),
+               .size = sizeof(u32), .align = sizeof(u32),
+               .active = fpregs_active, .get = fpregs_get, .set = fpregs_set
+       },
+       [REGSET_XFP] = {
+               .core_note_type = NT_PRXFPREG,
+-              .n = sizeof(struct user_i387_struct) / sizeof(u32),
++              .n = sizeof(struct user32_fxsr_struct) / sizeof(u32),
+               .size = sizeof(u32), .align = sizeof(u32),
+               .active = xfpregs_active, .get = xfpregs_get, .set = xfpregs_set
+       },