2020-06-17 22:07:07

by Luc Van Oostenryck

[permalink] [raw]
Subject: [PATCH] sparse: use identifiers to define address spaces

Currently, address spaces in warnings are displayed as
'<asn:X>' with 'X' replaced with the address space's number.
But since v0.6.0-rc1 (late December 2018), Sparse allows
to define the address spaces using an identifier instead of
a number. This identifier is then directly used in the warnings.

So, use the identifiers '__user', '__iomem', '__percpu' & '__rcu'
for the corresponding address spaces. The default address space,
__kernel, being not displayed in warnings, stays defined as '0'.

With this change, warnings used to be displayed as:
cast removes address space '<asn:1>' of expression
... void [noderef] <asn:2> *
will now be displayed as:
cast removes address space '__user' of expression
... void [noderef] __iomem *

Signed-off-by: Luc Van Oostenryck <[email protected]>
---
include/linux/compiler_types.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
index 21aed0981edf..e368384445b6 100644
--- a/include/linux/compiler_types.h
+++ b/include/linux/compiler_types.h
@@ -5,20 +5,20 @@
#ifndef __ASSEMBLY__

#ifdef __CHECKER__
-# define __user __attribute__((noderef, address_space(1)))
# define __kernel __attribute__((address_space(0)))
+# define __user __attribute__((noderef, address_space(__user)))
# define __safe __attribute__((safe))
# define __force __attribute__((force))
# define __nocast __attribute__((nocast))
-# define __iomem __attribute__((noderef, address_space(2)))
+# define __iomem __attribute__((noderef, address_space(__iomem)))
# define __must_hold(x) __attribute__((context(x,1,1)))
# define __acquires(x) __attribute__((context(x,0,1)))
# define __releases(x) __attribute__((context(x,1,0)))
# define __acquire(x) __context__(x,1)
# define __release(x) __context__(x,-1)
# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
-# define __percpu __attribute__((noderef, address_space(3)))
-# define __rcu __attribute__((noderef, address_space(4)))
+# define __percpu __attribute__((noderef, address_space(__percpu)))
+# define __rcu __attribute__((noderef, address_space(__rcu)))
# define __private __attribute__((noderef))
extern void __chk_user_ptr(const volatile void __user *);
extern void __chk_io_ptr(const volatile void __iomem *);
--
2.27.0


2020-06-18 02:10:44

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

Hi Luc,

On Thu, Jun 18, 2020 at 12:02 AM Luc Van Oostenryck
<[email protected]> wrote:
>
> diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
> index 21aed0981edf..e368384445b6 100644
> --- a/include/linux/compiler_types.h
> +++ b/include/linux/compiler_types.h
> @@ -5,20 +5,20 @@
> #ifndef __ASSEMBLY__
>
> #ifdef __CHECKER__
> -# define __user __attribute__((noderef, address_space(1)))
> # define __kernel __attribute__((address_space(0)))
> +# define __user __attribute__((noderef, address_space(__user)))

I guess `__kernel` moves to the first place since it uses the first
address space?

Acked-by: Miguel Ojeda <[email protected]>

Cheers,
Miguel

2020-06-18 05:07:01

by Luc Van Oostenryck

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

On Thu, Jun 18, 2020 at 03:22:15AM +0200, Miguel Ojeda wrote:
> Hi Luc,

Hi Miguel,

> On Thu, Jun 18, 2020 at 12:02 AM Luc Van Oostenryck
> <[email protected]> wrote:
> >
> > diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
> > index 21aed0981edf..e368384445b6 100644
> > --- a/include/linux/compiler_types.h
> > +++ b/include/linux/compiler_types.h
> > @@ -5,20 +5,20 @@
> > #ifndef __ASSEMBLY__
> >
> > #ifdef __CHECKER__
> > -# define __user __attribute__((noderef, address_space(1)))
> > # define __kernel __attribute__((address_space(0)))
> > +# define __user __attribute__((noderef, address_space(__user)))
>
> I guess `__kernel` moves to the first place since it uses the first
> address space?

No, there is no really an order between address spaces. Even before
this patch, the number were only used as an ID to distinguish them
from each other.

I just moved __kernel above because it is quite different from
the others because it's the default one, and so:
* it's never displayed
* it's normally not needed, nor in type annotations, nor in cast
between address spaces. The only time it's needed is when it's
combined with a typeof to express "the same type as this one but
without the address space"
* it can't be defined with a name, '0' must be used.

So, it seemed strange to me to have it in the middle of the other ones.

-- Luc

2020-06-18 10:31:39

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

Hi Luc,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Luc-Van-Oostenryck/sparse-use-identifiers-to-define-address-spaces/20200618-060614
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a5dc8300df75e8b8384b4c82225f1e4a0b4d9b55
config: i386-randconfig-s001-20200618 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
# save the attached .config to linux build tree
make W=1 C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

