fs/cifs/transport.c:1284:2-8: preceding lock on line 1277 (fwd)
by Julia Lawall
Hello,
This is not actually a bug. But for both tools and humans, it might be
better to refer to the lock on line 1281 in the same way that it is
referred to on line 1277.
julia
---------- Forwarded message ----------
Date: Thu, 18 Jun 2020 08:07:12 +0800
From: kernel test robot <lkp(a)intel.com>
To: kbuild(a)lists.01.org
Cc: lkp(a)intel.com, Julia Lawall <julia.lawall(a)lip6.fr>
Subject: fs/cifs/transport.c:1284:2-8: preceding lock on line 1277
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Ronnie Sahlberg <lsahlber(a)redhat.com>
CC: Steve French <stfrench(a)microsoft.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: afe6f65353b644f55875d42d812ffe87f1887d68 cifs: add new debugging macro cifs_server_dbg
date: 9 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 9 months ago
config: xtensa-randconfig-c024-20200617 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Julia Lawall <julia.lawall(a)lip6.fr>
coccinelle warnings: (new ones prefixed by >>)
>> fs/cifs/transport.c:1284:2-8: preceding lock on line 1277
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout afe6f65353b644f55875d42d812ffe87f1887d68
vim +1284 fs/cifs/transport.c
738f9de5cdb917 Pavel Shilovsky 2016-11-23 1233
^1da177e4c3f41 Linus Torvalds 2005-04-16 1234 int
96daf2b09178d8 Steve French 2011-05-27 1235 SendReceive(const unsigned int xid, struct cifs_ses *ses,
^1da177e4c3f41 Linus Torvalds 2005-04-16 1236 struct smb_hdr *in_buf, struct smb_hdr *out_buf,
480b1cb9dad894 Ronnie Sahlberg 2019-03-08 1237 int *pbytes_returned, const int flags)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1238 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 1239 int rc = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1240 struct mid_q_entry *midQ;
fb2036d817584d Pavel Shilovsky 2016-11-23 1241 unsigned int len = be32_to_cpu(in_buf->smb_buf_length);
fb2036d817584d Pavel Shilovsky 2016-11-23 1242 struct kvec iov = { .iov_base = in_buf, .iov_len = len };
fb2036d817584d Pavel Shilovsky 2016-11-23 1243 struct smb_rqst rqst = { .rq_iov = &iov, .rq_nvec = 1 };
34f4deb7c56c6f Pavel Shilovsky 2019-01-16 1244 struct cifs_credits credits = { .value = 1, .instance = 0 };
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1245 struct TCP_Server_Info *server = ses->server;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1246
^1da177e4c3f41 Linus Torvalds 2005-04-16 1247 if (ses == NULL) {
f96637be081141 Joe Perches 2013-05-04 1248 cifs_dbg(VFS, "Null smb session\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 1249 return -EIO;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1250 }
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1251 if (server == NULL) {
f96637be081141 Joe Perches 2013-05-04 1252 cifs_dbg(VFS, "Null tcp session\n");
^1da177e4c3f41 Linus Torvalds 2005-04-16 1253 return -EIO;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1254 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1255
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1256 if (server->tcpStatus == CifsExiting)
31ca3bc3c569f9 Steve French 2005-04-28 1257 return -ENOENT;
31ca3bc3c569f9 Steve French 2005-04-28 1258
^1da177e4c3f41 Linus Torvalds 2005-04-16 1259 /* Ensure that we do not send more than 50 overlapping requests
^1da177e4c3f41 Linus Torvalds 2005-04-16 1260 to the same server. We may make this configurable later or
^1da177e4c3f41 Linus Torvalds 2005-04-16 1261 use ses->maxReq */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1262
fb2036d817584d Pavel Shilovsky 2016-11-23 1263 if (len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1264 cifs_server_dbg(VFS, "Illegal length, greater than maximum frame, %d\n",
fb2036d817584d Pavel Shilovsky 2016-11-23 1265 len);
6d9c6d543165d1 Volker Lendecke 2008-12-08 1266 return -EIO;
6d9c6d543165d1 Volker Lendecke 2008-12-08 1267 }
6d9c6d543165d1 Volker Lendecke 2008-12-08 1268
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1269 rc = wait_for_free_request(server, flags, &credits.instance);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1270 if (rc)
7ee1af765dfa31 Jeremy Allison 2006-08-02 1271 return rc;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1272
^1da177e4c3f41 Linus Torvalds 2005-04-16 1273 /* make sure that we sign in the same order that we send on this socket
^1da177e4c3f41 Linus Torvalds 2005-04-16 1274 and avoid races inside tcp sendmsg code that could cause corruption
^1da177e4c3f41 Linus Torvalds 2005-04-16 1275 of smb data */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1276
afe6f65353b644 Ronnie Sahlberg 2019-08-28 @1277 mutex_lock(&server->srv_mutex);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1278
7ee1af765dfa31 Jeremy Allison 2006-08-02 1279 rc = allocate_mid(ses, in_buf, &midQ);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1280 if (rc) {
72ca545b2d83ac Jeff Layton 2008-12-01 1281 mutex_unlock(&ses->server->srv_mutex);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1282 /* Update # of requests on wire to server */
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1283 add_credits(server, &credits, 0);
7ee1af765dfa31 Jeremy Allison 2006-08-02 @1284 return rc;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1285 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1286
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1287 rc = cifs_sign_smb(in_buf, server, &midQ->sequence_number);
829049cbb1d2dd Volker Lendecke 2008-12-06 1288 if (rc) {
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1289 mutex_unlock(&server->srv_mutex);
829049cbb1d2dd Volker Lendecke 2008-12-06 1290 goto out;
829049cbb1d2dd Volker Lendecke 2008-12-06 1291 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1292
7c9421e1a9ce8d Pavel Shilovsky 2012-03-23 1293 midQ->mid_state = MID_REQUEST_SUBMITTED;
789e66612367f9 Steve French 2011-08-09 1294
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1295 cifs_in_send_inc(server);
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1296 rc = smb_send(server, in_buf, len);
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1297 cifs_in_send_dec(server);
789e66612367f9 Steve French 2011-08-09 1298 cifs_save_when_sent(midQ);
ad313cb86dfba2 Jeff Layton 2013-04-03 1299
ad313cb86dfba2 Jeff Layton 2013-04-03 1300 if (rc < 0)
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1301 server->sequence_number -= 2;
ad313cb86dfba2 Jeff Layton 2013-04-03 1302
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1303 mutex_unlock(&server->srv_mutex);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1304
7ee1af765dfa31 Jeremy Allison 2006-08-02 1305 if (rc < 0)
7ee1af765dfa31 Jeremy Allison 2006-08-02 1306 goto out;
7ee1af765dfa31 Jeremy Allison 2006-08-02 1307
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1308 rc = wait_for_response(server, midQ);
1be912dde772b7 Jeff Layton 2011-01-28 1309 if (rc != 0) {
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1310 send_cancel(server, &rqst, midQ);
1be912dde772b7 Jeff Layton 2011-01-28 1311 spin_lock(&GlobalMid_Lock);
7c9421e1a9ce8d Pavel Shilovsky 2012-03-23 1312 if (midQ->mid_state == MID_REQUEST_SUBMITTED) {
1be912dde772b7 Jeff Layton 2011-01-28 1313 /* no longer considered to be "in-flight" */
1be912dde772b7 Jeff Layton 2011-01-28 1314 midQ->callback = DeleteMidQEntry;
1be912dde772b7 Jeff Layton 2011-01-28 1315 spin_unlock(&GlobalMid_Lock);
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1316 add_credits(server, &credits, 0);
1be912dde772b7 Jeff Layton 2011-01-28 1317 return rc;
1be912dde772b7 Jeff Layton 2011-01-28 1318 }
1be912dde772b7 Jeff Layton 2011-01-28 1319 spin_unlock(&GlobalMid_Lock);
1be912dde772b7 Jeff Layton 2011-01-28 1320 }
14a441a2b4ee1d Steve French 2006-07-16 1321
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1322 rc = cifs_sync_mid_result(midQ, server);
053d50344568e5 Jeff Layton 2011-01-11 1323 if (rc != 0) {
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1324 add_credits(server, &credits, 0);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1325 return rc;
7ee1af765dfa31 Jeremy Allison 2006-08-02 1326 }
7ee1af765dfa31 Jeremy Allison 2006-08-02 1327
2c8f981d93f830 Jeff Layton 2011-05-19 1328 if (!midQ->resp_buf || !out_buf ||
7c9421e1a9ce8d Pavel Shilovsky 2012-03-23 1329 midQ->mid_state != MID_RESPONSE_RECEIVED) {
7ee1af765dfa31 Jeremy Allison 2006-08-02 1330 rc = -EIO;
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1331 cifs_server_dbg(VFS, "Bad MID state?\n");
2c8f981d93f830 Jeff Layton 2011-05-19 1332 goto out;
7ee1af765dfa31 Jeremy Allison 2006-08-02 1333 }
7ee1af765dfa31 Jeremy Allison 2006-08-02 1334
d4e4854fd1c85a Pavel Shilovsky 2012-03-23 1335 *pbytes_returned = get_rfc1002_length(midQ->resp_buf);
2c8f981d93f830 Jeff Layton 2011-05-19 1336 memcpy(out_buf, midQ->resp_buf, *pbytes_returned + 4);
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1337 rc = cifs_check_receive(midQ, server, 0);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1338 out:
3c1bf7e48e9e46 Pavel Shilovsky 2012-09-18 1339 cifs_delete_mid(midQ);
afe6f65353b644 Ronnie Sahlberg 2019-08-28 1340 add_credits(server, &credits, 0);
7ee1af765dfa31 Jeremy Allison 2006-08-02 1341
7ee1af765dfa31 Jeremy Allison 2006-08-02 1342 return rc;
7ee1af765dfa31 Jeremy Allison 2006-08-02 1343 }
7ee1af765dfa31 Jeremy Allison 2006-08-02 1344
:::::: The code at line 1284 was first introduced by commit
:::::: 7ee1af765dfa3146aef958258003245e082284e5 [CIFS]
:::::: TO: Jeremy Allison <jra(a)samba.com>
:::::: CC: Steve French <sfrench(a)us.ibm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
Re: [PATCH] sparse: use identifiers to define address spaces
by kernel test robot
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-id...
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 <lkp(a)intel.com>
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/kbuild-all@lists.01.org
2 years, 3 months
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:999:32: sparse: sparse: cast to restricted __le32
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: 6698a3d05fda57f37add68c55a0696bfa7100413 drm/amdgpu: add mcbp unit test in debugfs (v3)
date: 12 months ago
config: riscv-randconfig-s032-20200618 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
git checkout 6698a3d05fda57f37add68c55a0696bfa7100413
# save the attached .config to linux build tree
make W=1 C=1 ARCH=riscv CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:163:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:163:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:163:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:163:29: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:163:29: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:165:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:165:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:165:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:165:29: sparse: expected unsigned int const [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:165:29: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:240:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:240:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:240:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:240:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:240:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:278:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:278:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:278:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:278:21: sparse: expected unsigned int const [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:278:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:319:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:319:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:319:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:319:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:319:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:357:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:357:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:357:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:357:21: sparse: expected unsigned int const [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:357:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:398:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:398:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:398:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:398:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:398:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:436:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:436:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:436:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:436:21: sparse: expected unsigned int const [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:436:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:525:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:525:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:525:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:525:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:525:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:582:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:582:29: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:582:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected signed int [noderef] <asn:1> *__p @@ got signed int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:582:29: sparse: expected signed int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:582:29: sparse: got signed int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:650:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:729:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:729:21: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:729:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] <asn:1> *__p @@ got unsigned int [usertype] * @@
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:729:21: sparse: expected unsigned int [noderef] <asn:1> *__p
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:729:21: sparse: got unsigned int [usertype] *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:942:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:942:25: sparse: struct dma_fence [noderef] <asn:4> *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:942:25: sparse: struct dma_fence *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:943:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:943:17: sparse: struct dma_fence [noderef] <asn:4> *
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:943:17: sparse: struct dma_fence *
>> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c:999:32: sparse: sparse: cast to restricted __le32
vim +999 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
980
981 static int amdgpu_debugfs_ib_preempt(void *data, u64 val)
982 {
983 int r, resched, length;
984 struct amdgpu_ring *ring;
985 struct drm_sched_job *s_job;
986 struct amdgpu_job *job;
987 struct dma_fence **fences = NULL;
988 struct amdgpu_device *adev = (struct amdgpu_device *)data;
989
990 if (val >= AMDGPU_MAX_RINGS)
991 return -EINVAL;
992
993 ring = adev->rings[val];
994
995 if (!ring || !ring->funcs->preempt_ib || !ring->sched.thread)
996 return -EINVAL;
997
998 /* the last preemption failed */
> 999 if (ring->trail_seq != le32_to_cpu(*ring->trail_fence_cpu_addr))
1000 return -EBUSY;
1001
1002 length = ring->fence_drv.num_fences_mask + 1;
1003 fences = kcalloc(length, sizeof(void *), GFP_KERNEL);
1004 if (!fences)
1005 return -ENOMEM;
1006
1007 /* stop the scheduler */
1008 kthread_park(ring->sched.thread);
1009
1010 resched = ttm_bo_lock_delayed_workqueue(&adev->mman.bdev);
1011
1012 /* preempt the IB */
1013 r = amdgpu_ring_preempt_ib(ring);
1014 if (r) {
1015 DRM_WARN("failed to preempt ring %d\n", ring->idx);
1016 goto failure;
1017 }
1018
1019 amdgpu_fence_process(ring);
1020
1021 if (atomic_read(&ring->fence_drv.last_seq) !=
1022 ring->fence_drv.sync_seq) {
1023 DRM_INFO("ring %d was preempted\n", ring->idx);
1024
1025 /* swap out the old fences */
1026 amdgpu_ib_preempt_fences_swap(ring, fences);
1027
1028 amdgpu_fence_driver_force_completion(ring);
1029
1030 s_job = list_first_entry_or_null(
1031 &ring->sched.ring_mirror_list,
1032 struct drm_sched_job, node);
1033 if (s_job) {
1034 job = to_amdgpu_job(s_job);
1035 /* mark the job as preempted */
1036 /* job->preemption_status |=
1037 AMDGPU_IB_PREEMPTED; */
1038 }
1039
1040 /* resubmit unfinished jobs */
1041 amdgpu_ib_preempt_job_recovery(&ring->sched);
1042
1043 /* wait for jobs finished */
1044 amdgpu_fence_wait_empty(ring);
1045
1046 /* signal the old fences */
1047 amdgpu_ib_preempt_signal_fences(fences, length);
1048 }
1049
1050 failure:
1051 /* restart the scheduler */
1052 kthread_unpark(ring->sched.thread);
1053
1054 ttm_bo_unlock_delayed_workqueue(&adev->mman.bdev, resched);
1055
1056 if (fences)
1057 kfree(fences);
1058
1059 return 0;
1060 }
1061
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
by kernel test robot
Hi Jason,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: 07b586fe06625b0b610dc3d3a969c51913d143d4 crypto: x86/curve25519 - replace with formally verified implementation
date: 4 months ago
config: x86_64-randconfig-r011-20200618 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 487ca07fcc75d52755c9fe2ee05bcb3b6eeeec44)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 07b586fe06625b0b610dc3d3a969c51913d143d4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
" movq 0(%1), %%rdx;" /* f[0] */
^
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
9 errors generated.
vim +518 arch/x86/crypto/curve25519-x86_64.c
509
510 /* Computes the square of a field element: out <- f * f
511 * Uses the 8-element buffer tmp for intermediate results */
512 static inline void fsqr(u64 *out, const u64 *f, u64 *tmp)
513 {
514 asm volatile(
515 /* Compute the raw multiplication: tmp <- f * f */
516
517 /* Step 1: Compute all partial products */
> 518 " movq 0(%1), %%rdx;" /* f[0] */
519 " mulxq 8(%1), %%r8, %%r14;" " xor %%r15, %%r15;" /* f[1]*f[0] */
520 " mulxq 16(%1), %%r9, %%r10;" " adcx %%r14, %%r9;" /* f[2]*f[0] */
521 " mulxq 24(%1), %%rax, %%rcx;" " adcx %%rax, %%r10;" /* f[3]*f[0] */
522 " movq 24(%1), %%rdx;" /* f[3] */
523 " mulxq 8(%1), %%r11, %%r12;" " adcx %%rcx, %%r11;" /* f[1]*f[3] */
524 " mulxq 16(%1), %%rax, %%r13;" " adcx %%rax, %%r12;" /* f[2]*f[3] */
525 " movq 8(%1), %%rdx;" " adcx %%r15, %%r13;" /* f1 */
526 " mulxq 16(%1), %%rax, %%rcx;" " mov $0, %%r14;" /* f[2]*f[1] */
527
528 /* Step 2: Compute two parallel carry chains */
529 " xor %%r15, %%r15;"
530 " adox %%rax, %%r10;"
531 " adcx %%r8, %%r8;"
532 " adox %%rcx, %%r11;"
533 " adcx %%r9, %%r9;"
534 " adox %%r15, %%r12;"
535 " adcx %%r10, %%r10;"
536 " adox %%r15, %%r13;"
537 " adcx %%r11, %%r11;"
538 " adox %%r15, %%r14;"
539 " adcx %%r12, %%r12;"
540 " adcx %%r13, %%r13;"
541 " adcx %%r14, %%r14;"
542
543 /* Step 3: Compute intermediate squares */
544 " movq 0(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[0]^2 */
545 " movq %%rax, 0(%0);"
546 " add %%rcx, %%r8;" " movq %%r8, 8(%0);"
547 " movq 8(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[1]^2 */
548 " adcx %%rax, %%r9;" " movq %%r9, 16(%0);"
549 " adcx %%rcx, %%r10;" " movq %%r10, 24(%0);"
550 " movq 16(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[2]^2 */
551 " adcx %%rax, %%r11;" " movq %%r11, 32(%0);"
552 " adcx %%rcx, %%r12;" " movq %%r12, 40(%0);"
553 " movq 24(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[3]^2 */
554 " adcx %%rax, %%r13;" " movq %%r13, 48(%0);"
555 " adcx %%rcx, %%r14;" " movq %%r14, 56(%0);"
556
557 /* Line up pointers */
558 " mov %0, %1;"
559 " mov %2, %0;"
560
561 /* Wrap the result back into the field */
562
563 /* Step 1: Compute dst + carry == tmp_hi * 38 + tmp_lo */
564 " mov $38, %%rdx;"
565 " mulxq 32(%1), %%r8, %%r13;"
566 " xor %%rcx, %%rcx;"
567 " adoxq 0(%1), %%r8;"
568 " mulxq 40(%1), %%r9, %%r12;"
569 " adcx %%r13, %%r9;"
570 " adoxq 8(%1), %%r9;"
571 " mulxq 48(%1), %%r10, %%r13;"
572 " adcx %%r12, %%r10;"
573 " adoxq 16(%1), %%r10;"
574 " mulxq 56(%1), %%r11, %%rax;"
575 " adcx %%r13, %%r11;"
576 " adoxq 24(%1), %%r11;"
577 " adcx %%rcx, %%rax;"
578 " adox %%rcx, %%rax;"
579 " imul %%rdx, %%rax;"
580
581 /* Step 2: Fold the carry back into dst */
582 " add %%rax, %%r8;"
583 " adcx %%rcx, %%r9;"
584 " movq %%r9, 8(%0);"
585 " adcx %%rcx, %%r10;"
586 " movq %%r10, 16(%0);"
587 " adcx %%rcx, %%r11;"
588 " movq %%r11, 24(%0);"
589
590 /* Step 3: Fold the carry bit back in; guaranteed not to carry at this point */
591 " mov $0, %%rax;"
592 " cmovc %%rdx, %%rax;"
593 " add %%rax, %%r8;"
594 " movq %%r8, 0(%0);"
595 : "+&r" (tmp), "+&r" (f), "+&r" (out)
596 :
597 : "%rax", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "memory", "cc"
598 );
599 }
600
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
[PATCH] s390: fix build error for sys_call_table_emu
by Xiaoming Ni
Build error on s390:
arch/s390/kernel/entry.o: in function `sys_call_table_emu':
>> (.rodata+0x1288): undefined reference to `__s390_'
In commit ("All arch: remove system call sys_sysctl")
148 common fdatasync sys_fdatasync sys_fdatasync
-149 common _sysctl sys_sysctl compat_sys_sysctl
+149 common _sysctl sys_ni_syscall
150 common mlock sys_mlock sys_mlock
After the patch is integrated, there is a format error in the generated
arch/s390/include/generated/asm/syscall_table.h:
SYSCALL(sys_fdatasync, sys_fdatasync)
SYSCALL(sys_ni_syscall,) /* cause build error */
SYSCALL(sys_mlock,sys_mlock)
There are holes in the system call number in
arch/s390/kernel/syscalls/syscall.tbl. When generating syscall_table.h,
these hole numbers will be automatically filled with "NI_SYSCALL".
Therefore, delete the number 149 to fix the current compilation failure.
Similarly, modify tools/perf/arch/s390/entry/syscalls/syscall.tbl.
Fixes: ("All arch: remove system call sys_sysctl")
Fixes: https://lore.kernel.org/linuxppc-dev/20200616030734.87257-1-nixiaoming@hu...
Reported-by: kernel test robot <lkp(a)intel.com>
Signed-off-by: Xiaoming Ni <nixiaoming(a)huawei.com>
---
arch/s390/kernel/syscalls/syscall.tbl | 1 -
tools/perf/arch/s390/entry/syscalls/syscall.tbl | 1 -
2 files changed, 2 deletions(-)
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
index f17aaf6fe5de..bcaf93994e3c 100644
--- a/arch/s390/kernel/syscalls/syscall.tbl
+++ b/arch/s390/kernel/syscalls/syscall.tbl
@@ -138,7 +138,6 @@
146 common writev sys_writev compat_sys_writev
147 common getsid sys_getsid sys_getsid
148 common fdatasync sys_fdatasync sys_fdatasync
-149 common _sysctl sys_ni_syscall
150 common mlock sys_mlock sys_mlock
151 common munlock sys_munlock sys_munlock
152 common mlockall sys_mlockall sys_mlockall
diff --git a/tools/perf/arch/s390/entry/syscalls/syscall.tbl b/tools/perf/arch/s390/entry/syscalls/syscall.tbl
index 0193f9b98753..eb77d0d01d8f 100644
--- a/tools/perf/arch/s390/entry/syscalls/syscall.tbl
+++ b/tools/perf/arch/s390/entry/syscalls/syscall.tbl
@@ -138,7 +138,6 @@
146 common writev sys_writev compat_sys_writev
147 common getsid sys_getsid sys_getsid
148 common fdatasync sys_fdatasync sys_fdatasync
-149 common _sysctl sys_ni_syscall
150 common mlock sys_mlock compat_sys_mlock
151 common munlock sys_munlock compat_sys_munlock
152 common mlockall sys_mlockall sys_mlockall
--
2.27.0
2 years, 3 months
drivers/crypto/chelsio/chtls/chtls_main.c:201: undefined reference to `tls_toe_register_device'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: a624a86510adaeefd33aac224751e89348596d2a crypto/chtls:Fix compile error when CONFIG_IPV6 is disabled
date: 2 weeks ago
config: riscv-randconfig-r001-20200618 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout a624a86510adaeefd33aac224751e89348596d2a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
riscv64-linux-ld: drivers/crypto/chelsio/chtls/chtls_main.o: in function `__write_once_size':
include/linux/compiler.h:278: undefined reference to `tls_toe_unregister_device'
riscv64-linux-ld: drivers/crypto/chelsio/chtls/chtls_main.o: in function `chtls_register_dev':
>> drivers/crypto/chelsio/chtls/chtls_main.c:201: undefined reference to `tls_toe_register_device'
vim +201 drivers/crypto/chelsio/chtls/chtls_main.c
df9d4a1780223c Atul Gupta 2018-12-11 191
a089439478734a Atul Gupta 2018-03-31 192 static void chtls_register_dev(struct chtls_dev *cdev)
a089439478734a Atul Gupta 2018-03-31 193 {
f21912edd15708 Jakub Kicinski 2019-10-03 194 struct tls_toe_device *tlsdev = &cdev->tlsdev;
a089439478734a Atul Gupta 2018-03-31 195
f21912edd15708 Jakub Kicinski 2019-10-03 196 strlcpy(tlsdev->name, "chtls", TLS_TOE_DEVICE_NAME_MAX);
a089439478734a Atul Gupta 2018-03-31 197 strlcat(tlsdev->name, cdev->lldi->ports[0]->name,
f21912edd15708 Jakub Kicinski 2019-10-03 198 TLS_TOE_DEVICE_NAME_MAX);
a089439478734a Atul Gupta 2018-03-31 199 tlsdev->feature = chtls_inline_feature;
a089439478734a Atul Gupta 2018-03-31 200 tlsdev->hash = chtls_create_hash;
a089439478734a Atul Gupta 2018-03-31 @201 tlsdev->unhash = chtls_destroy_hash;
df9d4a1780223c Atul Gupta 2018-12-11 202 tlsdev->release = chtls_dev_release;
df9d4a1780223c Atul Gupta 2018-12-11 203 kref_init(&tlsdev->kref);
f21912edd15708 Jakub Kicinski 2019-10-03 204 tls_toe_register_device(tlsdev);
65b2c12dcdb883 Ganesh Goudar 2018-08-10 205 cdev->cdev_state = CHTLS_CDEV_STATE_UP;
a089439478734a Atul Gupta 2018-03-31 206 }
a089439478734a Atul Gupta 2018-03-31 207
:::::: The code at line 201 was first introduced by commit
:::::: a089439478734a6a0aa2eabbc03113e0c34db282 crypto: chtls - Register chtls with net tls
:::::: TO: Atul Gupta <atul.gupta(a)chelsio.com>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months
drivers/tty/serial/8250/8250_dwlib.c:45:17: sparse: sparse: incorrect type in argument 1 (different base types)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: 4d5675c3b10b7bfa56447c26c29930e35b6d41ee serial: 8250_dw: switch to use 8250_dwlib library
date: 10 months ago
config: alpha-randconfig-s032-20200618 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
git checkout 4d5675c3b10b7bfa56447c26c29930e35b6d41ee
# save the attached .config to linux build tree
make W=1 C=1 ARCH=alpha CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/tty/serial/8250/8250_dwlib.c:45:17: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] @@ got restricted __be32 [usertype] @@
>> drivers/tty/serial/8250/8250_dwlib.c:45:17: sparse: expected unsigned int [usertype]
drivers/tty/serial/8250/8250_dwlib.c:45:17: sparse: got restricted __be32 [usertype]
arch/alpha/include/uapi/asm/swab.h:29:14: sparse: sparse: undefined identifier '__builtin_alpha_inslh'
arch/alpha/include/uapi/asm/swab.h:30:14: sparse: sparse: undefined identifier '__builtin_alpha_inswl'
arch/alpha/include/uapi/asm/swab.h:29:14: sparse: sparse: not a function <noident>
arch/alpha/include/uapi/asm/swab.h:30:14: sparse: sparse: not a function <noident>
arch/alpha/include/uapi/asm/swab.h:29:14: sparse: sparse: not a function <noident>
arch/alpha/include/uapi/asm/swab.h:30:14: sparse: sparse: not a function <noident>
arch/alpha/include/asm/bitops.h:380:13: sparse: sparse: undefined identifier '__builtin_alpha_cmpbge'
arch/alpha/include/asm/bitops.h:382:13: sparse: sparse: undefined identifier '__builtin_alpha_extbl'
arch/alpha/include/uapi/asm/swab.h:29:14: sparse: sparse: not a function <noident>
arch/alpha/include/uapi/asm/swab.h:30:14: sparse: sparse: not a function <noident>
vim +45 drivers/tty/serial/8250/8250_dwlib.c
136e0ab99b2237 Andy Shevchenko 2019-08-06 41
136e0ab99b2237 Andy Shevchenko 2019-08-06 42 static inline void dw8250_writel_ext(struct uart_port *p, int offset, u32 reg)
136e0ab99b2237 Andy Shevchenko 2019-08-06 43 {
136e0ab99b2237 Andy Shevchenko 2019-08-06 44 if (p->iotype == UPIO_MEM32BE)
136e0ab99b2237 Andy Shevchenko 2019-08-06 @45 iowrite32be(reg, p->membase + offset);
136e0ab99b2237 Andy Shevchenko 2019-08-06 46 else
136e0ab99b2237 Andy Shevchenko 2019-08-06 47 writel(reg, p->membase + offset);
136e0ab99b2237 Andy Shevchenko 2019-08-06 48 }
136e0ab99b2237 Andy Shevchenko 2019-08-06 49
:::::: The code at line 45 was first introduced by commit
:::::: 136e0ab99b22378e3ff7d54f799a3a329316e869 serial: 8250_dw: split Synopsys DesignWare 8250 common functions
:::::: TO: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 3 months