Re: [crash, bisected] I2C, kobject (ffff81003e8c4160): tried toinit an initialized object

From: Ingo Molnar
Date: Thu Jul 17 2008 - 05:37:31 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> Jean,
>
> -tip testing found another (similar) i2c crash with latest -git, on a
> Core2Duo laptop:
>
> calling nforce2_init+0x0/0x1b
> initcall nforce2_init+0x0/0x1b returned 0 after 0 msecs
> calling nforce2_s4985_init+0x0/0x275
> BUG: unable to handle kernel NULL pointer dereference at 0000000c
> IP: [<c04af2cf>] i2c_smbus_xfer+0x27/0x3f0
> *pdpt = 00000000009cb001 *pde = 0000000000000000
> Oops: 0000 [#1] SMP

turning off I2C_NFORCE2_S4985 makes the system boot up fine. Workaround
patch below.

Ingo

------------------->
commit 15e524060d13e8fac3fe2fb6c6519be6de9ab8a8
Author: Ingo Molnar <mingo@xxxxxxx>
Date: Thu Jul 17 11:29:44 2008 +0200

i2c workaround: turn off I2C_NFORCE2_S4985 for now

I2C_NFORCE2_S4985 causes this crash:

calling nforce2_init+0x0/0x1b
initcall nforce2_init+0x0/0x1b returned 0 after 0 msecs
calling nforce2_s4985_init+0x0/0x275
BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [<c04af2cf>] i2c_smbus_xfer+0x27/0x3f0
*pdpt = 00000000009cb001 *pde = 0000000000000000
Oops: 0000 [#1] SMP

Pid: 1, comm: swapper Not tainted (2.6.26-tip #3033)
EIP: 0060:[<c04af2cf>] EFLAGS: 00010246 CPU: 0
EIP is at i2c_smbus_xfer+0x27/0x3f0
EAX: 00000003 EBX: 00000000 ECX: 00000000 EDX: 00000018
ESI: 00000003 EDI: 00000018 EBP: f7c6ff24 ESP: f7c6fea8
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 1, ti=f7c6e000 task=f7c70000 task.ti=f7c6e000)
Stack: 00000035 00030000 00000000 c0104237 00000000 00000046 00000046 00000000
00000000 f7c6ff50 c09debf0 0001007b fffe007b 000000d8 ffffffef c01213cb
00000060 00000286 f7c6ff1c 00000004 00000286 00000246 f7c6ff24 c014673a
Call Trace:
[<c0104237>] ? common_interrupt+0x23/0x28
[<c01213cb>] ? vprintk+0x290/0x29b
[<c014673a>] ? ftrace_record_ip+0x19f/0x1e6
[<c01a1385>] ? sysfs_add_file_mode+0x57/0x76
[<c099632f>] ? nforce2_s4985_init+0x2d/0x275
[<c013319c>] ? ktime_get_ts+0x51/0x55
[<c01331b8>] ? ktime_get+0x18/0x34
[<c0971887>] ? kernel_init+0x11f/0x24a
[<c0996302>] ? nforce2_s4985_init+0x0/0x275
[<c011cbe8>] ? schedule_tail+0x1e/0x4d
[<c01037aa>] ? ret_from_fork+0x6/0x1c
[<c0971768>] ? kernel_init+0x0/0x24a
[<c0971768>] ? kernel_init+0x0/0x24a
[<c0104477>] ? kernel_thread_helper+0x7/0x10
=======================
Code: 5e 5f 5d c3 55 89 e5 57 56 53 83 ec 70 e8 ca 51 c5 ff 89 45 8c 8b 75 0c 83 e1 14 8a 45 08 89 d7 8b 5d 8c 88 45 8b 89 f0 88 45 8a <8b> 43 0c 83 78 04 00 0f b7 c1 89 45 84 74 3a 83 c3 20 89 d8 e8
EIP: [<c04af2cf>] i2c_smbus_xfer+0x27/0x3f0 SS:ESP 0068:f7c6fea8
Kernel panic - not syncing: Fatal exception
Pid: 1, comm: swapper Tainted: G D 2.6.26-tip #3033
[<c01208ee>] panic+0x44/0xeb
[<c0104c8d>] die+0x123/0x13a
[<c0110f38>] do_page_fault+0x632/0x6f2
[<c0110906>] ? do_page_fault+0x0/0x6f2
[<c06585ca>] error_code+0x72/0x78
[<c04af2cf>] ? i2c_smbus_xfer+0x27/0x3f0
[<c0104237>] ? common_interrupt+0x23/0x28
[<c01213cb>] ? vprintk+0x290/0x29b
[<c014673a>] ? ftrace_record_ip+0x19f/0x1e6
[<c01a1385>] ? sysfs_add_file_mode+0x57/0x76
[<c099632f>] nforce2_s4985_init+0x2d/0x275
[<c013319c>] ? ktime_get_ts+0x51/0x55
[<c01331b8>] ? ktime_get+0x18/0x34
[<c0971887>] kernel_init+0x11f/0x24a
[<c0996302>] ? nforce2_s4985_init+0x0/0x275
[<c011cbe8>] ? schedule_tail+0x1e/0x4d
[<c01037aa>] ? ret_from_fork+0x6/0x1c
[<c0971768>] ? kernel_init+0x0/0x24a
[<c0971768>] ? kernel_init+0x0/0x24a
[<c0104477>] kernel_thread_helper+0x7/0x10
=======================

with this config:

http://redhat.com/~mingo/misc/config-Thu_Jul_17_10_47_42_CEST_2008.bad

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
drivers/i2c/busses/Kconfig | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 6ee997b..2213fab 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -149,6 +149,9 @@ config I2C_NFORCE2
config I2C_NFORCE2_S4985
tristate "SMBus multiplexing on the Tyan S4985"
depends on I2C_NFORCE2 && EXPERIMENTAL
+ # broke a T60 Core2Duo with:
+ # http://redhat.com/~mingo/misc/config-Thu_Jul_17_10_47_42_CEST_2008.bad
+ depends on 0
help
Enabling this option will add specific SMBus support for the Tyan
S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/