X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fchar%2Fwatchdog%2Fpcwd_usb.c;h=50325530e0e0efd220ff801852215082008f5c08;hb=90ad8654ffeb336af8c878fdf7bc72e2ac72467a;hp=cdfe0db28784e98563bf6a5cf0d3a5364f9f419e;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/drivers/char/watchdog/pcwd_usb.c b/drivers/char/watchdog/pcwd_usb.c index cdfe0db28..50325530e 100644 --- a/drivers/char/watchdog/pcwd_usb.c +++ b/drivers/char/watchdog/pcwd_usb.c @@ -329,6 +329,10 @@ static int usb_pcwd_get_temperature(struct usb_pcwd_private *usb_pcwd, int *temp static ssize_t usb_pcwd_write(struct file *file, const char __user *data, size_t len, loff_t *ppos) { + /* Can't seek (pwrite) on this device */ + if (ppos != &file->f_pos) + return -ESPIPE; + /* See if we got the magic character 'V' and reload the timer */ if (len) { if (!nowayout) { @@ -441,7 +445,7 @@ static int usb_pcwd_open(struct inode *inode, struct file *file) /* Activate */ usb_pcwd_start(usb_pcwd_device); usb_pcwd_keepalive(usb_pcwd_device); - return nonseekable_open(inode, file); + return 0; } static int usb_pcwd_release(struct inode *inode, struct file *file) @@ -469,6 +473,10 @@ static ssize_t usb_pcwd_temperature_read(struct file *file, char __user *data, { int temperature; + /* Can't seek (pwrite) on this device */ + if (ppos != &file->f_pos) + return -ESPIPE; + if (usb_pcwd_get_temperature(usb_pcwd_device, &temperature)) return -EFAULT; @@ -480,7 +488,7 @@ static ssize_t usb_pcwd_temperature_read(struct file *file, char __user *data, static int usb_pcwd_temperature_open(struct inode *inode, struct file *file) { - return nonseekable_open(inode, file); + return 0; } static int usb_pcwd_temperature_release(struct inode *inode, struct file *file)