Re: [PATCH] forced argument Was Re: sparse: incorrect type inargument 1 (different address spaces)

From: Dan Carpenter
Date: Fri Apr 26 2013 - 02:36:03 EST


On Thu, Apr 25, 2013 at 07:09:37PM -0700, Christopher Li wrote:
> On 04/22/2013 11:16 PM, Dan Carpenter wrote:
> > That didn't work. It's the the void * in the parameter list that's
> > the problem. We'd need to do something like the patch below:
> >
> > Otherwise we could add "__ok_to_cast" thing to Sparse maybe?
>
> Thanks for the insight. I make a small patch to test the __ok_to_cast
> feature. The syntax is adding the force attribute to the argument
> declaration.
>
> it will look like this:
> static inline long __must_check PTR_ERR( __force const void *ptr)
>
> That means the "ptr" argument will perform a forced cast when receiving
> the argument. It is OK to pass __iomem pointer to "ptr".
>
> The example are in the patch. It need to patch both sparse and the
> Linux tree.
>
> What do you say?

That's looks great. :)

I tested a patched kernel with an unpatched kernel as well and that
doesn't cause any new problems.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/