diff options
Diffstat (limited to 'drivers/mtd/inftlcore.c')
-rw-r--r-- | drivers/mtd/inftlcore.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/mtd/inftlcore.c b/drivers/mtd/inftlcore.c index 4116535805f1..b0e396504e67 100644 --- a/drivers/mtd/inftlcore.c +++ b/drivers/mtd/inftlcore.c | |||
@@ -67,17 +67,16 @@ static void inftl_add_mtd(struct mtd_blktrans_ops *tr, struct mtd_info *mtd) | |||
67 | 67 | ||
68 | DEBUG(MTD_DEBUG_LEVEL3, "INFTL: add_mtd for %s\n", mtd->name); | 68 | DEBUG(MTD_DEBUG_LEVEL3, "INFTL: add_mtd for %s\n", mtd->name); |
69 | 69 | ||
70 | inftl = kmalloc(sizeof(*inftl), GFP_KERNEL); | 70 | inftl = kzalloc(sizeof(*inftl), GFP_KERNEL); |
71 | 71 | ||
72 | if (!inftl) { | 72 | if (!inftl) { |
73 | printk(KERN_WARNING "INFTL: Out of memory for data structures\n"); | 73 | printk(KERN_WARNING "INFTL: Out of memory for data structures\n"); |
74 | return; | 74 | return; |
75 | } | 75 | } |
76 | memset(inftl, 0, sizeof(*inftl)); | ||
77 | 76 | ||
78 | inftl->mbd.mtd = mtd; | 77 | inftl->mbd.mtd = mtd; |
79 | inftl->mbd.devnum = -1; | 78 | inftl->mbd.devnum = -1; |
80 | inftl->mbd.blksize = 512; | 79 | |
81 | inftl->mbd.tr = tr; | 80 | inftl->mbd.tr = tr; |
82 | 81 | ||
83 | if (INFTL_mount(inftl) < 0) { | 82 | if (INFTL_mount(inftl) < 0) { |
@@ -163,10 +162,9 @@ int inftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len, | |||
163 | ops.ooblen = len; | 162 | ops.ooblen = len; |
164 | ops.oobbuf = buf; | 163 | ops.oobbuf = buf; |
165 | ops.datbuf = NULL; | 164 | ops.datbuf = NULL; |
166 | ops.len = len; | ||
167 | 165 | ||
168 | res = mtd->read_oob(mtd, offs & ~(mtd->writesize - 1), &ops); | 166 | res = mtd->read_oob(mtd, offs & ~(mtd->writesize - 1), &ops); |
169 | *retlen = ops.retlen; | 167 | *retlen = ops.oobretlen; |
170 | return res; | 168 | return res; |
171 | } | 169 | } |
172 | 170 | ||
@@ -184,10 +182,9 @@ int inftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len, | |||
184 | ops.ooblen = len; | 182 | ops.ooblen = len; |
185 | ops.oobbuf = buf; | 183 | ops.oobbuf = buf; |
186 | ops.datbuf = NULL; | 184 | ops.datbuf = NULL; |
187 | ops.len = len; | ||
188 | 185 | ||
189 | res = mtd->write_oob(mtd, offs & ~(mtd->writesize - 1), &ops); | 186 | res = mtd->write_oob(mtd, offs & ~(mtd->writesize - 1), &ops); |
190 | *retlen = ops.retlen; | 187 | *retlen = ops.oobretlen; |
191 | return res; | 188 | return res; |
192 | } | 189 | } |
193 | 190 | ||
@@ -945,6 +942,7 @@ static struct mtd_blktrans_ops inftl_tr = { | |||
945 | .name = "inftl", | 942 | .name = "inftl", |
946 | .major = INFTL_MAJOR, | 943 | .major = INFTL_MAJOR, |
947 | .part_bits = INFTL_PARTN_BITS, | 944 | .part_bits = INFTL_PARTN_BITS, |
945 | .blksize = 512, | ||
948 | .getgeo = inftl_getgeo, | 946 | .getgeo = inftl_getgeo, |
949 | .readsect = inftl_readblock, | 947 | .readsect = inftl_readblock, |
950 | .writesect = inftl_writeblock, | 948 | .writesect = inftl_writeblock, |