From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com
Subject: Re: [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support
Date: Fri, 14 Apr 2023 13:16:00 +0800 [thread overview]
Message-ID: <202304141302.mVWCQivU-lkp@intel.com> (raw)
::::::
:::::: Manual check reason: "low confidence static check warning: net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: typename in expression"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230413-b4-vsock-dgram-v2-3-079cc7cee62e@bytedance.com>
References: <20230413-b4-vsock-dgram-v2-3-079cc7cee62e@bytedance.com>
TO: Bobby Eshleman <bobby.eshleman@bytedance.com>
Hi Bobby,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on ed72bd5a6790a0c3747cb32b0427f921bd03bb71]
url: https://github.com/intel-lab-lkp/linux/commits/Bobby-Eshleman/virtio-vsock-support-dgram/20230414-082831
base: ed72bd5a6790a0c3747cb32b0427f921bd03bb71
patch link: https://lore.kernel.org/r/20230413-b4-vsock-dgram-v2-3-079cc7cee62e%40bytedance.com
patch subject: [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: i386-randconfig-s002 (https://download.01.org/0day-ci/archive/20230414/202304141302.mVWCQivU-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/intel-lab-lkp/linux/commit/de4d5e13dd5c747996abbc4e9ce38eeb3093ea01
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Bobby-Eshleman/virtio-vsock-support-dgram/20230414-082831
git checkout de4d5e13dd5c747996abbc4e9ce38eeb3093ea01
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 olddefconfig
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash net/vmw_vsock/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/r/202304141302.mVWCQivU-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: typename in expression
net/vmw_vsock/vmci_transport.c:1326:24: sparse: sparse: Expected ; at end of statement
net/vmw_vsock/vmci_transport.c:1326:24: sparse: sparse: got sockaddr_vm_rcu
net/vmw_vsock/vmci_transport.c:1326:17: sparse: sparse: undefined identifier 'struct'
net/vmw_vsock/vmci_transport.c:1329:17: sparse: sparse: undefined identifier 'remote_addr'
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/vmci_transport.c:1329:31: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/vmci_transport.c:1330:22: sparse: sparse: undefined identifier 'remote_addr'
net/vmw_vsock/vmci_transport.c:1338:47: sparse: sparse: undefined identifier 'remote_addr'
--
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: struct sockaddr_vm_rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
>> net/vmw_vsock/af_vsock.c:1026:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:154:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:154:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:154:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:172:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:172:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:172:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:202:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:202:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:202:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:228:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:228:15: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:228:15: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:239:15: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:239:15: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:239:15: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:239:15: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:256:15: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:256:15: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:256:15: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:256:15: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:269:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:269:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:269:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:393:31: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:393:31: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:393:31: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:418:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:418:23: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:418:23: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:934:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:934:9: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:934:9: sparse: struct sockaddr_vm_rcu *
net/vmw_vsock/af_vsock.c:1131:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/vmw_vsock/af_vsock.c:1131:27: sparse: struct sockaddr_vm_rcu [noderef] __rcu *
net/vmw_vsock/af_vsock.c:1131:27: sparse: struct sockaddr_vm_rcu *
>> net/vmw_vsock/af_vsock.c:239:15: sparse: sparse: dereference of noderef expression
net/vmw_vsock/af_vsock.c:219:5: sparse: sparse: context imbalance in 'vsock_remote_addr_update_cid_port' - different lock contexts for basic block
net/vmw_vsock/af_vsock.c:256:15: sparse: sparse: dereference of noderef expression
net/vmw_vsock/af_vsock.c:1026:23: sparse: sparse: dereference of noderef expression
net/vmw_vsock/af_vsock.c:1158:9: sparse: sparse: context imbalance in 'vsock_getname' - different lock contexts for basic block
vim +1326 net/vmw_vsock/vmci_transport.c
d021c344051af9 Andy King 2013-02-06 1292
d021c344051af9 Andy King 2013-02-06 1293 static int
d021c344051af9 Andy King 2013-02-06 1294 vmci_transport_recv_connecting_client(struct sock *sk,
d021c344051af9 Andy King 2013-02-06 1295 struct vmci_transport_packet *pkt)
d021c344051af9 Andy King 2013-02-06 1296 {
d021c344051af9 Andy King 2013-02-06 1297 struct vsock_sock *vsk;
d021c344051af9 Andy King 2013-02-06 1298 int err;
d021c344051af9 Andy King 2013-02-06 1299 int skerr;
d021c344051af9 Andy King 2013-02-06 1300
d021c344051af9 Andy King 2013-02-06 1301 vsk = vsock_sk(sk);
d021c344051af9 Andy King 2013-02-06 1302
d021c344051af9 Andy King 2013-02-06 1303 switch (pkt->type) {
d021c344051af9 Andy King 2013-02-06 1304 case VMCI_TRANSPORT_PACKET_TYPE_ATTACH:
d021c344051af9 Andy King 2013-02-06 1305 if (vmci_handle_is_invalid(pkt->u.handle) ||
d021c344051af9 Andy King 2013-02-06 1306 !vmci_handle_is_equal(pkt->u.handle,
d021c344051af9 Andy King 2013-02-06 1307 vmci_trans(vsk)->qp_handle)) {
d021c344051af9 Andy King 2013-02-06 1308 skerr = EPROTO;
d021c344051af9 Andy King 2013-02-06 1309 err = -EINVAL;
d021c344051af9 Andy King 2013-02-06 1310 goto destroy;
d021c344051af9 Andy King 2013-02-06 1311 }
d021c344051af9 Andy King 2013-02-06 1312
d021c344051af9 Andy King 2013-02-06 1313 /* Signify the socket is connected and wakeup the waiter in
d021c344051af9 Andy King 2013-02-06 1314 * connect(). Also place the socket in the connected table for
d021c344051af9 Andy King 2013-02-06 1315 * accounting (it can already be found since it's in the bound
d021c344051af9 Andy King 2013-02-06 1316 * table).
d021c344051af9 Andy King 2013-02-06 1317 */
3b4477d2dcf270 Stefan Hajnoczi 2017-10-05 1318 sk->sk_state = TCP_ESTABLISHED;
d021c344051af9 Andy King 2013-02-06 1319 sk->sk_socket->state = SS_CONNECTED;
d021c344051af9 Andy King 2013-02-06 1320 vsock_insert_connected(vsk);
d021c344051af9 Andy King 2013-02-06 1321 sk->sk_state_change(sk);
d021c344051af9 Andy King 2013-02-06 1322
d021c344051af9 Andy King 2013-02-06 1323 break;
d021c344051af9 Andy King 2013-02-06 1324 case VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE:
d021c344051af9 Andy King 2013-02-06 1325 case VMCI_TRANSPORT_PACKET_TYPE_NEGOTIATE2:
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 @1326 struct sockaddr_vm_rcu *remote_addr;
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1327
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1328 rcu_read_lock();
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 @1329 remote_addr = rcu_dereference(vsk->remote_addr);
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1330 if (!remote_addr) {
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1331 skerr = EPROTO;
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1332 err = -EINVAL;
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1333 rcu_read_unlock();
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1334 goto destroy;
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1335 }
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1336
d021c344051af9 Andy King 2013-02-06 1337 if (pkt->u.size == 0
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1338 || pkt->dg.src.context != remote_addr->addr.svm_cid
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1339 || pkt->src_port != remote_addr->addr.svm_port
d021c344051af9 Andy King 2013-02-06 1340 || !vmci_handle_is_invalid(vmci_trans(vsk)->qp_handle)
d021c344051af9 Andy King 2013-02-06 1341 || vmci_trans(vsk)->qpair
d021c344051af9 Andy King 2013-02-06 1342 || vmci_trans(vsk)->produce_size != 0
d021c344051af9 Andy King 2013-02-06 1343 || vmci_trans(vsk)->consume_size != 0
d021c344051af9 Andy King 2013-02-06 1344 || vmci_trans(vsk)->detach_sub_id != VMCI_INVALID_ID) {
d021c344051af9 Andy King 2013-02-06 1345 skerr = EPROTO;
d021c344051af9 Andy King 2013-02-06 1346 err = -EINVAL;
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1347 rcu_read_unlock();
d021c344051af9 Andy King 2013-02-06 1348 goto destroy;
d021c344051af9 Andy King 2013-02-06 1349 }
de4d5e13dd5c74 Bobby Eshleman 2023-04-14 1350 rcu_read_unlock();
d021c344051af9 Andy King 2013-02-06 1351
d021c344051af9 Andy King 2013-02-06 1352 err = vmci_transport_recv_connecting_client_negotiate(sk, pkt);
d021c344051af9 Andy King 2013-02-06 1353 if (err) {
d021c344051af9 Andy King 2013-02-06 1354 skerr = -err;
d021c344051af9 Andy King 2013-02-06 1355 goto destroy;
d021c344051af9 Andy King 2013-02-06 1356 }
d021c344051af9 Andy King 2013-02-06 1357
d021c344051af9 Andy King 2013-02-06 1358 break;
d021c344051af9 Andy King 2013-02-06 1359 case VMCI_TRANSPORT_PACKET_TYPE_INVALID:
d021c344051af9 Andy King 2013-02-06 1360 err = vmci_transport_recv_connecting_client_invalid(sk, pkt);
d021c344051af9 Andy King 2013-02-06 1361 if (err) {
d021c344051af9 Andy King 2013-02-06 1362 skerr = -err;
d021c344051af9 Andy King 2013-02-06 1363 goto destroy;
d021c344051af9 Andy King 2013-02-06 1364 }
d021c344051af9 Andy King 2013-02-06 1365
d021c344051af9 Andy King 2013-02-06 1366 break;
d021c344051af9 Andy King 2013-02-06 1367 case VMCI_TRANSPORT_PACKET_TYPE_RST:
d021c344051af9 Andy King 2013-02-06 1368 /* Older versions of the linux code (WS 6.5 / ESX 4.0) used to
d021c344051af9 Andy King 2013-02-06 1369 * continue processing here after they sent an INVALID packet.
d021c344051af9 Andy King 2013-02-06 1370 * This meant that we got a RST after the INVALID. We ignore a
d021c344051af9 Andy King 2013-02-06 1371 * RST after an INVALID. The common code doesn't send the RST
d021c344051af9 Andy King 2013-02-06 1372 * ... so we can hang if an old version of the common code
d021c344051af9 Andy King 2013-02-06 1373 * fails between getting a REQUEST and sending an OFFER back.
d021c344051af9 Andy King 2013-02-06 1374 * Not much we can do about it... except hope that it doesn't
d021c344051af9 Andy King 2013-02-06 1375 * happen.
d021c344051af9 Andy King 2013-02-06 1376 */
d021c344051af9 Andy King 2013-02-06 1377 if (vsk->ignore_connecting_rst) {
d021c344051af9 Andy King 2013-02-06 1378 vsk->ignore_connecting_rst = false;
d021c344051af9 Andy King 2013-02-06 1379 } else {
d021c344051af9 Andy King 2013-02-06 1380 skerr = ECONNRESET;
d021c344051af9 Andy King 2013-02-06 1381 err = 0;
d021c344051af9 Andy King 2013-02-06 1382 goto destroy;
d021c344051af9 Andy King 2013-02-06 1383 }
d021c344051af9 Andy King 2013-02-06 1384
d021c344051af9 Andy King 2013-02-06 1385 break;
d021c344051af9 Andy King 2013-02-06 1386 default:
d021c344051af9 Andy King 2013-02-06 1387 /* Close and cleanup the connection. */
d021c344051af9 Andy King 2013-02-06 1388 skerr = EPROTO;
d021c344051af9 Andy King 2013-02-06 1389 err = -EINVAL;
d021c344051af9 Andy King 2013-02-06 1390 goto destroy;
d021c344051af9 Andy King 2013-02-06 1391 }
d021c344051af9 Andy King 2013-02-06 1392
d021c344051af9 Andy King 2013-02-06 1393 return 0;
d021c344051af9 Andy King 2013-02-06 1394
d021c344051af9 Andy King 2013-02-06 1395 destroy:
d021c344051af9 Andy King 2013-02-06 1396 vmci_transport_send_reset(sk, pkt);
d021c344051af9 Andy King 2013-02-06 1397
3b4477d2dcf270 Stefan Hajnoczi 2017-10-05 1398 sk->sk_state = TCP_CLOSE;
d021c344051af9 Andy King 2013-02-06 1399 sk->sk_err = skerr;
e3ae2365efc142 Alexander Aring 2021-06-27 1400 sk_error_report(sk);
d021c344051af9 Andy King 2013-02-06 1401 return err;
d021c344051af9 Andy King 2013-02-06 1402 }
d021c344051af9 Andy King 2013-02-06 1403
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next reply other threads:[~2023-04-14 5:16 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-14 5:16 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-04-14 0:25 [PATCH RFC net-next v2 0/4] virtio/vsock: support datagrams Bobby Eshleman
2023-04-14 0:25 ` [PATCH RFC net-next v2 3/4] vsock: Add lockless sendmsg() support Bobby Eshleman
2023-04-14 2:09 ` kernel test robot
2023-04-14 3:32 ` kernel test robot
2023-04-15 6:13 ` kernel test robot
2023-04-19 9:30 ` Stefano Garzarella
2023-04-19 9:30 ` Stefano Garzarella
2023-04-15 10:30 ` Bobby Eshleman
2023-04-28 10:29 ` Stefano Garzarella
2023-04-28 10:29 ` Stefano Garzarella
2023-04-15 17:29 ` Bobby Eshleman
2023-05-03 12:09 ` Stefano Garzarella
2023-05-03 12:09 ` Stefano Garzarella
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202304141302.mVWCQivU-lkp@intel.com \
--to=lkp@intel.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.