* [bytedance:6.6-velinux 5959/5959] drivers/block/nbd.c:1298 nbd_reconnect_socket() warn: inconsistent returns '&nsock->tx_lock'.
@ 2025-09-19 11:19 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-09-19 10:40 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: jason.zeng@intel.com
tree: https://github.com/bytedance/kernel.git 6.6-velinux
head: 267e33ff5e034d9f9222c229e6967b6ceb65e27a
commit: 454e732aaf9bdba6d2183f14939163e6a37dfbd3 [5959/5959] bytedance: nbd: Don't use workqueue to create recv threads
:::::: branch date: 26 hours ago
:::::: commit date: 26 hours ago
config: x86_64-randconfig-161-20250919 (https://download.01.org/0day-ci/archive/20250919/202509191844.UIjeXrdY-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202509191844.UIjeXrdY-lkp@intel.com/
smatch warnings:
drivers/block/nbd.c:1298 nbd_reconnect_socket() warn: inconsistent returns '&nsock->tx_lock'.
vim +1298 drivers/block/nbd.c
23272a6754b81f Markus Schneider-Pargmann 2015-10-29 1229
b7aa3d39385dc2 Josef Bacik 2017-04-06 1230 static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1231 {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1232 struct nbd_config *config = nbd->config;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1233 struct socket *sock, *old;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1234 struct recv_thread_args *args;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1235 int i;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1236 int err;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1237
cf1b2326b73489 Mike Christie 2019-10-17 1238 sock = nbd_get_socket(nbd, arg, &err);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1239 if (!sock)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1240 return err;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1241
b7aa3d39385dc2 Josef Bacik 2017-04-06 1242 args = kzalloc(sizeof(*args), GFP_KERNEL);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1243 if (!args) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1244 sockfd_put(sock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1245 return -ENOMEM;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1246 }
b7aa3d39385dc2 Josef Bacik 2017-04-06 1247
b7aa3d39385dc2 Josef Bacik 2017-04-06 1248 for (i = 0; i < config->num_connections; i++) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1249 struct nbd_sock *nsock = config->socks[i];
454e732aaf9bdb Xie Yongji 2021-12-17 1250 struct task_struct *worker;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1251
b7aa3d39385dc2 Josef Bacik 2017-04-06 1252 if (!nsock->dead)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1253 continue;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1254
b7aa3d39385dc2 Josef Bacik 2017-04-06 1255 mutex_lock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1256 if (!nsock->dead) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1257 mutex_unlock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1258 continue;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1259 }
454e732aaf9bdb Xie Yongji 2021-12-17 1260 worker = kthread_create(recv_work, args, "knbd%d.%d-recv",
454e732aaf9bdb Xie Yongji 2021-12-17 1261 nbd->index, i);
454e732aaf9bdb Xie Yongji 2021-12-17 1262 if (!worker) {
454e732aaf9bdb Xie Yongji 2021-12-17 1263 sockfd_put(sock);
454e732aaf9bdb Xie Yongji 2021-12-17 1264 kfree(args);
454e732aaf9bdb Xie Yongji 2021-12-17 1265 return -ENOMEM;
454e732aaf9bdb Xie Yongji 2021-12-17 1266 }
454e732aaf9bdb Xie Yongji 2021-12-17 1267
b7aa3d39385dc2 Josef Bacik 2017-04-06 1268 sk_set_memalloc(sock->sk);
5eafd64a3bd2ab Hou Pu 2020-11-06 1269 if (nbd->tag_set.timeout &&
5eafd64a3bd2ab Hou Pu 2020-11-06 1270 !test_bit(NBD_RT_WAIT_ON_TIMEOUT, &config->runtime_flags))
dc88e34d69d87c Josef Bacik 2017-06-08 1271 sock->sk->sk_sndtimeo = nbd->tag_set.timeout;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1272 atomic_inc(&config->recv_threads);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1273 refcount_inc(&nbd->config_refs);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1274 old = nsock->sock;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1275 nsock->fallback_index = -1;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1276 nsock->sock = sock;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1277 nsock->dead = false;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1278 args->index = i;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1279 args->nbd = nbd;
7e62a555d99f2f Li Nan 2023-09-11 1280 args->nsock = nsock;
799f9a38bc9f55 Josef Bacik 2017-04-06 1281 nsock->cookie++;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1282 mutex_unlock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1283 sockfd_put(old);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1284
ec76a7b922e42d Xiubo Li 2019-09-17 1285 clear_bit(NBD_RT_DISCONNECTED, &config->runtime_flags);
7a362ea96d0df8 Josef Bacik 2017-07-25 1286
b7aa3d39385dc2 Josef Bacik 2017-04-06 1287 /* We take the tx_mutex in an error path in the recv_work, so we
b7aa3d39385dc2 Josef Bacik 2017-04-06 1288 * need to queue_work outside of the tx_mutex.
b7aa3d39385dc2 Josef Bacik 2017-04-06 1289 */
454e732aaf9bdb Xie Yongji 2021-12-17 1290 wake_up_process(worker);
560bc4b39952ed Josef Bacik 2017-04-06 1291
560bc4b39952ed Josef Bacik 2017-04-06 1292 atomic_inc(&config->live_connections);
560bc4b39952ed Josef Bacik 2017-04-06 1293 wake_up(&config->conn_wait);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1294 return 0;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1295 }
b7aa3d39385dc2 Josef Bacik 2017-04-06 1296 sockfd_put(sock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1297 kfree(args);
b7aa3d39385dc2 Josef Bacik 2017-04-06 @1298 return -ENOSPC;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1299 }
b7aa3d39385dc2 Josef Bacik 2017-04-06 1300
:::::: The code at line 1298 was first introduced by commit
:::::: b7aa3d39385dc2d95899f9e379623fef446a2acd nbd: add a reconfigure netlink command
:::::: TO: Josef Bacik <josef@toxicpanda.com>
:::::: CC: Jens Axboe <axboe@fb.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* [bytedance:6.6-velinux 5959/5959] drivers/block/nbd.c:1298 nbd_reconnect_socket() warn: inconsistent returns '&nsock->tx_lock'.
@ 2025-09-19 11:19 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2025-09-19 11:19 UTC (permalink / raw)
To: oe-kbuild, jason.zeng; +Cc: lkp, oe-kbuild-all
tree: https://github.com/bytedance/kernel.git 6.6-velinux
head: 267e33ff5e034d9f9222c229e6967b6ceb65e27a
commit: 454e732aaf9bdba6d2183f14939163e6a37dfbd3 [5959/5959] bytedance: nbd: Don't use workqueue to create recv threads
config: x86_64-randconfig-161-20250919 (https://download.01.org/0day-ci/archive/20250919/202509191844.UIjeXrdY-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202509191844.UIjeXrdY-lkp@intel.com/
smatch warnings:
drivers/block/nbd.c:1298 nbd_reconnect_socket() warn: inconsistent returns '&nsock->tx_lock'.
vim +1298 drivers/block/nbd.c
b7aa3d39385dc2 Josef Bacik 2017-04-06 1230 static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1231 {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1232 struct nbd_config *config = nbd->config;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1233 struct socket *sock, *old;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1234 struct recv_thread_args *args;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1235 int i;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1236 int err;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1237
cf1b2326b73489 Mike Christie 2019-10-17 1238 sock = nbd_get_socket(nbd, arg, &err);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1239 if (!sock)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1240 return err;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1241
b7aa3d39385dc2 Josef Bacik 2017-04-06 1242 args = kzalloc(sizeof(*args), GFP_KERNEL);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1243 if (!args) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1244 sockfd_put(sock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1245 return -ENOMEM;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1246 }
b7aa3d39385dc2 Josef Bacik 2017-04-06 1247
b7aa3d39385dc2 Josef Bacik 2017-04-06 1248 for (i = 0; i < config->num_connections; i++) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1249 struct nbd_sock *nsock = config->socks[i];
454e732aaf9bdb Xie Yongji 2021-12-17 1250 struct task_struct *worker;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1251
b7aa3d39385dc2 Josef Bacik 2017-04-06 1252 if (!nsock->dead)
b7aa3d39385dc2 Josef Bacik 2017-04-06 1253 continue;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1254
b7aa3d39385dc2 Josef Bacik 2017-04-06 1255 mutex_lock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1256 if (!nsock->dead) {
b7aa3d39385dc2 Josef Bacik 2017-04-06 1257 mutex_unlock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1258 continue;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1259 }
454e732aaf9bdb Xie Yongji 2021-12-17 1260 worker = kthread_create(recv_work, args, "knbd%d.%d-recv",
454e732aaf9bdb Xie Yongji 2021-12-17 1261 nbd->index, i);
454e732aaf9bdb Xie Yongji 2021-12-17 1262 if (!worker) {
454e732aaf9bdb Xie Yongji 2021-12-17 1263 sockfd_put(sock);
454e732aaf9bdb Xie Yongji 2021-12-17 1264 kfree(args);
454e732aaf9bdb Xie Yongji 2021-12-17 1265 return -ENOMEM;
Call mutex_unlock(&nsock->tx_lock); before returning.
454e732aaf9bdb Xie Yongji 2021-12-17 1266 }
454e732aaf9bdb Xie Yongji 2021-12-17 1267
b7aa3d39385dc2 Josef Bacik 2017-04-06 1268 sk_set_memalloc(sock->sk);
5eafd64a3bd2ab Hou Pu 2020-11-06 1269 if (nbd->tag_set.timeout &&
5eafd64a3bd2ab Hou Pu 2020-11-06 1270 !test_bit(NBD_RT_WAIT_ON_TIMEOUT, &config->runtime_flags))
dc88e34d69d87c Josef Bacik 2017-06-08 1271 sock->sk->sk_sndtimeo = nbd->tag_set.timeout;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1272 atomic_inc(&config->recv_threads);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1273 refcount_inc(&nbd->config_refs);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1274 old = nsock->sock;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1275 nsock->fallback_index = -1;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1276 nsock->sock = sock;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1277 nsock->dead = false;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1278 args->index = i;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1279 args->nbd = nbd;
7e62a555d99f2f Li Nan 2023-09-11 1280 args->nsock = nsock;
799f9a38bc9f55 Josef Bacik 2017-04-06 1281 nsock->cookie++;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1282 mutex_unlock(&nsock->tx_lock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1283 sockfd_put(old);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1284
ec76a7b922e42d Xiubo Li 2019-09-17 1285 clear_bit(NBD_RT_DISCONNECTED, &config->runtime_flags);
7a362ea96d0df8 Josef Bacik 2017-07-25 1286
b7aa3d39385dc2 Josef Bacik 2017-04-06 1287 /* We take the tx_mutex in an error path in the recv_work, so we
b7aa3d39385dc2 Josef Bacik 2017-04-06 1288 * need to queue_work outside of the tx_mutex.
b7aa3d39385dc2 Josef Bacik 2017-04-06 1289 */
454e732aaf9bdb Xie Yongji 2021-12-17 1290 wake_up_process(worker);
560bc4b39952ed Josef Bacik 2017-04-06 1291
560bc4b39952ed Josef Bacik 2017-04-06 1292 atomic_inc(&config->live_connections);
560bc4b39952ed Josef Bacik 2017-04-06 1293 wake_up(&config->conn_wait);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1294 return 0;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1295 }
b7aa3d39385dc2 Josef Bacik 2017-04-06 1296 sockfd_put(sock);
b7aa3d39385dc2 Josef Bacik 2017-04-06 1297 kfree(args);
b7aa3d39385dc2 Josef Bacik 2017-04-06 @1298 return -ENOSPC;
b7aa3d39385dc2 Josef Bacik 2017-04-06 1299 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-09-19 11:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-19 10:40 [bytedance:6.6-velinux 5959/5959] drivers/block/nbd.c:1298 nbd_reconnect_socket() warn: inconsistent returns '&nsock->tx_lock' kernel test robot
2025-09-19 11:19 ` Dan Carpenter
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.