Hi Boris, Boris Brezillon <boris.brezillon at bootlin.com> wrote on Tue, 17 Jul 2018 14:25:24 +0200: > On Sat, 14 Jul 2018 14:32:34 +0200 > Miquel Raynal <miquel.raynal at bootlin.com> wrote: > > > A comment in the kernel doc of the mtd_oob_ops structure tells that it > > is not possible to write more than one page with OOB. This was > > probably true at some time in the past but today it is entirely wrong. > > > > As one can see for instance in the nand_do_write_ops() helper available > > in the NAND core, this implementation called by mtd->_write_oob() > > simply loops over the pages until everything has been written. > > > > Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com> > > --- > > include/linux/mtd/mtd.h | 4 ---- > > 1 file changed, 4 deletions(-) > > > > diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h > > index a86c4fa93115..59578aab277a 100644 > > --- a/include/linux/mtd/mtd.h > > +++ b/include/linux/mtd/mtd.h > > @@ -66,10 +66,6 @@ struct mtd_erase_region_info { > > * mode = MTD_OPS_PLACE_OOB or MTD_OPS_RAW) > > * @datbuf: data buffer - if NULL only oob data are read/written > > * @oobbuf: oob data buffer > > - * > > - * Note, it is allowed to read more than one OOB area at one go, but not write. > > - * The interface assumes that the OOB write requests program only one page's > > - * OOB area. > > Hm, I wouldn't be so prompt at nuking this comment since some > implementations (like onenand) really have this limitation. How about Didn't know/see. > adjusting the comment to reflect the fact that this limitation is > implementation dependent? > > " > Note, some MTD drivers do not allow you to write more than one OOB area > at one go. If you try to do that on such an MTD device, -EINVAL will be > returned. If you want to make your implementation portable on all kind > of MTD devices you should split the write request into several > sub-requests when the request crosses a page boundary. > " Fine by me. However, for a future work, I would think that it's something that we should handle at MTD level (or even in the onenand driver), not at user level, and simplify the ABI. Thanks, Miqu?l