Hi David, > As you can see, I've been doing a lot of testing of sensors lately... I wouldn't complain, since you find real bugs and send real patches :) You're our best tester. > I have a number of servers that have been running the CVS version of > i2c and lm_sensors downloaded on October 25, 2004, plus the patch to > add DDR2 support. This release of sensors has performed well. > > I'm now trying to upgrade the version of sensors on these servers to > 2.9.1 for i2c and 2.9.0 plus the bmcsensors.c patch. The servers are > running Red Hat 9 (2.4.20-31.9.0bigmem with a few patches to add > additional hardware support). This same version of kernel is used for > both versions of lm_sensors and for both versions of server that I > will be discussing. Note that this is really i2c 2.9.0, not 2.9.1. > The lm87 and lm93 drivers are working OK, but the eeprom driver in > 2.9.0 really does not like our newest servers. On the failing servers > (Dual XEON 3.2 Ghz, E7520 chipset, DDR2 memory), sensors stops > providing useful information as soon as the eeprom driver is loaded. > > I loaded the appropriate drivers: > i2c-core i2c-dev i2c-proc i2c-i801 eeprom > > Running sensors gives bogus output: > # sensors > eeprom-i2c-0-53 > Adapter: SMBus I801 adapter at 0540 > Unknown EEPROM type (255). > > eeprom-i2c-0-57 > Adapter: SMBus I801 adapter at 0540 > Unknown EEPROM type (255). > > Running this command logs the following message to dmesg: > PCI device 8086:25a4 (Intel Corp.): Reset failed! (21) > eeprom.o: block read fail at 0x00! 255 is really -1, aka read error. At the moment you see this, your SMBus is already locked. > Removing modules using rmmod runs without error, but > when the eeprom module is reloaded, it does not find any i2c devices. Because the bus is locked. OK, the big change here is most probably the support (or attempt thereof) of I2C block read in i2c-i801. As far as I know you are the first tester of this feature. The eeprom driver does make use of this feature when possible, and it doesn't seem to work as intended for you. What I find strange is that the lm93 driver does make use of the block transfers too, and they seem to work for you (until the eeprom driver trashes the whole bus). This suggests that the bug isn't in the i2c-i801 driver but it the eeprom driver, or maybe the eeprom and lm93 driver do not use i2c block reads in the same way. > I have 2.9.0 on a different server family (Dual XEON 2.4 Ghz, E7501 > chipset, DDR memory) and the eeprom driver works fine. What's the PCI ID of this one? Maybe block transfers work OK for the E7501 but not for the E7520. Can you please try the attached patch? It disables block reads in the eeprom driver. If it solves the problem for you then we at least know what is triggering the bug (although I still can't get why lm93 doesn't trigger it). Thanks, -- Jean Delvare http://khali.linux-fr.org/ -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: eeprom-noblock.patch Url: http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050106/cfcfae1b/attachment.pl