diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-05-25 12:12:35 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2010-05-25 12:12:35 +1000 |
commit | 0cb6305d87da15aa0039f19b6d81cb2c2706240d (patch) | |
tree | c6ce4fb73efc1867c98c660f3e926cfed92cc2aa /drivers | |
parent | 86a39ce2f0ca70779afcd624d259606f28e0fb8a (diff) | |
parent | df1f1d1cb43b4ffdef5ba5f0623e2f73e94ce030 (diff) |
Merge remote branch 'mtd/master'
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mtd/mtdchar.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 000d65ea55a4..91c8013cf0d9 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -404,14 +404,9 @@ static int mtd_do_writeoob(struct file *file, struct mtd_info *mtd, if (ops.ooboffs && ops.ooblen > (mtd->oobsize - ops.ooboffs)) return -EINVAL; - ops.oobbuf = kmalloc(length, GFP_KERNEL); - if (!ops.oobbuf) - return -ENOMEM; - - if (copy_from_user(ops.oobbuf, ptr, length)) { - kfree(ops.oobbuf); - return -EFAULT; - } + ops.oobbuf = memdup_user(ptr, length); + if (IS_ERR(ops.oobbuf)) + return PTR_ERR(ops.oobbuf); start &= ~((uint64_t)mtd->oobsize - 1); ret = mtd->write_oob(mtd, start, &ops); |