Messages in this thread | | | From | H Hartley Sweeten <> | Date | Fri, 20 Apr 2012 19:05:46 -0500 | Subject | RE: [RFC PATCH 0/2] init: make sure syscall arguments are marked __user where needed |
| |
In Friday, April 20, 2012 4:01 PM, Andrew Morton wrote: > On Mon, 16 Apr 2012 17:33:23 -0700 H Hartley Sweeten wrote: > >> When using syscall routines in the kernel, some of the arguments >> should be user pointers but are missing the __user markup. This >> produces a number of sparse warnings of the format: >> >> warning: incorrect type in argument 1 (different address spaces) >> expected char [noderef] <asn:1>*dev_name >> got char *name >> >> Wrap the syscall routines in the private do_mounts.h header so that >> the appropriate __user markups are added for the init mount code. > > This makes rather a mess of do_mounts.c for pretty marginal benefit.
Well... That's why it was a RFC... ;-)
> Can we just make "make C=1" skip that file or something?
What about putting something like this at the top of the files:
/* * Many of the syscalls used in this file expect some of the arguments * to be __user pointers not __kernel pointers. To limit the sparse * noise, turn off sparse checking for this file. */ #ifdef __CHECKER__ #undef __CHECKER__ #warning "Sparse checking disabled for this file" #endif
Maybe without the warning if it doesn't seem necessary.
This keeps <linux/compiler.h> from defining the __attribute__* checks.
Regards, Hartley
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |