i2c-bfin-twi: fix lost interrupts at high speeds
[safe/jmp/linux-2.6] / drivers / acpi / thermal.c
index 77b8e1e..efad1f3 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/module.h>
 #include <linux/dmi.h>
 #include <linux/init.h>
+#include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/proc_fs.h>
 #include <linux/jiffies.h>
@@ -577,7 +578,23 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag)
 
 static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
 {
-       return acpi_thermal_trips_update(tz, ACPI_TRIPS_INIT);
+       int i, valid, ret = acpi_thermal_trips_update(tz, ACPI_TRIPS_INIT);
+
+       if (ret)
+               return ret;
+
+       valid = tz->trips.critical.flags.valid |
+               tz->trips.hot.flags.valid |
+               tz->trips.passive.flags.valid;
+
+       for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++)
+               valid |= tz->trips.active[i].flags.valid;
+
+       if (!valid) {
+               printk(KERN_WARNING FW_BUG "No valid trip found\n");
+               return -ENODEV;
+       }
+       return 0;
 }
 
 static void acpi_thermal_check(void *data)