diff options
author | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2003-12-19 14:38:15 +0000 |
---|---|---|
committer | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2003-12-19 14:38:15 +0000 |
commit | 24e81789606925507a369a624941c7bbab793735 (patch) | |
tree | 4f9b3c3bcafc3357a3ec41fd071742e69bceb1b6 /xenolinux-2.4.22-sparse/drivers/char/mem.c | |
parent | 49836d9d4f67e92796cf8d68ad4361b448bd7d9d (diff) | |
parent | 8708081a01a064f8356f580445cc57f6aa2b9648 (diff) | |
download | xen-24e81789606925507a369a624941c7bbab793735.tar.gz xen-24e81789606925507a369a624941c7bbab793735.tar.bz2 xen-24e81789606925507a369a624941c7bbab793735.zip |
bitkeeper revision 1.651 (3fe30d57DatlAZVUHwbVCkF4_TelxA)
Merge labyrinth.cl.cam.ac.uk:/usr/groups/xeno/BK/xeno.bk
into labyrinth.cl.cam.ac.uk:/auto/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
Diffstat (limited to 'xenolinux-2.4.22-sparse/drivers/char/mem.c')
-rw-r--r-- | xenolinux-2.4.22-sparse/drivers/char/mem.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/xenolinux-2.4.22-sparse/drivers/char/mem.c b/xenolinux-2.4.22-sparse/drivers/char/mem.c index bb0ab61f3f..73e6d48713 100644 --- a/xenolinux-2.4.22-sparse/drivers/char/mem.c +++ b/xenolinux-2.4.22-sparse/drivers/char/mem.c @@ -35,6 +35,7 @@ #include <linux/raw.h> #include <linux/tty.h> #include <linux/capability.h> +#include <linux/ptrace.h> #include <asm/uaccess.h> #include <asm/io.h> @@ -536,16 +537,23 @@ static loff_t null_lseek(struct file * file, loff_t offset, int orig) */ static loff_t memory_lseek(struct file * file, loff_t offset, int orig) { + loff_t ret; + switch (orig) { case 0: file->f_pos = offset; - return file->f_pos; + ret = file->f_pos; + force_successful_syscall_return(); + break; case 1: file->f_pos += offset; - return file->f_pos; + ret = file->f_pos; + force_successful_syscall_return(); + break; default: - return -EINVAL; + ret = -EINVAL; } + return ret; } static int open_port(struct inode * inode, struct file * filp) |