Hi All I am using the i2c-i801 bus driver for our own device driver. In my project, the SMB Alert signal is used to generate an interrupt (IRQ 11 for our ICH6 SMBus controller on my host). I call the function i2c_smbus_xfer() to do data transfers. I got error messages and my kernel hangs when this function is called in a tasklet handler function set by my interrupt handler. But there is no problem when calling this function outside the interrupt handler and its tasklet handler. Further debug messages show that the error messages occured during the call to function msleep(1) in i801_block_transaction(). Part of the error messages is shown below: BUG: scheduling while atomic: swapper/0x00000101/0 [<c032cedb>] (8) [<c0103c74>] (4) [<c0102266>] (4) [<c011ae66>] (28) [<c032d04d>] (20) [<c032da30>] (12) [<c011ba60>] (20) [<c011be4f>] (24) [<e003f631>] (8) [<e003fd6b>] (40) [<e002c07a>] (56) [<e003016c>] (60) [<c01354f6>] (44) [<c013570f>] (32) [<e0030ea3>] (20) [<e0030fbe>] (36) [<c0117a34>] (32) [<c01176e2>] (16) [<c011777f>] (28) [<c01177d6>] (12) [<c01178a9>] (8) [<c0103c6f>] (4) [<c01025ba>] (4) [<c01006e3>] (44) [<c0100668>] (20) [<c03d4756>] (8) BUG: scheduling from the idle thread! [<c032ce1d>] (8) [<c0103c74>] (8) [<c0102266>] (4) [<c011ae66>] (28) [<c032d04d>] (20) [<c032da30>] (12) [<c011ba60>] (20) [<c011be4f>] (24) [<e003f631>] (8) [<e003fd6b>] (40) [<e002c07a>] (56) [<e003016c>] (60) [<c01354f6>] (44) [<c013570f>] (32) [<e0030ea3>] (20) [<e0030fbe>] (36) [<c0117a34>] (32) [<c01176e2>] (16) [<c011777f>] (28) [<c01177d6>] (12) [<c01178a9>] (8) [<c0103c6f>] (4) [<c01025ba>] (4) [<c01006e3>] (44) [<c0100668>] (20) [<c03d4756>] (8) BUG: Unable to handle kernel NULL pointer dereference at virtual address 0000000 4 printing eip: c010e00b *pde = 00000000 Oops: 0000 [#1] PREEMPT Modules linked in: i2c_i801 fbd evdev i2c_core ehci_hcd uhci_hcd CPU: 0 EIP: 0060:[<c010e00b>] Not tainted VLI EFLAGS: 00010046 (2.6.10_dev-pc_target) eax: 00000000 ebx: c0375b20 ecx: 00000103 edx: c0375b20 esi: 00000000 edi: c033c854 ebp: c03d3d8c esp: c03d3d84 ds: 007b es: 007b ss: 0068 preempt: 00000104 Process swapper (pid: 0, threadinfo=c03d2000 task=c0375b20) Stack: c0375b20 84e79cbe c03d3da0 c010e389 c0375b20 00000000 c0375b20 c03d3de0 c032cd4c c0375b20 c03fc5c0 c0103c74 c0102266 001a1060 001a101a c03d2000 02e7eff2 87cf8cb0 00000501 c0375c7c c03d2000 c03d3df4 e0040223 c03d3dec Call Trace: [<c010e389>] (16) [<c032cd4c>] (20) [<c0103c74>] (12) [<c0102266>] (4) [<c032d04d>] (48) [<c032da30>] (12) [<c011ba60>] (20) [<c011be4f>] (24) [<e003f631>] (8) [<e003fd6b>] (40) [<e002c07a>] (56) [<e003016c>] (60) [<c01354f6>] (44) [<c013570f>] (32) [<e0030ea3>] (20) [<e0030fbe>] (36) [<c0117a34>] (32) [<c01176e2>] (16) [<c011777f>] (28) [<c01177d6>] (12) [<c01178a9>] (8) [<c0103c6f>] (4) [<c01025ba>] (4) [<c01006e3>] (44) [<c0100668>] (20) [<c03d4756>] (8) Code: 55 89 e5 fa b8 00 e0 ff ff 21 e0 8b 48 14 41 89 48 14 b8 c0 c5 3f c0 5d c3 8d b4 26 00 00 00 00 55 89 e5 56 53 8b 75 0c 8b 55 08 <8b> 5e 04 4b 89 5e 04 8d 5a 20 8b 42 20 8b 4b 04 89 48 04 c7 43 <0>Kernel panic - not syncing: Fatal exception in interrupt Any comments and advices on solving this problem are appreciated very much. Thanks. Michael Gu --------------------------------- Find your next car at Yahoo! Canada Autos