]> Pileus Git - ~andy/linux/blobdiff - drivers/mtd/mtdchar.c
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
[~andy/linux] / drivers / mtd / mtdchar.c
index 5dd0b8d72c8b67b3fd6a8183eb60f9321cce3226..5b6acfcb2b880be00cc77be7abafbf0c71b264da 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/device.h>
 #include <linux/fs.h>
 #include <linux/init.h>
@@ -63,22 +62,19 @@ static loff_t mtd_lseek (struct file *file, loff_t offset, int orig)
        struct mtd_info *mtd = mfi->mtd;
 
        switch (orig) {
-       case 0:
-               /* SEEK_SET */
+       case SEEK_SET:
                break;
-       case 1:
-               /* SEEK_CUR */
+       case SEEK_CUR:
                offset += file->f_pos;
                break;
-       case 2:
-               /* SEEK_END */
+       case SEEK_END:
                offset += mtd->size;
                break;
        default:
                return -EINVAL;
        }
 
-       if (offset >= 0 && offset < mtd->size)
+       if (offset >= 0 && offset <= mtd->size)
                return file->f_pos = offset;
 
        return -EINVAL;
@@ -504,12 +500,12 @@ static int mtd_ioctl(struct inode *inode, struct file *file,
                        return ret;
 
                ops.len = buf.length;
-               ops.ooblen = mtd->oobsize;
+               ops.ooblen = buf.length;
                ops.ooboffs = buf.start & (mtd->oobsize - 1);
                ops.datbuf = NULL;
                ops.mode = MTD_OOB_PLACE;
 
-               if (ops.ooboffs && ops.len > (ops.ooblen - ops.ooboffs))
+               if (ops.ooboffs && ops.len > (mtd->oobsize - ops.ooboffs))
                        return -EINVAL;
 
                ops.oobbuf = kmalloc(buf.length, GFP_KERNEL);
@@ -553,12 +549,12 @@ static int mtd_ioctl(struct inode *inode, struct file *file,
                        return ret;
 
                ops.len = buf.length;
-               ops.ooblen = mtd->oobsize;
+               ops.ooblen = buf.length;
                ops.ooboffs = buf.start & (mtd->oobsize - 1);
                ops.datbuf = NULL;
                ops.mode = MTD_OOB_PLACE;
 
-               if (ops.ooboffs && ops.len > (ops.ooblen - ops.ooboffs))
+               if (ops.ooboffs && ops.len > (mtd->oobsize - ops.ooboffs))
                        return -EINVAL;
 
                ops.oobbuf = kmalloc(buf.length, GFP_KERNEL);