On 11/09/2025 at 16:05:31 +02, Miquel Raynal miquel.raynal@bootlin.com wrote:
Sorry for the inconvenience.
Gabor, can you check what happens with mtdblock?
My guess from a quick look at the code is that NOR devices have mtd->oobsize == 0 and mtd_read() sets ops->ooboffs and ops->ooblen to 0. So now that this check is not guarded by if (ops->ooblen), it gets triggered for NOR devices on the mtd_read() path and essentially turns into an if (0 >= 0), returning -EINVAL.
Maybe a better check is if ((ops->ooboffs + ops->ooblen) > mtd_oobavail())?
Interesting, might make sense to do it this way.
Thanks Pratyush for the suggestion, it is worth the try.
I actually have another patch series to remove and I don't have more time to dedicate to these issues at the moment, so I will force push and drop all the problematic patches. More testing is needed.
Thanks, Miquèl