mtd: fix different address space noise
authorH Hartley Sweeten <hartleys@visionengravers.com>
Fri, 15 Jan 2010 18:25:38 +0000 (11:25 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 25 Feb 2010 11:29:48 +0000 (11:29 +0000)
In mtd_ioctl MEMGETREGIONINFO the region_user_info pointer ur
is cast in __kernel space. This produces a number of sparse warnings
like:

warning: cast removes address space of expression
warning: incorrect type in initializer (different address spaces)
   expected unsigned int const [noderef] <asn:1>*register __p
   got unsigned int *<noident>

Since argp is already a void __user * just use it dirrectly without
the cast and make ur a __user *.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/mtdchar.c

index 5b081cb84351340dd6164fe448703f93c6dfca47..0a85085fe69792ba0813b50fb48f83b48be072e6 100644 (file)
@@ -482,7 +482,7 @@ static int mtd_ioctl(struct inode *inode, struct file *file,
        {
                uint32_t ur_idx;
                struct mtd_erase_region_info *kr;
-               struct region_info_user *ur = (struct region_info_user *) argp;
+               struct region_info_user __user *ur = argp;
 
                if (get_user(ur_idx, &(ur->regionindex)))
                        return -EFAULT;