--- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c @@ -642,8 +642,12 @@ struct mtd_info *mtd_concat_create(struc concat->mtd._writev = concat_writev; if (subdev[0]->_read_oob) concat->mtd._read_oob = concat_read_oob; + else + concat->mtd._read = concat_read; if (subdev[0]->_write_oob) concat->mtd._write_oob = concat_write_oob; + else + concat->mtd._write = concat_write; if (subdev[0]->_block_isbad) concat->mtd._block_isbad = concat_block_isbad; if (subdev[0]->_block_markbad) @@ -701,8 +705,6 @@ struct mtd_info *mtd_concat_create(struc concat->mtd.name = name; concat->mtd._erase = concat_erase; - concat->mtd._read = concat_read; - concat->mtd._write = concat_write; concat->mtd._sync = concat_sync; concat->mtd._lock = concat_lock; concat->mtd._unlock = concat_unlock;