>> drivers/spi/spi-fsl-spi.c:93:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:93:44: sparse: expected struct fsl_spi_reg *reg_base
>> drivers/spi/spi-fsl-spi.c:93:44: sparse: got void [noderef] __iomem *reg_base
>> drivers/spi/spi-fsl-spi.c:94:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *mode @@ got restricted __be32 * @@
>> drivers/spi/spi-fsl-spi.c:94:33: sparse: expected restricted __be32 [noderef] [usertype] __iomem *mode
drivers/spi/spi-fsl-spi.c:94:33: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:294:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:294:44: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:294:44: sparse: got void [noderef] __iomem *reg_base
>> drivers/spi/spi-fsl-spi.c:299:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
>> drivers/spi/spi-fsl-spi.c:299:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:299:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:303:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:303:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:303:32: sparse: got restricted __be32 *
>> drivers/spi/spi-fsl-spi.c:317:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:317:18: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:317:18: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:350:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:350:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:350:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:459:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:459:18: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:459:18: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:462:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:462:45: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:462:45: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:498:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:498:44: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:498:44: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:502:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:502:53: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:502:53: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:511:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:511:47: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:511:47: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:516:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:516:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:516:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:522:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:522:40: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:522:40: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:533:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:533:44: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:533:44: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:536:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:536:40: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:536:40: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:553:51: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:553:51: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:553:51: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:560:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:560:48: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:560:48: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:562:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:562:40: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:562:40: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:571:51: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:571:51: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:571:51: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:575:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:575:46: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:575:46: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:585:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:585:40: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:585:40: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:652:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct fsl_spi_reg *reg_base @@ got void [noderef] __iomem *reg_base @@
drivers/spi/spi-fsl-spi.c:652:18: sparse: expected struct fsl_spi_reg *reg_base
drivers/spi/spi-fsl-spi.c:652:18: sparse: got void [noderef] __iomem *reg_base
drivers/spi/spi-fsl-spi.c:655:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:655:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:655:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:656:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:656:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:656:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:657:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:657:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:657:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:658:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:658:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:658:32: sparse: got restricted __be32 *
drivers/spi/spi-fsl-spi.c:669:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected restricted __be32 [noderef] [usertype] __iomem *reg @@ got restricted __be32 * @@
drivers/spi/spi-fsl-spi.c:669:32: sparse: expected restricted __be32 [noderef] [usertype] __iomem *reg
drivers/spi/spi-fsl-spi.c:669:32: sparse: got restricted __be32 *
--
>> drivers/misc/habanalabs/goya/goya.c:2703:17: sparse: sparse: cast removes address space '__iomem' of expression
drivers/misc/habanalabs/goya/goya.c:808:23: sparse: sparse: cast truncates bits from constant value (7ffc113000 becomes fc113000)
drivers/misc/habanalabs/goya/goya.c:810:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:814:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:857:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:1066:9: sparse: sparse: cast truncates bits from constant value (8000000000 becomes 0)
drivers/misc/habanalabs/goya/goya.c:1541:23: sparse: sparse: cast truncates bits from constant value (7ffc113000 becomes fc113000)
drivers/misc/habanalabs/goya/goya.c:1543:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:1547:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:1590:23: sparse: sparse: cast truncates bits from constant value (7ffc113000 becomes fc113000)
drivers/misc/habanalabs/goya/goya.c:1592:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:1596:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:1628:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:1648:23: sparse: sparse: cast truncates bits from constant value (7ffc113000 becomes fc113000)
drivers/misc/habanalabs/goya/goya.c:1650:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:1654:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:1697:23: sparse: sparse: cast truncates bits from constant value (7ffc113000 becomes fc113000)
drivers/misc/habanalabs/goya/goya.c:1699:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:1703:17: sparse: sparse: cast truncates bits from constant value (7ffc800040 becomes fc800040)
drivers/misc/habanalabs/goya/goya.c:1738:22: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:2276:27: sparse: sparse: cast truncates bits from constant value (7ff0000000 becomes f0000000)
drivers/misc/habanalabs/goya/goya.c:3344:26: sparse: sparse: cast truncates bits from constant value (7ffc112000 becomes fc112000)
drivers/misc/habanalabs/goya/goya.c:3345:24: sparse: sparse: cast truncates bits from constant value (7ffc112ffc becomes fc112ffc)
--
>> drivers/usb/cdns3/drd.c:43:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
>> drivers/usb/cdns3/drd.c:43:42: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:43:42: sparse: got restricted __le32 *
>> drivers/usb/cdns3/drd.c:45:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
>> drivers/usb/cdns3/drd.c:45:42: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:45:42: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:47:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:47:42: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:47:42: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:49:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:49:42: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:49:42: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:71:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:71:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:71:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:81:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:81:30: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:81:30: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:114:24: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:114:24: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:114:24: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:124:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:124:48: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:124:48: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:141:56: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:141:56: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:141:56: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:144:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:144:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:144:23: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:144:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:144:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:144:23: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:154:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:154:29: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:154:29: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:156:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:156:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:156:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:156:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:156:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:156:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:178:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:178:55: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:178:55: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:182:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:182:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:182:23: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:182:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:182:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:182:23: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:197:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:197:29: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:197:29: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:199:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:199:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:199:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:199:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:199:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:199:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:219:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:219:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:219:25: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:284:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:284:26: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:284:26: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:303:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:303:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:303:25: sparse: got restricted __le32 *
>> drivers/usb/cdns3/drd.c:326:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_legacy_regs *otg_v0_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:326:27: sparse: expected struct cdns3_otg_legacy_regs *otg_v0_regs
>> drivers/usb/cdns3/drd.c:326:27: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:327:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:327:25: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:327:25: sparse: got restricted __le32 *
>> drivers/usb/cdns3/drd.c:330:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_common_regs *otg_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:330:32: sparse: expected struct cdns3_otg_common_regs *otg_regs
drivers/usb/cdns3/drd.c:330:32: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:331:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:331:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:331:32: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:332:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:332:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:332:17: sparse: got restricted __le32 *
>> drivers/usb/cdns3/drd.c:336:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cdns3_otg_regs *otg_v1_regs @@ got void [noderef] __iomem *[assigned] regs @@
drivers/usb/cdns3/drd.c:336:35: sparse: expected struct cdns3_otg_regs *otg_v1_regs
drivers/usb/cdns3/drd.c:336:35: sparse: got void [noderef] __iomem *[assigned] regs
drivers/usb/cdns3/drd.c:339:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:339:32: sparse: expected void volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:339:32: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:340:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:340:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:340:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:340:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:340:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:340:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:345:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:345:17: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:345:17: sparse: got restricted __le32 *
drivers/usb/cdns3/drd.c:368:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got restricted __le32 * @@
drivers/usb/cdns3/drd.c:368:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/usb/cdns3/drd.c:368:28: sparse: got restricted __le32 *
--
>> drivers/edac/x38_edac.c:168:35: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *window @@ got void *pvt_info @@
>> drivers/edac/x38_edac.c:168:35: sparse: expected void [noderef] __iomem *window
drivers/edac/x38_edac.c:168:35: sparse: got void *pvt_info
>> drivers/edac/x38_edac.c:362:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *pvt_info @@ got void [noderef] __iomem *[assigned] window @@
drivers/edac/x38_edac.c:362:23: sparse: expected void *pvt_info
>> drivers/edac/x38_edac.c:362:23: sparse: got void [noderef] __iomem *[assigned] window
>> drivers/edac/x38_edac.c:440:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *pvt_info @@
>> drivers/edac/x38_edac.c:440:20: sparse: expected void volatile [noderef] __iomem *addr
drivers/edac/x38_edac.c:440:20: sparse: got void *pvt_info
--
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned long long [usertype] * @@
>> arch/x86/kernel/signal.c:337:9: sparse: expected void const volatile [noderef] __user *
arch/x86/kernel/signal.c:337:9: sparse: got unsigned long long [usertype] *
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
>> arch/x86/kernel/signal.c:337:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned long long [usertype] * @@
arch/x86/kernel/signal.c:397:9: sparse: expected void const volatile [noderef] __user *
arch/x86/kernel/signal.c:397:9: sparse: got unsigned long long [usertype] *
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
arch/x86/kernel/signal.c:397:9: sparse: sparse: cast removes address space '__user' of expression
--
>> arch/x86/platform/geode/net5501.c:103:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char *rombase @@ got void [noderef] __iomem * @@
arch/x86/platform/geode/net5501.c:103:17: sparse: expected unsigned char *rombase
>> arch/x86/platform/geode/net5501.c:103:17: sparse: got void [noderef] __iomem *
>> arch/x86/platform/geode/net5501.c:127:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char *rombase @@
>> arch/x86/platform/geode/net5501.c:127:17: sparse: expected void volatile [noderef] __iomem *addr
arch/x86/platform/geode/net5501.c:127:17: sparse: got unsigned char *rombase
--
>> arch/x86/platform/olpc/olpc_ofw.c:32:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct pgd_t [usertype] *base @@ got void [noderef] __iomem * @@
arch/x86/platform/olpc/olpc_ofw.c:32:14: sparse: expected struct pgd_t [usertype] *base
>> arch/x86/platform/olpc/olpc_ofw.c:32:14: sparse: got void [noderef] __iomem *
>> arch/x86/platform/olpc/olpc_ofw.c:44:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got struct pgd_t [usertype] *base @@
>> arch/x86/platform/olpc/olpc_ofw.c:44:23: sparse: expected void [noderef] __iomem *addr
arch/x86/platform/olpc/olpc_ofw.c:44:23: sparse: got struct pgd_t [usertype] *base
--
>> drivers/gpu/drm/drm_bufs.c:225:45: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *handle @@ got void [noderef] __iomem * @@
drivers/gpu/drm/drm_bufs.c:225:45: sparse: expected void *handle
>> drivers/gpu/drm/drm_bufs.c:225:45: sparse: got void [noderef] __iomem *
drivers/gpu/drm/drm_bufs.c:228:45: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *handle @@ got void [noderef] __iomem * @@
drivers/gpu/drm/drm_bufs.c:228:45: sparse: expected void *handle
drivers/gpu/drm/drm_bufs.c:228:45: sparse: got void [noderef] __iomem *
>> drivers/gpu/drm/drm_bufs.c:343:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *handle @@
>> drivers/gpu/drm/drm_bufs.c:343:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/drm_bufs.c:343:36: sparse: got void *handle
drivers/gpu/drm/drm_bufs.c:360:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *handle @@
drivers/gpu/drm/drm_bufs.c:360:36: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/drm_bufs.c:360:36: sparse: got void *handle
drivers/gpu/drm/drm_bufs.c:536:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *handle @@
drivers/gpu/drm/drm_bufs.c:536:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/drm_bufs.c:536:28: sparse: got void *handle
--
>> drivers/gpu/drm/drm_vm.c:276:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *handle @@
>> drivers/gpu/drm/drm_vm.c:276:44: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/drm_vm.c:276:44: sparse: got void *handle
--
>> sound/soc/intel/atom/sst/sst_loader.c:212:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void *destn @@ got void [noderef] __iomem * @@
sound/soc/intel/atom/sst/sst_loader.c:212:43: sparse: expected void *destn
>> sound/soc/intel/atom/sst/sst_loader.c:212:43: sparse: got void [noderef] __iomem *
--
>> drivers/video/fbdev/cirrusfb.c:1851:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got char [noderef] __iomem *screen_base @@
drivers/video/fbdev/cirrusfb.c:1851:17: sparse: expected void *
drivers/video/fbdev/cirrusfb.c:1851:17: sparse: got char [noderef] __iomem *screen_base
--
drivers/ipack/carriers/tpci200.c:153:28: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> drivers/ipack/carriers/tpci200.c:153:28: sparse: struct slot_irq [noderef] __rcu *
drivers/ipack/carriers/tpci200.c:153:28: sparse: struct slot_irq *
drivers/ipack/carriers/tpci200.c:187:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/ipack/carriers/tpci200.c:187:9: sparse: struct slot_irq [noderef] __rcu *
drivers/ipack/carriers/tpci200.c:187:9: sparse: struct slot_irq *
drivers/ipack/carriers/tpci200.c:236:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/ipack/carriers/tpci200.c:236:9: sparse: struct slot_irq [noderef] __rcu *
drivers/ipack/carriers/tpci200.c:236:9: sparse: struct slot_irq *
--
>> drivers/ntb/ntb_transport.c:1790:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __iomem *offset @@
drivers/ntb/ntb_transport.c:1790:43: sparse: expected void *to
drivers/ntb/ntb_transport.c:1790:43: sparse: got void [noderef] __iomem *offset
>> drivers/ntb/ntb_transport.c:1790:56: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void *buf @@
>> drivers/ntb/ntb_transport.c:1790:56: sparse: expected void const [noderef] __user *from
drivers/ntb/ntb_transport.c:1790:56: sparse: got void *buf
--
>> drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: expected void const *
>> drivers/video/fbdev/geode/lxfb_ops.c:604:9: sparse: got void [noderef] __iomem *gp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: expected void const *
>> drivers/video/fbdev/geode/lxfb_ops.c:605:9: sparse: got void [noderef] __iomem *dc_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:606:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *vp_regs @@
drivers/video/fbdev/geode/lxfb_ops.c:606:9: sparse: expected void const *
>> drivers/video/fbdev/geode/lxfb_ops.c:606:9: sparse: got void [noderef] __iomem *vp_regs
>> drivers/video/fbdev/geode/lxfb_ops.c:607:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:607:9: sparse: expected void const *
>> drivers/video/fbdev/geode/lxfb_ops.c:607:9: sparse: got void [noderef] __iomem *
drivers/video/fbdev/geode/lxfb_ops.c:635:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:635:9: sparse: expected void const *
drivers/video/fbdev/geode/lxfb_ops.c:635:9: sparse: got void [noderef] __iomem *
>> drivers/video/fbdev/geode/lxfb_ops.c:761:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/lxfb_ops.c:761:9: sparse: expected void *
drivers/video/fbdev/geode/lxfb_ops.c:761:9: sparse: got void [noderef] __iomem *
--
>> drivers/video/fbdev/geode/suspend_gx.c:32:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *gp_regs @@
drivers/video/fbdev/geode/suspend_gx.c:32:9: sparse: expected void const *
>> drivers/video/fbdev/geode/suspend_gx.c:32:9: sparse: got void [noderef] __iomem *gp_regs
>> drivers/video/fbdev/geode/suspend_gx.c:33:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *dc_regs @@
drivers/video/fbdev/geode/suspend_gx.c:33:9: sparse: expected void const *
>> drivers/video/fbdev/geode/suspend_gx.c:33:9: sparse: got void [noderef] __iomem *dc_regs
>> drivers/video/fbdev/geode/suspend_gx.c:34:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *vid_regs @@
drivers/video/fbdev/geode/suspend_gx.c:34:9: sparse: expected void const *
>> drivers/video/fbdev/geode/suspend_gx.c:34:9: sparse: got void [noderef] __iomem *vid_regs
>> drivers/video/fbdev/geode/suspend_gx.c:35:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem * @@
drivers/video/fbdev/geode/suspend_gx.c:35:9: sparse: expected void const *
>> drivers/video/fbdev/geode/suspend_gx.c:35:9: sparse: got void [noderef] __iomem *
--
>> drivers/ntb/hw/mscc/ntb_hw_switchtec.c:897:29: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ntb/hw/mscc/ntb_hw_switchtec.c:897:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ntb_ctrl_regs [noderef] __iomem *mmio_ctrl @@ got void * @@
>> drivers/ntb/hw/mscc/ntb_hw_switchtec.c:897:26: sparse: expected struct ntb_ctrl_regs [noderef] __iomem *mmio_ctrl
drivers/ntb/hw/mscc/ntb_hw_switchtec.c:897:26: sparse: got void *
drivers/ntb/hw/mscc/ntb_hw_switchtec.c:899:30: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/ntb/hw/mscc/ntb_hw_switchtec.c:899:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ntb_dbmsg_regs [noderef] __iomem *mmio_dbmsg @@ got void * @@
>> drivers/ntb/hw/mscc/ntb_hw_switchtec.c:899:27: sparse: expected struct ntb_dbmsg_regs [noderef] __iomem *mmio_dbmsg
drivers/ntb/hw/mscc/ntb_hw_switchtec.c:899:27: sparse: got void *
drivers/ntb/hw/mscc/ntb_hw_switchtec.c:697:38: sparse: sparse: dereference of noderef expression
include/linux/io-64-nonatomic-lo-hi.h:75:19: sparse: sparse: cast truncates bits from constant value (10100000000 becomes 0)
--
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:97:22: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem *map @@
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:97:22: sparse: expected void *
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:97:22: sparse: got void [noderef] __iomem *map
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:155:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *map @@ got void * @@
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:155:21: sparse: expected void [noderef] __iomem *map
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:155:21: sparse: got void *
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:157:33: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:157:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *map @@ got unsigned char [usertype] * @@
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:157:30: sparse: expected void [noderef] __iomem *map
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:157:30: sparse: got unsigned char [usertype] *
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:162:22: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem *map @@
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:162:22: sparse: expected void *
drivers/gpu/drm/nouveau/nvkm/core/gpuobj.c:162:22: sparse: got void [noderef] __iomem *map
--
>> drivers/gpu/drm/nouveau/dispnv50/disp.c:163:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [usertype] *ptr @@ got void [noderef] __iomem *ptr @@
drivers/gpu/drm/nouveau/dispnv50/disp.c:163:19: sparse: expected unsigned int [usertype] *ptr
>> drivers/gpu/drm/nouveau/dispnv50/disp.c:163:19: sparse: got void [noderef] __iomem *ptr
--
>> drivers/gpu/drm/nouveau/nouveau_fence.c:215:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct nouveau_channel [noderef] __rcu *channel @@ got struct nouveau_channel *chan @@
>> drivers/gpu/drm/nouveau/nouveau_fence.c:215:25: sparse: expected struct nouveau_channel [noderef] __rcu *channel
drivers/gpu/drm/nouveau/nouveau_fence.c:215:25: sparse: got struct nouveau_channel *chan
--
>> drivers/gpu/drm/nouveau/nv04_fence.c:42:45: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct nouveau_channel *chan @@ got struct nouveau_channel [noderef] __rcu *channel @@
drivers/gpu/drm/nouveau/nv04_fence.c:42:45: sparse: expected struct nouveau_channel *chan
>> drivers/gpu/drm/nouveau/nv04_fence.c:42:45: sparse: got struct nouveau_channel [noderef] __rcu *channel
--
>> drivers/gpu/drm/nouveau/nv10_fence.c:32:45: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct nouveau_channel *chan @@ got struct nouveau_channel [noderef] __rcu *channel @@
drivers/gpu/drm/nouveau/nv10_fence.c:32:45: sparse: expected struct nouveau_channel *chan
>> drivers/gpu/drm/nouveau/nv10_fence.c:32:45: sparse: got struct nouveau_channel [noderef] __rcu *channel
--
>> drivers/gpu/drm/nouveau/nv84_fence.c:70:45: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct nouveau_channel *chan @@ got struct nouveau_channel [noderef] __rcu *channel @@
drivers/gpu/drm/nouveau/nv84_fence.c:70:45: sparse: expected struct nouveau_channel *chan
>> drivers/gpu/drm/nouveau/nv84_fence.c:70:45: sparse: got struct nouveau_channel [noderef] __rcu *channel
--
>> drivers/gpu/drm/nouveau/nvif/object.c:236:41: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *ptr @@ got void * @@
>> drivers/gpu/drm/nouveau/nvif/object.c:236:41: sparse: expected void [noderef] __iomem *ptr
drivers/gpu/drm/nouveau/nvif/object.c:236:41: sparse: got void *
--
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: got void *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: got void *
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] emap @@
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: got void *[assigned] emap
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *map @@ got void [noderef] __iomem * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: expected void *map
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: got void [noderef] __iomem *
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: got void *map
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *map @@ got void *map @@
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: expected void [noderef] __iomem *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: got void *map
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: got void *[assigned] map
--
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:182:20: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int [usertype] *vaddr @@
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:182:20: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:182:20: sparse: got unsigned int [usertype] *vaddr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:225:26: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned int [usertype] *vaddr @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:225:26: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c:225:26: sparse: got unsigned int [usertype] *vaddr
--
>> drivers/gpu/drm/ast/ast_mode.c:1455:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] * @@
>> drivers/gpu/drm/ast/ast_mode.c:1455:23: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1455:23: sparse: got unsigned char [usertype] *
drivers/gpu/drm/ast/ast_mode.c:1456:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] * @@
drivers/gpu/drm/ast/ast_mode.c:1456:23: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1456:23: sparse: got unsigned char [usertype] *
>> drivers/gpu/drm/ast/ast_mode.c:1386:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[assigned] dstxor @@
drivers/gpu/drm/ast/ast_mode.c:1386:43: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1386:43: sparse: got unsigned char [usertype] *[assigned] dstxor
drivers/gpu/drm/ast/ast_mode.c:1398:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[assigned] dstxor @@
drivers/gpu/drm/ast/ast_mode.c:1398:43: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1398:43: sparse: got unsigned char [usertype] *[assigned] dstxor
>> drivers/gpu/drm/ast/ast_mode.c:1419:22: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] dst @@
drivers/gpu/drm/ast/ast_mode.c:1419:22: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1419:22: sparse: got void *[assigned] dst
>> drivers/gpu/drm/ast/ast_mode.c:1420:27: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/ast/ast_mode.c:1420:27: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1420:27: sparse: got void *
drivers/gpu/drm/ast/ast_mode.c:1421:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/ast/ast_mode.c:1421:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1421:28: sparse: got void *
drivers/gpu/drm/ast/ast_mode.c:1422:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/ast/ast_mode.c:1422:23: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1422:23: sparse: got void *
drivers/gpu/drm/ast/ast_mode.c:1423:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/ast/ast_mode.c:1423:23: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ast/ast_mode.c:1423:23: sparse: got void *

