]> git.sur5r.net Git - groeck-nct6775/blobdiff - nct6775.c
Check for invalid temperature source
[groeck-nct6775] / nct6775.c
index 1e37a0d7080d5477e4519743226f6ac168d31214..6e21ffbd34d5372538d07acbde5971b84fa572cd 100644 (file)
--- a/nct6775.c
+++ b/nct6775.c
@@ -3330,6 +3330,12 @@ static int __devinit nct6775_probe(struct platform_device *pdev)
                if (!src || (mask & (1 << src)))
                        continue;
 
+               if (src >= data->temp_label_num ||
+                   !strlen(data->temp_label[src])) {
+                       dev_info(dev, "Invalid temperature source %d\n", src);
+                       continue;
+               }
+
                mask |= 1 << src;
 
                /* Use fixed index for SYSTIN(1), CPUTIN(2), AUXTIN(3) */
@@ -3471,7 +3477,8 @@ static int __devinit nct6775_probe(struct platform_device *pdev)
                }
                superio_outb(sio_data->sioreg, NCT6775_REG_CR_FAN_DEBOUNCE,
                             tmp);
-               pr_info("Enabled fan debounce for chip %s\n", data->name);
+               dev_info(&pdev->dev, "Enabled fan debounce for chip %s\n",
+                        data->name);
        }
 
        superio_exit(sio_data->sioreg);
@@ -3585,8 +3592,7 @@ static int __devinit nct6775_probe(struct platform_device *pdev)
                err = device_create_file(dev, &sda_temp_type[i].dev_attr);
                if (err)
                        goto exit_remove;
-               err = device_create_file(dev,
-                                        &sda_temp_offset[i].dev_attr);
+               err = device_create_file(dev, &sda_temp_offset[i].dev_attr);
                if (err)
                        goto exit_remove;
                if (i >= NUM_TEMP_ALARM ||