]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/watchdog/jz4740_wdt.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[karo-tx-linux.git] / drivers / watchdog / jz4740_wdt.c
index 935562322b3838ad7b9345bad586aef598bae9c1..684ba01fb54010a034c7522656f9b891fb22ba3b 100644 (file)
@@ -130,11 +130,18 @@ static ssize_t jz4740_wdt_write(struct file *file, const char *data,
                size_t len, loff_t *ppos)
 {
        if (len) {
-               if (data[len-1] == 'V')
-                       set_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
-               else
-                       clear_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
+               size_t i;
 
+               clear_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
+               for (i = 0; i != len; i++) {
+                       char c;
+
+                       if (get_user(c, data + i))
+                               return -EFAULT;
+
+                       if (c == 'V')
+                               set_bit(WDT_OK_TO_CLOSE, &jz4740_wdt.status);
+               }
                jz4740_wdt_service();
        }