vim +93 drivers/spi/spi-fsl-spi.c

c3f3e7717f1cf0 drivers/spi/spi-fsl-spi.c Andreas Larsson 2013-02-15 88
b36ece832512c1 drivers/spi/spi_fsl_spi.c Mingkai Hu 2010-10-12 89 static void fsl_spi_change_mode(struct spi_device *spi)
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 90 {
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 91 struct mpc8xxx_spi *mspi = spi_master_get_devdata(spi->master);
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 92 struct spi_mpc8xxx_cs *cs = spi->controller_state;
b36ece832512c1 drivers/spi/spi_fsl_spi.c Mingkai Hu 2010-10-12 @93 struct fsl_spi_reg *reg_base = mspi->reg_base;
b36ece832512c1 drivers/spi/spi_fsl_spi.c Mingkai Hu 2010-10-12 @94 __be32 __iomem *mode = &reg_base->mode;
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 95 unsigned long flags;
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 96
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 97 if (cs->hw_mode == mpc8xxx_spi_read_reg(mode))
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 98 return;
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 99
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 100 /* Turn off IRQs locally to minimize time that SPI is disabled. */
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 101 local_irq_save(flags);
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 102
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 103 /* Turn off SPI unit prior changing mode */
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 104 mpc8xxx_spi_write_reg(mode, cs->hw_mode & ~SPMODE_ENABLE);
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 105
4c1fba442960cf drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 106 /* When in CPM mode, we need to reinit tx and rx. */
4c1fba442960cf drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 107 if (mspi->flags & SPI_CPM_MODE) {
e8beacbb85a5c1 drivers/spi/spi-fsl-spi.c Andreas Larsson 2013-02-15 108 fsl_spi_cpm_reinit_txrx(mspi);
4c1fba442960cf drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 109 }
f9218c2a60facc drivers/spi/spi_mpc8xxx.c Joakim Tjernlund 2010-05-22 110 mpc8xxx_spi_write_reg(mode, cs->hw_mode);
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 111 local_irq_restore(flags);
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 112 }
a35c1710956f7a drivers/spi/spi_mpc8xxx.c Anton Vorontsov 2009-10-12 113

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (56.09 kB)
.config.gz (36.55 kB)
Download all attachments

