patch-2.4.27 linux-2.4.27/drivers/isdn/isdn_common.c
Next file: linux-2.4.27/drivers/isdn/sc/command.c
Previous file: linux-2.4.27/drivers/isdn/hysdn/hysdn_proclog.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
2004-08-07 16:26:04.862355324 -0700
- Orig file:
linux-2.4.26/drivers/isdn/isdn_common.c
- Orig date:
2002-08-02 17:39:44.000000000 -0700
diff -urN linux-2.4.26/drivers/isdn/isdn_common.c linux-2.4.27/drivers/isdn/isdn_common.c
@@ -976,10 +976,14 @@
int chidx;
int retval;
char *p;
+ loff_t pos = *off;
if (off != &file->f_pos)
return -ESPIPE;
+ if (pos != (unsigned) pos)
+ return -EINVAL;
+
lock_kernel();
if (minor == ISDN_MINOR_STATUS) {
if (!file->private_data) {
@@ -996,7 +1000,7 @@
retval = -EFAULT;
goto out;
}
- *off += len;
+ *off = pos + len;
retval = len;
goto out;
}
@@ -1027,7 +1031,7 @@
cli();
len = isdn_readbchan(drvidx, chidx, p, 0, count,
&dev->drv[drvidx]->rcv_waitq[chidx]);
- *off += len;
+ *off = pos + len;
restore_flags(flags);
if (copy_to_user(buf,p,len))
len = -EFAULT;
@@ -1064,7 +1068,7 @@
else
dev->drv[drvidx]->stavail = 0;
restore_flags(flags);
- *off += len;
+ *off = pos + len;
retval = len;
goto out;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)