Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 37836 - Bad function call to i2c_smbus_read_i2c_block_data in lm-sensors
Summary: Bad function call to i2c_smbus_read_i2c_block_data in lm-sensors
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: x86-kernel@gentoo.org (DEPRECATED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-10 15:07 UTC by Shevek
Modified: 2004-04-09 08:11 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Kernel config of the system. (pink-config,18.65 KB, text/plain)
2004-01-10 15:29 UTC, Shevek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shevek 2004-01-10 15:07:41 UTC
depmod gives a failure: symbol not found "i2c_smbus_read_i2c_block_data"

I presume it means i2c_smbus_read_block_data

S.
Comment 1 Shevek 2004-01-10 15:08:36 UTC
Sorry I didn't say which drivers.

depmod: *** Unresolved symbols in /lib/modules/2.4.23/kernel/drivers/i2c/chips/ddcmon.o
depmod:         i2c_smbus_read_i2c_block_data
depmod: *** Unresolved symbols in /lib/modules/2.4.23/kernel/drivers/i2c/chips/eeprom.o
depmod:         i2c_smbus_read_i2c_block_data
depmod: *** Unresolved symbols in /lib/modules/2.4.23/kernel/drivers/i2c/chips/saa1064.o
depmod:         i2c_smbus_write_i2c_block_data
Comment 2 Tim Yamin (RETIRED) gentoo-dev 2004-01-10 15:17:05 UTC
Can we please have your kernel .config?
Comment 3 Shevek 2004-01-10 15:25:54 UTC
Oh yeah, and this happens. It used to work. I upgraded kernel and lm-sensors in that order. I kept the same config.

MODULE_2="w83781d force_w83697hf=9191,0x290 ignore_range=0,0,0x7f,1,0,0x7f"

<1>Unable to handle kernel paging request at virtual address 0004002c
e09d9af3
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<e09d9af3>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010206
eax: 00040004   ebx: 00000006   ecx: 00000000   edx: e09dbd2e
esi: 00000000   edi: da6ac000   ebp: 00000c00   esp: c6daff38
ds: 0018   es: 0018   ss: 0018
Process sensors (pid: 6022, stackpage=c6daf000)
Stack: da6ac000 e09dbd27 00000000 00000000 daba75c0 00000c00 da6ac000 00001000 
c0160edf da6ac000 c6daff80 00000000 00000c00 c6daff7c 00000000 df9fb5a0 
00000000 00000000 00000000 00000000 daba75a0 ffffffea 00001000 c013b563 
Call Trace:    [<e09dbd27>] [<c0160edf>] [<c013b563>] [<c010746f>]
Code: 8b 50 28 85 d2 74 56 8b 40 24 85 c0 74 41 c7 44 24 04 2f bd 


>>EIP; e09d9af3 <[i2c-core]read_bus_i2c+63/e0>   <=====

>>edx; e09dbd2e <[i2c-core].text.end+c9f/cf1>
>>edi; da6ac000 <_end+1a387afc/20681b5c>
>>esp; c6daff38 <_end+6a8ba34/20681b5c>

Trace; e09dbd27 <[i2c-core].text.end+c98/cf1>
Trace; c0160edf <proc_file_read+bf/1c0>
Trace; c013b563 <sys_read+a3/140>
Trace; c010746f <system_call+33/38>

Code;  e09d9af3 <[i2c-core]read_bus_i2c+63/e0>
00000000 <_EIP>:
Code;  e09d9af3 <[i2c-core]read_bus_i2c+63/e0>   <=====
   0:   8b 50 28                  mov    0x28(%eax),%edx   <=====
Code;  e09d9af6 <[i2c-core]read_bus_i2c+66/e0>
   3:   85 d2                     test   %edx,%edx
Code;  e09d9af8 <[i2c-core]read_bus_i2c+68/e0>
   5:   74 56                     je     5d <_EIP+0x5d>
Code;  e09d9afa <[i2c-core]read_bus_i2c+6a/e0>
   7:   8b 40 24                  mov    0x24(%eax),%eax
Code;  e09d9afd <[i2c-core]read_bus_i2c+6d/e0>
   a:   85 c0                     test   %eax,%eax
Code;  e09d9aff <[i2c-core]read_bus_i2c+6f/e0>
   c:   74 41                     je     4f <_EIP+0x4f>
Code;  e09d9b01 <[i2c-core]read_bus_i2c+71/e0>
   e:   c7 44 24 04 2f bd 00      movl   $0xbd2f,0x4(%esp,1)
Code;  e09d9b08 <[i2c-core]read_bus_i2c+78/e0>
  15:   00 
Comment 4 Shevek 2004-01-10 15:29:04 UTC
Created attachment 23573 [details]
Kernel config of the system.

Here you go.
Comment 5 Shevek 2004-01-10 19:47:26 UTC
It appears that this function is defined in the i2c package, but not in the kernel i2c driver. It appears that upgrading the kernel overwrites the i2c modules, and that there is a lot of horrible interdependency and clobbering going on.

This explains why the i2c modules in the modules tree weren't the ones I thought they were, but it doesn't explain the _original_ oopses.

There should be some way of forcing a rebuild of stuff that lives in /lib/modules when a make modules is executed, especially if it's stuff that clobbers bits of kernel. This is generally bad.
Comment 6 Tim Yamin (RETIRED) gentoo-dev 2004-01-11 01:03:22 UTC
Yes, you are supposed to have kernel I2C support disabled, and only to have the APIs there.
Comment 7 Jason Cox (RETIRED) gentoo-dev 2004-04-08 22:00:00 UTC
Did disabling i2c support in the kernel, then emerging lm_sensors take care of things?
Comment 8 Jason Cox (RETIRED) gentoo-dev 2004-04-09 08:11:15 UTC
Long and forgotten. Closing once more.