2020-06-18 16:22:39

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

Hi Luc,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Luc-Van-Oostenryck/sparse-use-identifiers-to-define-address-spaces/20200618-060614
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a5dc8300df75e8b8384b4c82225f1e4a0b4d9b55
config: mips-randconfig-s031-20200618 (attached as .config)
compiler: mips64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
# save the attached .config to linux build tree
make W=1 C=1 ARCH=mips CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

>> arch/mips/include/asm/syscall.h:78:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__gu_ptr @@ got int * @@
>> arch/mips/include/asm/syscall.h:78:25: sparse: expected int const [noderef] __user *__gu_ptr
arch/mips/include/asm/syscall.h:78:25: sparse: got int *
>> arch/mips/include/asm/syscall.h:78:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__gu_ptr @@ got int * @@
>> arch/mips/include/asm/syscall.h:78:25: sparse: expected int const [noderef] __user *__gu_ptr
arch/mips/include/asm/syscall.h:78:25: sparse: got int *
--
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int [usertype] * @@
>> arch/mips/kernel/signal.c:280:13: sparse: expected void const volatile [noderef] __user *
arch/mips/kernel/signal.c:280:13: sparse: got unsigned int [usertype] *
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:293:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int * @@
arch/mips/kernel/signal.c:293:23: sparse: expected void const volatile [noderef] __user *
arch/mips/kernel/signal.c:293:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int * @@
arch/mips/kernel/signal.c:300:23: sparse: expected void const volatile [noderef] __user *
arch/mips/kernel/signal.c:300:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:661:17: sparse: sparse: symbol 'sys_rt_sigreturn' was not declared. Should it be static?
arch/mips/kernel/signal.c:157:14: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
>> arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
arch/mips/kernel/signal.c:157:14: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
>> arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
--
>> arch/mips/kernel/syscall.c:173:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int * @@
>> arch/mips/kernel/syscall.c:173:31: sparse: expected void const volatile [noderef] __user *
arch/mips/kernel/syscall.c:173:31: sparse: got unsigned int *
arch/mips/kernel/syscall.c:174:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user * @@ got unsigned int * @@
arch/mips/kernel/syscall.c:174:32: sparse: expected void const volatile [noderef] __user *
arch/mips/kernel/syscall.c:174:32: sparse: got unsigned int *
--
arch/mips/kernel/traps.c:515:14: sparse: sparse: symbol 'll_bit' was not declared. Should it be static?
arch/mips/kernel/traps.c:516:20: sparse: sparse: symbol 'll_task' was not declared. Should it be static?
arch/mips/kernel/traps.c:740:17: sparse: sparse: symbol 'do_ov' was not declared. Should it be static?
arch/mips/kernel/traps.c:1017:17: sparse: sparse: symbol 'do_bp' was not declared. Should it be static?
arch/mips/kernel/traps.c:1109:17: sparse: sparse: symbol 'do_tr' was not declared. Should it be static?
>> arch/mips/kernel/traps.c:1178:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __user *fault_addr @@ got unsigned long * @@
>> arch/mips/kernel/traps.c:1178:47: sparse: expected void [noderef] __user *fault_addr
arch/mips/kernel/traps.c:1178:47: sparse: got unsigned long *
arch/mips/kernel/traps.c:1151:17: sparse: sparse: symbol 'do_ri' was not declared. Should it be static?
arch/mips/kernel/traps.c:1390:17: sparse: sparse: symbol 'do_cpu' was not declared. Should it be static?
arch/mips/kernel/traps.c:1495:17: sparse: sparse: symbol 'do_msa_fpe' was not declared. Should it be static?
arch/mips/kernel/traps.c:1515:17: sparse: sparse: symbol 'do_msa' was not declared. Should it be static?
arch/mips/kernel/traps.c:1536:17: sparse: sparse: symbol 'do_mdmx' was not declared. Should it be static?
arch/mips/kernel/traps.c:1548:17: sparse: sparse: symbol 'do_watch' was not declared. Should it be static?
arch/mips/kernel/traps.c:1575:17: sparse: sparse: symbol 'do_mcheck' was not declared. Should it be static?
arch/mips/kernel/traps.c:1606:17: sparse: sparse: symbol 'do_mt' was not declared. Should it be static?
arch/mips/kernel/traps.c:1642:17: sparse: sparse: symbol 'do_dsp' was not declared. Should it be static?
arch/mips/kernel/traps.c:1650:17: sparse: sparse: symbol 'do_reserved' was not declared. Should it be static?
arch/mips/kernel/traps.c:1874:17: sparse: sparse: symbol 'do_ftlb' was not declared. Should it be static?
arch/mips/kernel/traps.c:1971:15: sparse: sparse: symbol 'vi_handlers' was not declared. Should it be static?
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:151:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:151:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:151:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:151:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: got void [noderef] __iomem *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: got void [noderef] __iomem *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: got void [noderef] __iomem *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:151:1: sparse: expected void *
>> arch/mips/include/asm/mips-cm.h:151:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void * @@
>> arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
arch/mips/include/asm/mips-cm.h:165:1: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/mips/include/asm/mips-cm.h:165:1: sparse: expected void *
arch/mips/include/asm/mips-cm.h:165:1: sparse: got void [noderef] __iomem *
--
>> arch/mips/kernel/vdso.c:161:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile *address @@ got void [noderef] __iomem * @@
arch/mips/kernel/vdso.c:161:54: sparse: expected void const volatile *address
>> arch/mips/kernel/vdso.c:161:54: sparse: got void [noderef] __iomem *
--
arch/mips/kernel/ptrace32.c:70:21: sparse: sparse: Using plain integer as NULL pointer
>> arch/mips/kernel/ptrace32.c:73:51: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/ptrace32.c:183:21: sparse: sparse: Using plain integer as NULL pointer
arch/mips/kernel/ptrace32.c:186:46: sparse: sparse: cast removes address space '__user' of expression
--
>> arch/mips/kernel/signal32.c:67:24: sparse: sparse: cast removes address space '__user' of expression
--
>> arch/mips/kernel/crash_dump.c:48:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got char *buf @@
>> arch/mips/kernel/crash_dump.c:48:34: sparse: expected void [noderef] __user *to
arch/mips/kernel/crash_dump.c:48:34: sparse: got char *buf
--
>> arch/mips/vdso/vdso-image.c:13:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[usertype] vdso @@ got void [noderef] __user * @@
arch/mips/vdso/vdso-image.c:13:35: sparse: expected void *[usertype] vdso
>> arch/mips/vdso/vdso-image.c:13:35: sparse: got void [noderef] __user *
--
>> arch/mips/vdso/vdso-o32-image.c:13:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[usertype] vdso @@ got void [noderef] __user * @@
arch/mips/vdso/vdso-o32-image.c:13:35: sparse: expected void *[usertype] vdso
>> arch/mips/vdso/vdso-o32-image.c:13:35: sparse: got void [noderef] __user *
--
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
--
>> drivers/tty/tty_ioctl.c:385:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct ktermios [noderef] __user *k @@ got struct ktermios * @@
>> drivers/tty/tty_ioctl.c:385:53: sparse: expected struct ktermios [noderef] __user *k
drivers/tty/tty_ioctl.c:385:53: sparse: got struct ktermios *
>> drivers/tty/tty_ioctl.c:386:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct termios2 *u @@ got struct termios2 [noderef] __user * @@
drivers/tty/tty_ioctl.c:386:50: sparse: expected struct termios2 *u
>> drivers/tty/tty_ioctl.c:386:50: sparse: got struct termios2 [noderef] __user *
>> arch/mips/include/asm/termios.h:84:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got struct ktermios [noderef] __user *k @@
arch/mips/include/asm/termios.h:84:31: sparse: expected void *to
>> arch/mips/include/asm/termios.h:84:31: sparse: got struct ktermios [noderef] __user *k
>> arch/mips/include/asm/termios.h:84:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct termios2 *u @@
>> arch/mips/include/asm/termios.h:84:34: sparse: expected void const [noderef] __user *from
arch/mips/include/asm/termios.h:84:34: sparse: got struct termios2 *u
--
>> net/ipv4/tcp_cong.c:228:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct tcp_congestion_ops const *prev @@ got struct tcp_congestion_ops const [noderef] __rcu *[assigned] __res @@
net/ipv4/tcp_cong.c:228:22: sparse: expected struct tcp_congestion_ops const *prev
>> net/ipv4/tcp_cong.c:228:22: sparse: got struct tcp_congestion_ops const [noderef] __rcu *[assigned] __res
--
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:213:13: sparse: sparse: Using plain integer as NULL pointer
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:884:21: sparse: sparse: Using plain integer as NULL pointer
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:964:21: sparse: sparse: Using plain integer as NULL pointer
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1036:13: sparse: sparse: Using plain integer as NULL pointer
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1225:13: sparse: sparse: Using plain integer as NULL pointer
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1370:13: sparse: sparse: Using plain integer as NULL pointer
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to
>> arch/mips/include/asm/uaccess.h:629:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:629:24: sparse: expected void *register __cu_to_r
>> arch/mips/include/asm/uaccess.h:629:24: sparse: got void [noderef] __user *to
arch/mips/include/asm/uaccess.h:631:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *register __cu_to_r @@ got void [noderef] __user *to @@
arch/mips/include/asm/uaccess.h:631:24: sparse: expected void *register __cu_to_r
arch/mips/include/asm/uaccess.h:631:24: sparse: got void [noderef] __user *to

