From: Greg Kroah-Hartman Date: Mon, 19 May 2008 17:25:28 +0000 (-0700) Subject: more .25 patches added X-Git-Tag: v2.6.25.5~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9db2acfcef923faae8df7a720341bb3e5221e228;p=thirdparty%2Fkernel%2Fstable-queue.git more .25 patches added --- 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 index 00000000000..5c553dc6f48 --- /dev/null +++ b/queue-2.6.25/i2c-max6875-really-prevent-24rf08-corruption.patch @@ -0,0 +1,37 @@ +From khali@linux-fr.org Mon May 19 10:20:33 2008 +From: Jean Delvare +Date: Mon, 19 May 2008 11:14:02 +0200 +Subject: i2c/max6875: Really prevent 24RF08 corruption +To: stable@kernel.org +Cc: Ben Gardner +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 +Cc: Ben Gardner +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..46a08f1007c --- /dev/null +++ b/queue-2.6.25/i2c-nforce2-disable-the-second-smbus-channel-on-the-dfi-lanparty-nf4-expert.patch @@ -0,0 +1,76 @@ +From khali@linux-fr.org Mon May 19 10:20:06 2008 +From: Jean Delvare +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + #include + #include ++#include + #include + + 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 */ diff --git a/queue-2.6.25/series b/queue-2.6.25/series index bb6184cd5ed..bd50505ce69 100644 --- a/queue-2.6.25/series +++ b/queue-2.6.25/series @@ -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 index 00000000000..b11773ea7c7 --- /dev/null +++ b/queue-2.6.25/x86-user_regset_view-table-fix-for-ia32-on-64-bit.patch @@ -0,0 +1,50 @@ +From 1f465f4e475454b8bb590846c50a9d16e8046f3d Mon Sep 17 00:00:00 2001 +From: Roland McGrath +Date: Fri, 9 May 2008 15:43:44 -0700 +Subject: x86: user_regset_view table fix for ia32 on 64-bit + +From: Roland McGrath + +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 +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + },