diff for duplicates of <202508171049.SGYNFbP3-lkp@intel.com> diff --git a/a/1.txt b/N1/1.txt index 9ddb008..2a6b5db 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,18 +1,46 @@ +BCC: lkp@intel.com +CC: oe-kbuild-all@lists.linux.dev +In-Reply-To: <20250811131236.56206-2-kerneljasonxing@gmail.com> +References: <20250811131236.56206-2-kerneljasonxing@gmail.com> +TO: Jason Xing <kerneljasonxing@gmail.com> +TO: davem@davemloft.net +TO: edumazet@google.com +TO: kuba@kernel.org +TO: pabeni@redhat.com +TO: bjorn@kernel.org +TO: magnus.karlsson@intel.com +TO: maciej.fijalkowski@intel.com +TO: jonathan.lemon@gmail.com +TO: sdf@fomichev.me +TO: ast@kernel.org +TO: daniel@iogearbox.net +TO: hawk@kernel.org +TO: john.fastabend@gmail.com +TO: horms@kernel.org +TO: andrew+netdev@lunn.ch +CC: bpf@vger.kernel.org +CC: netdev@vger.kernel.org +CC: Jason Xing <kernelxing@tencent.com> + Hi Jason, kernel test robot noticed the following build warnings: +[auto build test WARNING on net-next/main] + url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/xsk-introduce-XDP_GENERIC_XMIT_BATCH-setsockopt/20250811-211509 base: net-next/main patch link: https://lore.kernel.org/r/20250811131236.56206-2-kerneljasonxing%40gmail.com patch subject: [PATCH net-next 1/2] xsk: introduce XDP_GENERIC_XMIT_BATCH setsockopt +:::::: branch date: 6 days ago +:::::: commit date: 6 days ago config: s390-randconfig-r073-20250817 (https://download.01.org/0day-ci/archive/20250817/202508171049.SGYNFbP3-lkp@intel.com/config) compiler: s390-linux-gcc (GCC) 8.5.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> +| Reported-by: Dan Carpenter <error27@gmail.com> | Closes: https://lore.kernel.org/r/202508171049.SGYNFbP3-lkp@intel.com/ smatch warnings: @@ -20,6 +48,123 @@ net/xdp/xsk.c:1495 xsk_setsockopt() warn: inconsistent returns '&xs->mutex'. vim +1495 net/xdp/xsk.c +c05cd364581472 Kevin Laatz 2019-08-27 1343 +c0c77d8fb787cf Björn Töpel 2018-05-02 1344 static int xsk_setsockopt(struct socket *sock, int level, int optname, +a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1345 sockptr_t optval, unsigned int optlen) +c0c77d8fb787cf Björn Töpel 2018-05-02 1346 { +c0c77d8fb787cf Björn Töpel 2018-05-02 1347 struct sock *sk = sock->sk; +c0c77d8fb787cf Björn Töpel 2018-05-02 1348 struct xdp_sock *xs = xdp_sk(sk); +c0c77d8fb787cf Björn Töpel 2018-05-02 1349 int err; +c0c77d8fb787cf Björn Töpel 2018-05-02 1350 +c0c77d8fb787cf Björn Töpel 2018-05-02 1351 if (level != SOL_XDP) +c0c77d8fb787cf Björn Töpel 2018-05-02 1352 return -ENOPROTOOPT; +c0c77d8fb787cf Björn Töpel 2018-05-02 1353 +c0c77d8fb787cf Björn Töpel 2018-05-02 1354 switch (optname) { +b9b6b68e8abd10 Björn Töpel 2018-05-02 1355 case XDP_RX_RING: +f61459030ec7ff Magnus Karlsson 2018-05-02 1356 case XDP_TX_RING: +b9b6b68e8abd10 Björn Töpel 2018-05-02 1357 { +b9b6b68e8abd10 Björn Töpel 2018-05-02 1358 struct xsk_queue **q; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1359 int entries; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1360 +b9b6b68e8abd10 Björn Töpel 2018-05-02 1361 if (optlen < sizeof(entries)) +b9b6b68e8abd10 Björn Töpel 2018-05-02 1362 return -EINVAL; +a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1363 if (copy_from_sockptr(&entries, optval, sizeof(entries))) +b9b6b68e8abd10 Björn Töpel 2018-05-02 1364 return -EFAULT; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1365 +b9b6b68e8abd10 Björn Töpel 2018-05-02 1366 mutex_lock(&xs->mutex); +455302d1c9ae93 Ilya Maximets 2019-06-28 1367 if (xs->state != XSK_READY) { +455302d1c9ae93 Ilya Maximets 2019-06-28 1368 mutex_unlock(&xs->mutex); +455302d1c9ae93 Ilya Maximets 2019-06-28 1369 return -EBUSY; +455302d1c9ae93 Ilya Maximets 2019-06-28 1370 } +f61459030ec7ff Magnus Karlsson 2018-05-02 1371 q = (optname == XDP_TX_RING) ? &xs->tx : &xs->rx; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1372 err = xsk_init_queue(entries, q, false); +77cd0d7b3f257f Magnus Karlsson 2019-08-14 1373 if (!err && optname == XDP_TX_RING) +77cd0d7b3f257f Magnus Karlsson 2019-08-14 1374 /* Tx needs to be explicitly woken up the first time */ +77cd0d7b3f257f Magnus Karlsson 2019-08-14 1375 xs->tx->ring->flags |= XDP_RING_NEED_WAKEUP; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1376 mutex_unlock(&xs->mutex); +b9b6b68e8abd10 Björn Töpel 2018-05-02 1377 return err; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1378 } +c0c77d8fb787cf Björn Töpel 2018-05-02 1379 case XDP_UMEM_REG: +c0c77d8fb787cf Björn Töpel 2018-05-02 1380 { +c05cd364581472 Kevin Laatz 2019-08-27 1381 size_t mr_size = sizeof(struct xdp_umem_reg); +c05cd364581472 Kevin Laatz 2019-08-27 1382 struct xdp_umem_reg mr = {}; +c0c77d8fb787cf Björn Töpel 2018-05-02 1383 struct xdp_umem *umem; +c0c77d8fb787cf Björn Töpel 2018-05-02 1384 +c05cd364581472 Kevin Laatz 2019-08-27 1385 if (optlen < sizeof(struct xdp_umem_reg_v1)) +c05cd364581472 Kevin Laatz 2019-08-27 1386 return -EINVAL; +341ac980eab90a Stanislav Fomichev 2023-11-27 1387 else if (optlen < sizeof(mr)) +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1388 mr_size = sizeof(struct xdp_umem_reg_v1); +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1389 +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1390 BUILD_BUG_ON(sizeof(struct xdp_umem_reg_v1) >= sizeof(struct xdp_umem_reg)); +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1391 +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1392 /* Make sure the last field of the struct doesn't have +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1393 * uninitialized padding. All padding has to be explicit +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1394 * and has to be set to zero by the userspace to make +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1395 * struct xdp_umem_reg extensible in the future. +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1396 */ +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1397 BUILD_BUG_ON(offsetof(struct xdp_umem_reg, tx_metadata_len) + +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1398 sizeof_field(struct xdp_umem_reg, tx_metadata_len) != +32654bbd6313b4 Stanislav Fomichev 2024-07-26 1399 sizeof(struct xdp_umem_reg)); +c05cd364581472 Kevin Laatz 2019-08-27 1400 +a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1401 if (copy_from_sockptr(&mr, optval, mr_size)) +c0c77d8fb787cf Björn Töpel 2018-05-02 1402 return -EFAULT; +c0c77d8fb787cf Björn Töpel 2018-05-02 1403 +c0c77d8fb787cf Björn Töpel 2018-05-02 1404 mutex_lock(&xs->mutex); +455302d1c9ae93 Ilya Maximets 2019-06-28 1405 if (xs->state != XSK_READY || xs->umem) { +a49049ea257656 Björn Töpel 2018-05-22 1406 mutex_unlock(&xs->mutex); +a49049ea257656 Björn Töpel 2018-05-22 1407 return -EBUSY; +a49049ea257656 Björn Töpel 2018-05-22 1408 } +c0c77d8fb787cf Björn Töpel 2018-05-02 1409 +a49049ea257656 Björn Töpel 2018-05-22 1410 umem = xdp_umem_create(&mr); +a49049ea257656 Björn Töpel 2018-05-22 1411 if (IS_ERR(umem)) { +c0c77d8fb787cf Björn Töpel 2018-05-02 1412 mutex_unlock(&xs->mutex); +a49049ea257656 Björn Töpel 2018-05-22 1413 return PTR_ERR(umem); +c0c77d8fb787cf Björn Töpel 2018-05-02 1414 } +c0c77d8fb787cf Björn Töpel 2018-05-02 1415 +c0c77d8fb787cf Björn Töpel 2018-05-02 1416 /* Make sure umem is ready before it can be seen by others */ +c0c77d8fb787cf Björn Töpel 2018-05-02 1417 smp_wmb(); +9764f4b301c3e7 Björn Töpel 2019-09-04 1418 WRITE_ONCE(xs->umem, umem); +c0c77d8fb787cf Björn Töpel 2018-05-02 1419 mutex_unlock(&xs->mutex); +c0c77d8fb787cf Björn Töpel 2018-05-02 1420 return 0; +c0c77d8fb787cf Björn Töpel 2018-05-02 1421 } +423f38329d2679 Magnus Karlsson 2018-05-02 1422 case XDP_UMEM_FILL_RING: +fe2308328cd2f2 Magnus Karlsson 2018-05-02 1423 case XDP_UMEM_COMPLETION_RING: +423f38329d2679 Magnus Karlsson 2018-05-02 1424 { +423f38329d2679 Magnus Karlsson 2018-05-02 1425 struct xsk_queue **q; +423f38329d2679 Magnus Karlsson 2018-05-02 1426 int entries; +423f38329d2679 Magnus Karlsson 2018-05-02 1427 +237f3cf13b20db Eric Dumazet 2024-04-04 1428 if (optlen < sizeof(entries)) +237f3cf13b20db Eric Dumazet 2024-04-04 1429 return -EINVAL; +a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1430 if (copy_from_sockptr(&entries, optval, sizeof(entries))) +423f38329d2679 Magnus Karlsson 2018-05-02 1431 return -EFAULT; +423f38329d2679 Magnus Karlsson 2018-05-02 1432 +423f38329d2679 Magnus Karlsson 2018-05-02 1433 mutex_lock(&xs->mutex); +455302d1c9ae93 Ilya Maximets 2019-06-28 1434 if (xs->state != XSK_READY) { +455302d1c9ae93 Ilya Maximets 2019-06-28 1435 mutex_unlock(&xs->mutex); +455302d1c9ae93 Ilya Maximets 2019-06-28 1436 return -EBUSY; +455302d1c9ae93 Ilya Maximets 2019-06-28 1437 } +a49049ea257656 Björn Töpel 2018-05-22 1438 +7361f9c3d71955 Magnus Karlsson 2020-08-28 1439 q = (optname == XDP_UMEM_FILL_RING) ? &xs->fq_tmp : +7361f9c3d71955 Magnus Karlsson 2020-08-28 1440 &xs->cq_tmp; +b9b6b68e8abd10 Björn Töpel 2018-05-02 1441 err = xsk_init_queue(entries, q, true); +423f38329d2679 Magnus Karlsson 2018-05-02 1442 mutex_unlock(&xs->mutex); +423f38329d2679 Magnus Karlsson 2018-05-02 1443 return err; +423f38329d2679 Magnus Karlsson 2018-05-02 1444 } +45e359be1ce88f Jason Xing 2025-07-05 1445 case XDP_MAX_TX_SKB_BUDGET: +45e359be1ce88f Jason Xing 2025-07-05 1446 { +45e359be1ce88f Jason Xing 2025-07-05 1447 unsigned int budget; +45e359be1ce88f Jason Xing 2025-07-05 1448 +45e359be1ce88f Jason Xing 2025-07-05 1449 if (optlen != sizeof(budget)) +45e359be1ce88f Jason Xing 2025-07-05 1450 return -EINVAL; +45e359be1ce88f Jason Xing 2025-07-05 1451 if (copy_from_sockptr(&budget, optval, sizeof(budget))) +45e359be1ce88f Jason Xing 2025-07-05 1452 return -EFAULT; +45e359be1ce88f Jason Xing 2025-07-05 1453 if (!xs->tx || +45e359be1ce88f Jason Xing 2025-07-05 1454 budget < TX_BATCH_SIZE || budget > xs->tx->nentries) +45e359be1ce88f Jason Xing 2025-07-05 1455 return -EACCES; +45e359be1ce88f Jason Xing 2025-07-05 1456 +45e359be1ce88f Jason Xing 2025-07-05 1457 WRITE_ONCE(xs->max_tx_budget, budget); +45e359be1ce88f Jason Xing 2025-07-05 1458 return 0; +45e359be1ce88f Jason Xing 2025-07-05 1459 } 48248366d9de2a Jason Xing 2025-08-11 1460 case XDP_GENERIC_XMIT_BATCH: 48248366d9de2a Jason Xing 2025-08-11 1461 { 48248366d9de2a Jason Xing 2025-08-11 1462 unsigned int batch, batch_alloc_len; @@ -42,9 +187,6 @@ vim +1495 net/xdp/xsk.c 48248366d9de2a Jason Xing 2025-08-11 1479 new = kmalloc(batch_alloc_len, GFP_KERNEL); 48248366d9de2a Jason Xing 2025-08-11 1480 if (!new) 48248366d9de2a Jason Xing 2025-08-11 1481 return -ENOMEM; - -mutex_unlock(&xs->mutex); before returning - 48248366d9de2a Jason Xing 2025-08-11 1482 if (xs->skb_batch) 48248366d9de2a Jason Xing 2025-08-11 1483 kfree(xs->skb_batch); 48248366d9de2a Jason Xing 2025-08-11 1484 @@ -60,6 +202,7 @@ c0c77d8fb787cf Björn Töpel 2018-05-02 1493 } c0c77d8fb787cf Björn Töpel 2018-05-02 1494 c0c77d8fb787cf Björn Töpel 2018-05-02 @1495 return -ENOPROTOOPT; c0c77d8fb787cf Björn Töpel 2018-05-02 1496 } +c0c77d8fb787cf Björn Töpel 2018-05-02 1497 -- 0-DAY CI Kernel Test Service diff --git a/a/content_digest b/N1/content_digest index f06fd27..ed5316d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,46 +1,54 @@ - "ref\020250811131236.56206-2-kerneljasonxing@gmail.com\0" - "From\0Dan Carpenter <dan.carpenter@linaro.org>\0" + "From\0kernel test robot <lkp@intel.com>\0" "Subject\0Re: [PATCH net-next 1/2] xsk: introduce XDP_GENERIC_XMIT_BATCH setsockopt\0" - "Date\0Mon, 18 Aug 2025 09:20:20 +0300\0" - "To\0oe-kbuild@lists.linux.dev" - Jason Xing <kerneljasonxing@gmail.com> - davem@davemloft.net - edumazet@google.com - kuba@kernel.org - pabeni@redhat.com - bjorn@kernel.org - magnus.karlsson@intel.com - maciej.fijalkowski@intel.com - jonathan.lemon@gmail.com - sdf@fomichev.me - ast@kernel.org - daniel@iogearbox.net - hawk@kernel.org - john.fastabend@gmail.com - horms@kernel.org - " andrew+netdev@lunn.ch\0" + "Date\0Sun, 17 Aug 2025 11:05:59 +0800\0" + "To\0oe-kbuild@lists.linux.dev\0" "Cc\0lkp@intel.com" - oe-kbuild-all@lists.linux.dev - bpf@vger.kernel.org - netdev@vger.kernel.org - " Jason Xing <kernelxing@tencent.com>\0" + " Dan Carpenter <error27@gmail.com>\0" "\00:1\0" "b\0" + "BCC: lkp@intel.com\n" + "CC: oe-kbuild-all@lists.linux.dev\n" + "In-Reply-To: <20250811131236.56206-2-kerneljasonxing@gmail.com>\n" + "References: <20250811131236.56206-2-kerneljasonxing@gmail.com>\n" + "TO: Jason Xing <kerneljasonxing@gmail.com>\n" + "TO: davem@davemloft.net\n" + "TO: edumazet@google.com\n" + "TO: kuba@kernel.org\n" + "TO: pabeni@redhat.com\n" + "TO: bjorn@kernel.org\n" + "TO: magnus.karlsson@intel.com\n" + "TO: maciej.fijalkowski@intel.com\n" + "TO: jonathan.lemon@gmail.com\n" + "TO: sdf@fomichev.me\n" + "TO: ast@kernel.org\n" + "TO: daniel@iogearbox.net\n" + "TO: hawk@kernel.org\n" + "TO: john.fastabend@gmail.com\n" + "TO: horms@kernel.org\n" + "TO: andrew+netdev@lunn.ch\n" + "CC: bpf@vger.kernel.org\n" + "CC: netdev@vger.kernel.org\n" + "CC: Jason Xing <kernelxing@tencent.com>\n" + "\n" "Hi Jason,\n" "\n" "kernel test robot noticed the following build warnings:\n" "\n" + "[auto build test WARNING on net-next/main]\n" + "\n" "url: https://github.com/intel-lab-lkp/linux/commits/Jason-Xing/xsk-introduce-XDP_GENERIC_XMIT_BATCH-setsockopt/20250811-211509\n" "base: net-next/main\n" "patch link: https://lore.kernel.org/r/20250811131236.56206-2-kerneljasonxing%40gmail.com\n" "patch subject: [PATCH net-next 1/2] xsk: introduce XDP_GENERIC_XMIT_BATCH setsockopt\n" + ":::::: branch date: 6 days ago\n" + ":::::: commit date: 6 days ago\n" "config: s390-randconfig-r073-20250817 (https://download.01.org/0day-ci/archive/20250817/202508171049.SGYNFbP3-lkp@intel.com/config)\n" "compiler: s390-linux-gcc (GCC) 8.5.0\n" "\n" "If you fix the issue in a separate patch/commit (i.e. not just a new version of\n" "the same patch/commit), kindly add following tags\n" "| Reported-by: kernel test robot <lkp@intel.com>\n" - "| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>\n" + "| Reported-by: Dan Carpenter <error27@gmail.com>\n" "| Closes: https://lore.kernel.org/r/202508171049.SGYNFbP3-lkp@intel.com/\n" "\n" "smatch warnings:\n" @@ -48,6 +56,123 @@ "\n" "vim +1495 net/xdp/xsk.c\n" "\n" + "c05cd364581472 Kevin Laatz 2019-08-27 1343 \n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1344 static int xsk_setsockopt(struct socket *sock, int level, int optname,\n" + "a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1345 \t\t\t sockptr_t optval, unsigned int optlen)\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1346 {\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1347 \tstruct sock *sk = sock->sk;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1348 \tstruct xdp_sock *xs = xdp_sk(sk);\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1349 \tint err;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1350 \n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1351 \tif (level != SOL_XDP)\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1352 \t\treturn -ENOPROTOOPT;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1353 \n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1354 \tswitch (optname) {\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1355 \tcase XDP_RX_RING:\n" + "f61459030ec7ff Magnus Karlsson 2018-05-02 1356 \tcase XDP_TX_RING:\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1357 \t{\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1358 \t\tstruct xsk_queue **q;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1359 \t\tint entries;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1360 \n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1361 \t\tif (optlen < sizeof(entries))\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1362 \t\t\treturn -EINVAL;\n" + "a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1363 \t\tif (copy_from_sockptr(&entries, optval, sizeof(entries)))\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1364 \t\t\treturn -EFAULT;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1365 \n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1366 \t\tmutex_lock(&xs->mutex);\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1367 \t\tif (xs->state != XSK_READY) {\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1368 \t\t\tmutex_unlock(&xs->mutex);\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1369 \t\t\treturn -EBUSY;\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1370 \t\t}\n" + "f61459030ec7ff Magnus Karlsson 2018-05-02 1371 \t\tq = (optname == XDP_TX_RING) ? &xs->tx : &xs->rx;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1372 \t\terr = xsk_init_queue(entries, q, false);\n" + "77cd0d7b3f257f Magnus Karlsson 2019-08-14 1373 \t\tif (!err && optname == XDP_TX_RING)\n" + "77cd0d7b3f257f Magnus Karlsson 2019-08-14 1374 \t\t\t/* Tx needs to be explicitly woken up the first time */\n" + "77cd0d7b3f257f Magnus Karlsson 2019-08-14 1375 \t\t\txs->tx->ring->flags |= XDP_RING_NEED_WAKEUP;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1376 \t\tmutex_unlock(&xs->mutex);\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1377 \t\treturn err;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1378 \t}\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1379 \tcase XDP_UMEM_REG:\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1380 \t{\n" + "c05cd364581472 Kevin Laatz 2019-08-27 1381 \t\tsize_t mr_size = sizeof(struct xdp_umem_reg);\n" + "c05cd364581472 Kevin Laatz 2019-08-27 1382 \t\tstruct xdp_umem_reg mr = {};\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1383 \t\tstruct xdp_umem *umem;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1384 \n" + "c05cd364581472 Kevin Laatz 2019-08-27 1385 \t\tif (optlen < sizeof(struct xdp_umem_reg_v1))\n" + "c05cd364581472 Kevin Laatz 2019-08-27 1386 \t\t\treturn -EINVAL;\n" + "341ac980eab90a Stanislav Fomichev 2023-11-27 1387 \t\telse if (optlen < sizeof(mr))\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1388 \t\t\tmr_size = sizeof(struct xdp_umem_reg_v1);\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1389 \n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1390 \t\tBUILD_BUG_ON(sizeof(struct xdp_umem_reg_v1) >= sizeof(struct xdp_umem_reg));\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1391 \n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1392 \t\t/* Make sure the last field of the struct doesn't have\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1393 \t\t * uninitialized padding. All padding has to be explicit\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1394 \t\t * and has to be set to zero by the userspace to make\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1395 \t\t * struct xdp_umem_reg extensible in the future.\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1396 \t\t */\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1397 \t\tBUILD_BUG_ON(offsetof(struct xdp_umem_reg, tx_metadata_len) +\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1398 \t\t\t sizeof_field(struct xdp_umem_reg, tx_metadata_len) !=\n" + "32654bbd6313b4 Stanislav Fomichev 2024-07-26 1399 \t\t\t sizeof(struct xdp_umem_reg));\n" + "c05cd364581472 Kevin Laatz 2019-08-27 1400 \n" + "a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1401 \t\tif (copy_from_sockptr(&mr, optval, mr_size))\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1402 \t\t\treturn -EFAULT;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1403 \n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1404 \t\tmutex_lock(&xs->mutex);\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1405 \t\tif (xs->state != XSK_READY || xs->umem) {\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1406 \t\t\tmutex_unlock(&xs->mutex);\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1407 \t\t\treturn -EBUSY;\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1408 \t\t}\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1409 \n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1410 \t\tumem = xdp_umem_create(&mr);\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1411 \t\tif (IS_ERR(umem)) {\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1412 \t\t\tmutex_unlock(&xs->mutex);\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1413 \t\t\treturn PTR_ERR(umem);\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1414 \t\t}\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1415 \n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1416 \t\t/* Make sure umem is ready before it can be seen by others */\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1417 \t\tsmp_wmb();\n" + "9764f4b301c3e7 Bj\303\266rn T\303\266pel 2019-09-04 1418 \t\tWRITE_ONCE(xs->umem, umem);\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1419 \t\tmutex_unlock(&xs->mutex);\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1420 \t\treturn 0;\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1421 \t}\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1422 \tcase XDP_UMEM_FILL_RING:\n" + "fe2308328cd2f2 Magnus Karlsson 2018-05-02 1423 \tcase XDP_UMEM_COMPLETION_RING:\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1424 \t{\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1425 \t\tstruct xsk_queue **q;\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1426 \t\tint entries;\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1427 \n" + "237f3cf13b20db Eric Dumazet 2024-04-04 1428 \t\tif (optlen < sizeof(entries))\n" + "237f3cf13b20db Eric Dumazet 2024-04-04 1429 \t\t\treturn -EINVAL;\n" + "a7b75c5a8c4144 Christoph Hellwig 2020-07-23 1430 \t\tif (copy_from_sockptr(&entries, optval, sizeof(entries)))\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1431 \t\t\treturn -EFAULT;\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1432 \n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1433 \t\tmutex_lock(&xs->mutex);\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1434 \t\tif (xs->state != XSK_READY) {\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1435 \t\t\tmutex_unlock(&xs->mutex);\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1436 \t\t\treturn -EBUSY;\n" + "455302d1c9ae93 Ilya Maximets 2019-06-28 1437 \t\t}\n" + "a49049ea257656 Bj\303\266rn T\303\266pel 2018-05-22 1438 \n" + "7361f9c3d71955 Magnus Karlsson 2020-08-28 1439 \t\tq = (optname == XDP_UMEM_FILL_RING) ? &xs->fq_tmp :\n" + "7361f9c3d71955 Magnus Karlsson 2020-08-28 1440 \t\t\t&xs->cq_tmp;\n" + "b9b6b68e8abd10 Bj\303\266rn T\303\266pel 2018-05-02 1441 \t\terr = xsk_init_queue(entries, q, true);\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1442 \t\tmutex_unlock(&xs->mutex);\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1443 \t\treturn err;\n" + "423f38329d2679 Magnus Karlsson 2018-05-02 1444 \t}\n" + "45e359be1ce88f Jason Xing 2025-07-05 1445 \tcase XDP_MAX_TX_SKB_BUDGET:\n" + "45e359be1ce88f Jason Xing 2025-07-05 1446 \t{\n" + "45e359be1ce88f Jason Xing 2025-07-05 1447 \t\tunsigned int budget;\n" + "45e359be1ce88f Jason Xing 2025-07-05 1448 \n" + "45e359be1ce88f Jason Xing 2025-07-05 1449 \t\tif (optlen != sizeof(budget))\n" + "45e359be1ce88f Jason Xing 2025-07-05 1450 \t\t\treturn -EINVAL;\n" + "45e359be1ce88f Jason Xing 2025-07-05 1451 \t\tif (copy_from_sockptr(&budget, optval, sizeof(budget)))\n" + "45e359be1ce88f Jason Xing 2025-07-05 1452 \t\t\treturn -EFAULT;\n" + "45e359be1ce88f Jason Xing 2025-07-05 1453 \t\tif (!xs->tx ||\n" + "45e359be1ce88f Jason Xing 2025-07-05 1454 \t\t budget < TX_BATCH_SIZE || budget > xs->tx->nentries)\n" + "45e359be1ce88f Jason Xing 2025-07-05 1455 \t\t\treturn -EACCES;\n" + "45e359be1ce88f Jason Xing 2025-07-05 1456 \n" + "45e359be1ce88f Jason Xing 2025-07-05 1457 \t\tWRITE_ONCE(xs->max_tx_budget, budget);\n" + "45e359be1ce88f Jason Xing 2025-07-05 1458 \t\treturn 0;\n" + "45e359be1ce88f Jason Xing 2025-07-05 1459 \t}\n" "48248366d9de2a Jason Xing 2025-08-11 1460 \tcase XDP_GENERIC_XMIT_BATCH:\n" "48248366d9de2a Jason Xing 2025-08-11 1461 \t{\n" "48248366d9de2a Jason Xing 2025-08-11 1462 \t\tunsigned int batch, batch_alloc_len;\n" @@ -70,9 +195,6 @@ "48248366d9de2a Jason Xing 2025-08-11 1479 \t\tnew = kmalloc(batch_alloc_len, GFP_KERNEL);\n" "48248366d9de2a Jason Xing 2025-08-11 1480 \t\tif (!new)\n" "48248366d9de2a Jason Xing 2025-08-11 1481 \t\t\treturn -ENOMEM;\n" - "\n" - "mutex_unlock(&xs->mutex); before returning\n" - "\n" "48248366d9de2a Jason Xing 2025-08-11 1482 \t\tif (xs->skb_batch)\n" "48248366d9de2a Jason Xing 2025-08-11 1483 \t\t\tkfree(xs->skb_batch);\n" "48248366d9de2a Jason Xing 2025-08-11 1484 \n" @@ -88,9 +210,10 @@ "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1494 \n" "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 @1495 \treturn -ENOPROTOOPT;\n" "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1496 }\n" + "c0c77d8fb787cf Bj\303\266rn T\303\266pel 2018-05-02 1497 \n" "\n" "-- \n" "0-DAY CI Kernel Test Service\n" https://github.com/intel/lkp-tests/wiki -7cede99e363b78b7f03f7a5f22530ec347d04c630b26253d1c6c8c2d24793cf7 +0dda109ad2e53a1a30327bb0aeab62dfd968807e84544003140bfdc7b55b5a7d
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.