vim +78 arch/mips/include/asm/syscall.h

c0ff3c53d4f99f Ralf Baechle 2012-08-17 73
c0ff3c53d4f99f Ralf Baechle 2012-08-17 74 #ifdef CONFIG_64BIT
c0ff3c53d4f99f Ralf Baechle 2012-08-17 75 case 4: case 5: case 6: case 7:
c0ff3c53d4f99f Ralf Baechle 2012-08-17 76 #ifdef CONFIG_MIPS32_O32
c50cbd85cd7027 Dmitry V. Levin 2018-11-21 77 if (test_tsk_thread_flag(task, TIF_32BIT_REGS))
077ff3be06e8de Nathan Chancellor 2019-08-11 @78 get_user(*arg, (int *)usp + n);
c0ff3c53d4f99f Ralf Baechle 2012-08-17 79 else
c0ff3c53d4f99f Ralf Baechle 2012-08-17 80 #endif
c0ff3c53d4f99f Ralf Baechle 2012-08-17 81 *arg = regs->regs[4 + n];
c0ff3c53d4f99f Ralf Baechle 2012-08-17 82
077ff3be06e8de Nathan Chancellor 2019-08-11 83 return;
c0ff3c53d4f99f Ralf Baechle 2012-08-17 84 #endif
c0ff3c53d4f99f Ralf Baechle 2012-08-17 85
c0ff3c53d4f99f Ralf Baechle 2012-08-17 86 default:
c0ff3c53d4f99f Ralf Baechle 2012-08-17 87 BUG();
c0ff3c53d4f99f Ralf Baechle 2012-08-17 88 }
f5179287b016cc Ralf Baechle 2014-02-10 89
f5179287b016cc Ralf Baechle 2014-02-10 90 unreachable();
c0ff3c53d4f99f Ralf Baechle 2012-08-17 91 }
c0ff3c53d4f99f Ralf Baechle 2012-08-17 92

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (66.51 kB)
.config.gz (28.30 kB)
Download all attachments

