On Thu, 11 Jul 2013 15:27:46 -0700 (PDT) David Rientjes <[email protected]> 
wrote:

> On Thu, 11 Jul 2013, Andrew Morton wrote:
> 
> > On Thu, 11 Jul 2013 15:13:03 -0700 (PDT) David Rientjes 
> > <[email protected]> wrote:
> > 
> > > > +int vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct 
> > > > *dst)
> > > > +{
> > > > +       struct mempolicy *pol = mpol_dup(vma_policy(src));
> > > > +
> > > > +       if (IS_ERR(pol))
> > > > +               return PTR_ERR(pol);
> > > 
> > > PTR_ERR() returns long, so vma_dup_policy() needs to return long.
> > 
> > hm, really?  vma_dup_policy() returns an errno and errnos have type "int".
> > 
> > Arguably it is PTR_ERR() which returns the wrong type...
> > 
> 
> PTR_ERR() may not imply IS_ERR(),

Well why not.  Are we saying that code can legitimately convert the
PTR_ERR() return value back into a pointer?  If so that sounds nuts.

> which I believe Rusty is trying to fix 
> with his series that fixes up abuses of PTR_ERR().

Well I hope all of this will be completely documented in err.h. 
Otherwise the abuses will simply continue.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to