X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Foss%2Frme96xx.c;h=404ba23b1592206eb0f15f7439a5550018ff03ab;hb=5e3b93f248c98873cc843e83092bb8da92ac85a2;hp=3df045dd55f9640928781d5f08a187a8603e508f;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/sound/oss/rme96xx.c b/sound/oss/rme96xx.c index 3df045dd5..404ba23b1 100644 --- a/sound/oss/rme96xx.c +++ b/sound/oss/rme96xx.c @@ -1454,7 +1454,6 @@ static int rme96xx_open(struct inode *in, struct file *f) DBG(printk("device num %d open\n",devnum)); - nonseekable_open(in, f); for (list = devs.next; ; list = list->next) { if (list == &devs) return -ENODEV; @@ -1544,6 +1543,9 @@ static ssize_t rme96xx_write(struct file *file, const char __user *buffer, size_ if(dma == NULL || (dma->s) == NULL) return -ENXIO; + if (ppos != &file->f_pos) + return -ESPIPE; + if (dma->mmapped || !dma->opened) return -ENXIO; @@ -1609,6 +1611,9 @@ static ssize_t rme96xx_read(struct file *file, char __user *buffer, size_t count if(dma == NULL || (dma->s) == NULL) return -ENXIO; + if (ppos != &file->f_pos) + return -ESPIPE; + if (dma->mmapped || !dma->opened) return -ENXIO; @@ -1770,7 +1775,6 @@ static int rme96xx_mixer_open(struct inode *inode, struct file *file) COMM ("mixer open"); - nonseekable_open(inode, file); for (list = devs.next; ; list = list->next) { if (list == &devs) return -ENODEV;