2020-06-18 17:01:42

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

Hi Luc,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.8-rc1 next-20200618]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Luc-Van-Oostenryck/sparse-use-identifiers-to-define-address-spaces/20200618-060614
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a5dc8300df75e8b8384b4c82225f1e4a0b4d9b55
config: x86_64-randconfig-s031-20200618 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

>> fs/f2fs/trace.c:142:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void **slot @@ got void [noderef] __rcu ** @@
fs/f2fs/trace.c:142:9: sparse: expected void **slot
>> fs/f2fs/trace.c:142:9: sparse: got void [noderef] __rcu **
>> fs/f2fs/trace.c:142:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void **slot @@ got void [noderef] __rcu ** @@
fs/f2fs/trace.c:142:9: sparse: expected void **slot
>> fs/f2fs/trace.c:142:9: sparse: got void [noderef] __rcu **
>> fs/f2fs/trace.c:142:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __rcu **slot @@ got void **slot @@
>> fs/f2fs/trace.c:142:9: sparse: expected void [noderef] __rcu **slot
fs/f2fs/trace.c:142:9: sparse: got void **slot
>> fs/f2fs/trace.c:142:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void **slot @@ got void [noderef] __rcu ** @@
fs/f2fs/trace.c:142:9: sparse: expected void **slot
>> fs/f2fs/trace.c:142:9: sparse: got void [noderef] __rcu **
--
kernel/sched/core.c:512:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:512:38: sparse: expected struct task_struct *curr
kernel/sched/core.c:512:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:567:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/core.c:567:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/core.c:567:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/core.c:1432:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:1432:33: sparse: expected struct task_struct *p
kernel/sched/core.c:1432:33: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:1432:68: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:1432:68: sparse: expected struct task_struct *tsk
kernel/sched/core.c:1432:68: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:2176:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/core.c:2176:17: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/core.c:2176:17: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/core.c:2342:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct const *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:2342:36: sparse: expected struct task_struct const *p
kernel/sched/core.c:2342:36: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:3650:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:3650:38: sparse: expected struct task_struct *curr
kernel/sched/core.c:3650:38: sparse: got struct task_struct [noderef] __rcu *curr
>> kernel/sched/core.c:3735:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:3735:14: sparse: expected struct task_struct *curr
kernel/sched/core.c:3735:14: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:4083:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *prev @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:4083:14: sparse: expected struct task_struct *prev
kernel/sched/core.c:4083:14: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:4506:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:4506:17: sparse: struct task_struct *
kernel/sched/core.c:4506:17: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:4705:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:4705:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:4705:22: sparse: struct task_struct *
kernel/sched/core.c:8011:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/core.c:8011:25: sparse: expected struct task_struct *p
kernel/sched/core.c:8011:25: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/pelt.h:80:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct const *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/pelt.h:80:13: sparse: expected struct task_struct const *p
kernel/sched/pelt.h:80:13: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/core.c:1415:33: sparse: sparse: dereference of noderef expression
kernel/sched/core.c:1416:19: sparse: sparse: dereference of noderef expression
kernel/sched/core.c:1419:40: sparse: sparse: dereference of noderef expression
kernel/sched/sched.h:1657:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1657:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1657:25: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1809:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1809:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1809:9: sparse: struct task_struct *
kernel/sched/core.c:1388:38: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/core.c:1388:38: sparse: struct task_struct [noderef] __rcu *
kernel/sched/core.c:1388:38: sparse: struct task_struct const *
kernel/sched/sched.h:1657:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1657:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1657:25: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1657:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1657:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1657:25: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1809:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1809:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1809:9: sparse: struct task_struct *
kernel/sched/sched.h:1657:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1657:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1657:25: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1809:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1809:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1809:9: sparse: struct task_struct *
kernel/sched/sched.h:1657:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1657:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1657:25: sparse: struct task_struct *
kernel/sched/sched.h:1803:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1803:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1803:9: sparse: struct task_struct *
kernel/sched/sched.h:1809:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:1809:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:1809:9: sparse: struct task_struct *
--
>> drivers/mtd/maps/nettel.c:179:25: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/mtd/maps/nettel.c:223:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static [assigned] [toplevel] nettel_mmcrp @@
>> drivers/mtd/maps/nettel.c:223:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/mtd/maps/nettel.c:223:25: sparse: got void *static [assigned] [toplevel] nettel_mmcrp
drivers/mtd/maps/nettel.c:416:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static [assigned] [toplevel] nettel_mmcrp @@
drivers/mtd/maps/nettel.c:416:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/mtd/maps/nettel.c:416:17: sparse: got void *static [assigned] [toplevel] nettel_mmcrp
drivers/mtd/maps/nettel.c:434:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static [assigned] [toplevel] nettel_mmcrp @@
drivers/mtd/maps/nettel.c:434:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/mtd/maps/nettel.c:434:25: sparse: got void *static [assigned] [toplevel] nettel_mmcrp
--
>> net/netfilter/nf_tables_api.c:1405:25: sparse: sparse: cast between address spaces (__percpu -> __rcu)
net/netfilter/nf_tables_api.c:1405:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/netfilter/nf_tables_api.c:1405:25: sparse: struct nft_stats [noderef] __rcu *
>> net/netfilter/nf_tables_api.c:1405:25: sparse: struct nft_stats [noderef] __percpu *
>> net/netfilter/nf_tables_api.c:1567:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected struct nft_stats [noderef] __percpu * @@ got void * @@
net/netfilter/nf_tables_api.c:1570:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected struct nft_stats [noderef] __percpu * @@ got void * @@
net/netfilter/nf_tables_api.c:1574:31: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected struct nft_stats [noderef] __percpu * @@ got void * @@
net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: cast between address spaces (__percpu -> __rcu)
net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_tables_api.c:1596:17: sparse: struct nft_stats [noderef] __rcu *
net/netfilter/nf_tables_api.c:1596:17: sparse: struct nft_stats [noderef] __percpu *
net/netfilter/nf_tables_api.c:1596:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_tables_api.c:1596:17: sparse: struct nft_stats [noderef] __rcu *
net/netfilter/nf_tables_api.c:1596:17: sparse: struct nft_stats [noderef] __percpu *
net/netfilter/nf_tables_api.c:1639:21: sparse: sparse: cast between address spaces (__percpu -> __rcu)
net/netfilter/nf_tables_api.c:1639:21: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_tables_api.c:1639:21: sparse: struct nft_stats [noderef] __rcu *
net/netfilter/nf_tables_api.c:1639:21: sparse: struct nft_stats [noderef] __percpu *
net/netfilter/nf_tables_api.c:1947:25: sparse: sparse: cast between address spaces (__percpu -> __rcu)
net/netfilter/nf_tables_api.c:1947:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_tables_api.c:1947:25: sparse: struct nft_stats [noderef] __rcu *
net/netfilter/nf_tables_api.c:1947:25: sparse: struct nft_stats [noderef] __percpu *
>> net/netfilter/nf_tables_api.c:2097:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct nft_stats *stats @@ got struct nft_stats [noderef] __percpu * @@
>> net/netfilter/nf_tables_api.c:2108:38: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct nft_stats [noderef] __percpu *stats @@ got struct nft_stats *stats @@
>> net/netfilter/nf_tables_api.c:2144:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __percpu *__pdata @@ got struct nft_stats *stats @@
include/linux/rcupdate.h:686:9: sparse: sparse: context imbalance in 'nft_netlink_dump_start_rcu' - unexpected unlock
--
>> fs/coda/upcall.c:618:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
fs/coda/upcall.c:618:31: sparse: expected struct spinlock [usertype] *lock
>> fs/coda/upcall.c:618:31: sparse: got struct spinlock [noderef] __rcu *
fs/coda/upcall.c:627:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
fs/coda/upcall.c:627:33: sparse: expected struct spinlock [usertype] *lock
fs/coda/upcall.c:627:33: sparse: got struct spinlock [noderef] __rcu *
fs/coda/upcall.c:632:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
fs/coda/upcall.c:632:31: sparse: expected struct spinlock [usertype] *lock
fs/coda/upcall.c:632:31: sparse: got struct spinlock [noderef] __rcu *
fs/coda/upcall.c:635:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
fs/coda/upcall.c:635:33: sparse: expected struct spinlock [usertype] *lock
fs/coda/upcall.c:635:33: sparse: got struct spinlock [noderef] __rcu *

