Index: lib/sysfs.c =================================================================== --- lib/sysfs.c (revision 5142) +++ lib/sysfs.c (working copy) @@ -591,8 +591,14 @@ snprintf(linkpath, NAME_MAX, "%s/device", path); dev_len = readlink(linkpath, device, NAME_MAX - 1); - if (dev_len < 0) - return -SENSORS_ERR_KERNEL; + if (dev_len < 0) { + /* virtual device without a device link (for example + the acpi thermalzone driver) */ + err = sensors_read_one_sysfs_chip(path, "virtual", path); + if (err < 0) + return err; + return 0; + } device[dev_len] = '\0'; device_p = strrchr(device, '/') + 1;