--- /dev/null
+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;
+
--- /dev/null
+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 */
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
--- /dev/null
+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
+ },