vim +142 fs/f2fs/trace.c

351f4fba843db3 Jaegeuk Kim 2015-01-07 130
351f4fba843db3 Jaegeuk Kim 2015-01-07 131 #define PIDVEC_SIZE 128
351f4fba843db3 Jaegeuk Kim 2015-01-07 132 static unsigned int gang_lookup_pids(pid_t *results, unsigned long first_index,
351f4fba843db3 Jaegeuk Kim 2015-01-07 133 unsigned int max_items)
351f4fba843db3 Jaegeuk Kim 2015-01-07 134 {
351f4fba843db3 Jaegeuk Kim 2015-01-07 135 struct radix_tree_iter iter;
351f4fba843db3 Jaegeuk Kim 2015-01-07 136 void **slot;
351f4fba843db3 Jaegeuk Kim 2015-01-07 137 unsigned int ret = 0;
351f4fba843db3 Jaegeuk Kim 2015-01-07 138
351f4fba843db3 Jaegeuk Kim 2015-01-07 139 if (unlikely(!max_items))
351f4fba843db3 Jaegeuk Kim 2015-01-07 140 return 0;
351f4fba843db3 Jaegeuk Kim 2015-01-07 141
351f4fba843db3 Jaegeuk Kim 2015-01-07 @142 radix_tree_for_each_slot(slot, &pids, &iter, first_index) {
351f4fba843db3 Jaegeuk Kim 2015-01-07 143 results[ret] = iter.index;
b0beab5016d040 Sheng Yong 2017-03-08 144 if (++ret == max_items)
351f4fba843db3 Jaegeuk Kim 2015-01-07 145 break;
351f4fba843db3 Jaegeuk Kim 2015-01-07 146 }
351f4fba843db3 Jaegeuk Kim 2015-01-07 147 return ret;
351f4fba843db3 Jaegeuk Kim 2015-01-07 148 }
351f4fba843db3 Jaegeuk Kim 2015-01-07 149

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (18.62 kB)
.config.gz (31.52 kB)
Download all attachments

