Messages in this thread | | | Date | Fri, 26 Apr 2013 09:35:38 +0300 | From | Dan Carpenter <> | Subject | Re: [PATCH] forced argument Was Re: sparse: incorrect type in argument 1 (different address spaces) |
| |
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
| |