From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: [crash, bisected] I2C, kobject (ffff81003e8c4160): tried to init an initialized object Date: Thu, 17 Jul 2008 11:33:30 +0200 Message-ID: <20080717093329.GA20032@elte.hu> References: <20080714224945.629446fa@hyperion.delvare> <20080716082352.GA30483@elte.hu> <20080716110702.3ca61eb2@hyperion.delvare> <20080716120801.3e9b4c80@hyperion.delvare> <20080716141826.1d88d05e@hyperion.delvare> <20080717092655.GA6115@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20080717092655.GA6115@elte.hu> Sender: linux-kernel-owner@vger.kernel.org To: Jean Delvare Cc: john stultz , Greg KH , LKML , Linux I2C , Ulrich Drepper List-Id: linux-i2c@vger.kernel.org * Ingo Molnar 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: [] 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 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: [] 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:[] 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: [] ? common_interrupt+0x23/0x28 [] ? vprintk+0x290/0x29b [] ? ftrace_record_ip+0x19f/0x1e6 [] ? sysfs_add_file_mode+0x57/0x76 [] ? nforce2_s4985_init+0x2d/0x275 [] ? ktime_get_ts+0x51/0x55 [] ? ktime_get+0x18/0x34 [] ? kernel_init+0x11f/0x24a [] ? nforce2_s4985_init+0x0/0x275 [] ? schedule_tail+0x1e/0x4d [] ? ret_from_fork+0x6/0x1c [] ? kernel_init+0x0/0x24a [] ? kernel_init+0x0/0x24a [] ? 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: [] 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 [] panic+0x44/0xeb [] die+0x123/0x13a [] do_page_fault+0x632/0x6f2 [] ? do_page_fault+0x0/0x6f2 [] error_code+0x72/0x78 [] ? i2c_smbus_xfer+0x27/0x3f0 [] ? common_interrupt+0x23/0x28 [] ? vprintk+0x290/0x29b [] ? ftrace_record_ip+0x19f/0x1e6 [] ? sysfs_add_file_mode+0x57/0x76 [] nforce2_s4985_init+0x2d/0x275 [] ? ktime_get_ts+0x51/0x55 [] ? ktime_get+0x18/0x34 [] kernel_init+0x11f/0x24a [] ? nforce2_s4985_init+0x0/0x275 [] ? schedule_tail+0x1e/0x4d [] ? ret_from_fork+0x6/0x1c [] ? kernel_init+0x0/0x24a [] ? kernel_init+0x0/0x24a [] 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 --- 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