2020-06-18 17:02:51

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

On Thu, Jun 18, 2020 at 3:06 AM kernel test robot <[email protected]> wrote:
>
> I love your patch! Perhaps something to improve:

The new warnings don't seem to be due to the kernel test robot having
an old version of sparse, but just because the error strings changed,
and presumably the kernel test robot has some "ignore old sparse
warnings" logic.

So the warnings all look new, even if they aren't.

I'm planning on applying that patch soon, so this is just a heads-up
that that will (again) cause the big number of warning string changes,
but hopefully that will be a one-time event and the test robot will
learn.

Linus

2020-06-18 19:16:53

by Luc Van Oostenryck

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

On Thu, Jun 18, 2020 at 09:59:05AM -0700, Linus Torvalds wrote:
>
> The new warnings don't seem to be due to the kernel test robot having
> an old version of sparse, but just because the error strings changed,
> and presumably the kernel test robot has some "ignore old sparse
> warnings" logic.
>
> So the warnings all look new, even if they aren't.

What is strange is that only some of these warnings are shown as
new, but not all. For example it shows
>> drivers/spi/spi-fsl-spi.c:93:44: sparse: got void [noderef] __iomem *reg_base

as new, but not the following one:
drivers/spi/spi-fsl-spi.c:294:44: sparse: got void [noderef] __iomem *reg_base

while both have their string changed (__iomem).

Just to be sure, I checked this file and (of course) all these
warnings are old ones, caused by a missing __iomem in the assignments:
struct fsl_spi_reg *reg_base = mspi->reg_base;

Why some are shown as new and some as old is a mystery to me.

-- Luc

2020-06-19 08:12:43

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

Hi Luc,

On Thu, Jun 18, 2020 at 7:05 AM Luc Van Oostenryck
<[email protected]> wrote:
> On Thu, Jun 18, 2020 at 03:22:15AM +0200, Miguel Ojeda wrote:
> > On Thu, Jun 18, 2020 at 12:02 AM Luc Van Oostenryck
> > <[email protected]> wrote:
> > >
> > > diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
> > > index 21aed0981edf..e368384445b6 100644
> > > --- a/include/linux/compiler_types.h
> > > +++ b/include/linux/compiler_types.h
> > > @@ -5,20 +5,20 @@
> > > #ifndef __ASSEMBLY__
> > >
> > > #ifdef __CHECKER__
> > > -# define __user __attribute__((noderef, address_space(1)))
> > > # define __kernel __attribute__((address_space(0)))
> > > +# define __user __attribute__((noderef, address_space(__user)))
> >
> > I guess `__kernel` moves to the first place since it uses the first
> > address space?
>
> No, there is no really an order between address spaces. Even before
> this patch, the number were only used as an ID to distinguish them
> from each other.
>
> I just moved __kernel above because it is quite different from
> the others because it's the default one, and so:
> * it's never displayed
> * it's normally not needed, nor in type annotations, nor in cast
> between address spaces. The only time it's needed is when it's
> combined with a typeof to express "the same type as this one but
> without the address space"
> * it can't be defined with a name, '0' must be used.
>
> So, it seemed strange to me to have it in the middle of the other ones.

Indeed. It looks like this whole list is completely unsorted, and was created
by appending new definitions at the bottom.
So perhaps all the address_space ones should be grouped together?

Gr{oetje,eeting}s,

Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2020-06-19 10:07:14

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

On Fri, Jun 19, 2020 at 10:07 AM Geert Uytterhoeven
<[email protected]> wrote:
>
> Indeed. It looks like this whole list is completely unsorted, and was created
> by appending new definitions at the bottom.

The "historical ordering" :)

+1 for sorting, whatever the ordering (and perhaps adding a comment
saying which one it is).

Cheers,
Miguel

2020-06-19 17:59:29

by Luc Van Oostenryck

[permalink] [raw]
Subject: Re: [PATCH] sparse: use identifiers to define address spaces

On Fri, Jun 19, 2020 at 10:07:34AM +0200, Geert Uytterhoeven wrote:
>
> Indeed. It looks like this whole list is completely unsorted, and was created
> by appending new definitions at the bottom.
> So perhaps all the address_space ones should be grouped together?

Hi Geert & Miguel,

Yes, some cleanup is welcome, I think.
I'll send this in a separate patch soon.

Thanks for reporting,
-- Luc