Browse Source

Don't choke when no SPD EEPROM is found while the eeprom or at24 driver is

loaded. This can happen, handle the case gracefully.


git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@6062 7894878c-1315-0410-8ee3-d5d059ff63e0
tags/v4.0
Jean Delvare 13 years ago
parent
commit
186311fb8b
  1. 1
      CHANGES
  2. 11
      eeprom/decode-dimms

1
CHANGES

@ -5,6 +5,7 @@ SVN HEAD
README: Clarify licenses README: Clarify licenses
decode-dimms: Decode module configuration type of DDR2 SDRAM decode-dimms: Decode module configuration type of DDR2 SDRAM
Decode bus width extension of DDR3 SDRAM Decode bus width extension of DDR3 SDRAM
Don't choke when no EEPROM is found
i2c-dev.h: Minimize differences with kernel flavor i2c-dev.h: Minimize differences with kernel flavor
Move SMBus helper functions to include/i2c/smbus.h Move SMBus helper functions to include/i2c/smbus.h
i2c-stub-from-dump: Be more tolerant on input dump format i2c-stub-from-dump: Be more tolerant on input dump format

11
eeprom/decode-dimms

@ -1725,7 +1725,7 @@ sub sysfs_device_attribute
sub get_dimm_list sub get_dimm_list
{ {
my (@dirs, $dir, $file, @files);
my (@dirs, $dir, $opened, $file, @files);
if ($use_sysfs) { if ($use_sysfs) {
@dirs = ('/sys/bus/i2c/drivers/eeprom', '/sys/bus/i2c/drivers/at24'); @dirs = ('/sys/bus/i2c/drivers/eeprom', '/sys/bus/i2c/drivers/at24');
@ -1735,6 +1735,7 @@ sub get_dimm_list
foreach $dir (@dirs) { foreach $dir (@dirs) {
next unless opendir(local *DIR, $dir); next unless opendir(local *DIR, $dir);
$opened++;
while (defined($file = readdir(DIR))) { while (defined($file = readdir(DIR))) {
if ($use_sysfs) { if ($use_sysfs) {
# We look for I2C devices like 0-0050 or 2-0051 # We look for I2C devices like 0-0050 or 2-0051
@ -1755,12 +1756,12 @@ sub get_dimm_list
close(DIR); close(DIR);
} }
if (@files) {
return sort { $a->{file} cmp $b->{file} } @files;
} elsif (! -d '/sys/module/eeprom') {
print "No EEPROM found, are you sure the eeprom module is loaded?\n";
if (!$opened) {
print STDERR "No EEPROM found, try loading the eeprom or at24 module\n";
exit; exit;
} }
return sort { $a->{file} cmp $b->{file} } @files;
} }
# @dimm is a list of hashes. There's one hash for each EEPROM we found. # @dimm is a list of hashes. There's one hash for each EEPROM we found.

Loading…
Cancel
Save