Merge tag 'for-linus-3.4' of git://git.infradead.org/mtd-2.6
[linux-2.6-block.git] / drivers / mtd / devices / slram.c
index 288594163c22da60e4c932ea16e78c3b9bf1f6bf..8f52fc858e48bec08f900963996c0d37bd4601cb 100644 (file)
@@ -75,7 +75,7 @@ static slram_mtd_list_t *slram_mtdlist = NULL;
 static int slram_erase(struct mtd_info *, struct erase_info *);
 static int slram_point(struct mtd_info *, loff_t, size_t, size_t *, void **,
                resource_size_t *);
-static void slram_unpoint(struct mtd_info *, loff_t, size_t);
+static int slram_unpoint(struct mtd_info *, loff_t, size_t);
 static int slram_read(struct mtd_info *, loff_t, size_t, size_t *, u_char *);
 static int slram_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
 
@@ -83,21 +83,13 @@ static int slram_erase(struct mtd_info *mtd, struct erase_info *instr)
 {
        slram_priv_t *priv = mtd->priv;
 
-       if (instr->addr + instr->len > mtd->size) {
-               return(-EINVAL);
-       }
-
        memset(priv->start + instr->addr, 0xff, instr->len);
-
        /* This'll catch a few races. Free the thing before returning :)
         * I don't feel at all ashamed. This kind of thing is possible anyway
         * with flash, but unlikely.
         */
-
        instr->state = MTD_ERASE_DONE;
-
        mtd_erase_callback(instr);
-
        return(0);
 }
 
@@ -106,20 +98,14 @@ static int slram_point(struct mtd_info *mtd, loff_t from, size_t len,
 {
        slram_priv_t *priv = mtd->priv;
 
-       /* can we return a physical address with this driver? */
-       if (phys)
-               return -EINVAL;
-
-       if (from + len > mtd->size)
-               return -EINVAL;
-
        *virt = priv->start + from;
        *retlen = len;
        return(0);
 }
 
-static void slram_unpoint(struct mtd_info *mtd, loff_t from, size_t len)
+static int slram_unpoint(struct mtd_info *mtd, loff_t from, size_t len)
 {
+       return 0;
 }
 
 static int slram_read(struct mtd_info *mtd, loff_t from, size_t len,
@@ -127,14 +113,7 @@ static int slram_read(struct mtd_info *mtd, loff_t from, size_t len,
 {
        slram_priv_t *priv = mtd->priv;
 
-       if (from > mtd->size)
-               return -EINVAL;
-
-       if (from + len > mtd->size)
-               len = mtd->size - from;
-
        memcpy(buf, priv->start + from, len);
-
        *retlen = len;
        return(0);
 }
@@ -144,11 +123,7 @@ static int slram_write(struct mtd_info *mtd, loff_t to, size_t len,
 {
        slram_priv_t *priv = mtd->priv;
 
-       if (to + len > mtd->size)
-               return -EINVAL;
-
        memcpy(priv->start + to, buf, len);
-
        *retlen = len;
        return(0);
 }
@@ -199,11 +174,11 @@ static int register_device(char *name, unsigned long start, unsigned long length
        (*curmtd)->mtdinfo->name = name;
        (*curmtd)->mtdinfo->size = length;
        (*curmtd)->mtdinfo->flags = MTD_CAP_RAM;
-        (*curmtd)->mtdinfo->erase = slram_erase;
-       (*curmtd)->mtdinfo->point = slram_point;
-       (*curmtd)->mtdinfo->unpoint = slram_unpoint;
-       (*curmtd)->mtdinfo->read = slram_read;
-       (*curmtd)->mtdinfo->write = slram_write;
+       (*curmtd)->mtdinfo->_erase = slram_erase;
+       (*curmtd)->mtdinfo->_point = slram_point;
+       (*curmtd)->mtdinfo->_unpoint = slram_unpoint;
+       (*curmtd)->mtdinfo->_read = slram_read;
+       (*curmtd)->mtdinfo->_write = slram_write;
        (*curmtd)->mtdinfo->owner = THIS_MODULE;
        (*curmtd)->mtdinfo->type = MTD_RAM;
        (*curmtd)->mtdinfo->erasesize = SLRAM_BLK_SZ;