[PATCH 2/3] mtd: move zero length verification to MTD API functions
dedekind1 at gmail.com
Wed Feb 8 07:42:53 EST 2012
On Tue, 2012-02-07 at 14:35 +0200, Shmulik Ladkani wrote:
> On Mon, 6 Feb 2012 14:03:08 +0200 Artem Bityutskiy <dedekind1 at gmail.com> wrote:
> > @@ -712,6 +717,8 @@ int mtd_point(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
> > return -EOPNOTSUPP;
> > if (from < 0 || from > mtd->size || len > mtd->size - from)
> > return -EINVAL;
> > + if (!len)
> > + return 0;
> > return mtd->_point(mtd, from, len, retlen, virt, phys);
> > }
> Previously, '_point' implementors usually assigned *virt (e.g. for NOR -
> to the relevant ioremapped address), regardless 'len' value.
> Meaning, *virt was set, even in the 'len == 0' case.
> New 'mtd_point()' does not set *virt in this case.
> (Luckily, seems there are no calls to 'mtd_point' with zero 'len'...)
> I guess it is safe to assume the *virt assignment in the '!len' case was
If length is zero then 'virt' is anyway useless. But we should set it to
NULL in 'mtd_point()' to make sure that if someone accesses it he gets
an oops. I'll amend the patch and update the commit message
correspondingly, thanks a lot for review.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 836 bytes
Desc: This is a digitally signed message part
More information about the linux-mtd