From: kernel test robot <lkp@intel.com>
To: Rohit Chavan <roheetchavan@gmail.com>,
kbusch@kernel.org, axboe@kernel.dk, hch@lst.de, sagi@grimberg.me
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
Rohit Chavan <roheetchavan@gmail.com>
Subject: Re: [PATCH] nvme: use str_enabled_disabled() for digest mismatch messages
Date: Fri, 15 May 2026 05:25:18 +0800 [thread overview]
Message-ID: <202605150537.AqXMjMVu-lkp@intel.com> (raw)
In-Reply-To: <20260504123555.1741525-1-roheetchavan@gmail.com>
Hi Rohit,
kernel test robot noticed the following build errors:
[auto build test ERROR on axboe/for-next]
[also build test ERROR on linus/master v7.1-rc3 next-20260508]
[cannot apply to linux-nvme/for-next hch-configfs/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Rohit-Chavan/nvme-use-str_enabled_disabled-for-digest-mismatch-messages/20260514-220734
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git for-next
patch link: https://lore.kernel.org/r/20260504123555.1741525-1-roheetchavan%40gmail.com
patch subject: [PATCH] nvme: use str_enabled_disabled() for digest mismatch messages
config: powerpc64-randconfig-002-20260515 (https://download.01.org/0day-ci/archive/20260515/202605150537.AqXMjMVu-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260515/202605150537.AqXMjMVu-lkp@intel.com/reproduce)
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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605150537.AqXMjMVu-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/nvme/host/tcp.c:1576:3: error: unterminated function-like macro invocation
1576 | pr_err("queue %d: header digest mismatch host: %s ctrl: %s\n",
| ^
include/linux/printk.h:553:9: note: macro 'pr_err' defined here
553 | #define pr_err(fmt, ...) \
| ^
>> drivers/nvme/host/tcp.c:3089:26: error: expected '}'
3089 | MODULE_ALIAS("nvme-tcp");
| ^
drivers/nvme/host/tcp.c:1575:42: note: to match this '{'
1575 | (!queue->hdr_digest && ctrl_hdgst)) {
| ^
>> drivers/nvme/host/tcp.c:3089:26: error: expected '}'
3089 | MODULE_ALIAS("nvme-tcp");
| ^
drivers/nvme/host/tcp.c:1475:1: note: to match this '{'
1475 | {
| ^
>> drivers/nvme/host/tcp.c:1493:8: error: use of undeclared label 'free_icreq'
1493 | goto free_icreq;
| ^
>> drivers/nvme/host/tcp.c:1514:8: error: use of undeclared label 'free_icresp'
1514 | goto free_icresp;
| ^
5 errors generated.
vim +1576 drivers/nvme/host/tcp.c
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1473
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1474 static int nvme_tcp_init_connection(struct nvme_tcp_queue *queue)
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1475 {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1476 struct nvme_tcp_icreq_pdu *icreq;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1477 struct nvme_tcp_icresp_pdu *icresp;
2837966ab2a8117 Hannes Reinecke 2023-08-24 1478 char cbuf[CMSG_LEN(sizeof(char))] = {};
2837966ab2a8117 Hannes Reinecke 2023-08-24 1479 u8 ctype;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1480 struct msghdr msg = {};
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1481 struct kvec iov;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1482 bool ctrl_hdgst, ctrl_ddgst;
c2700d2886a87f8 Varun Prakash 2022-01-22 1483 u32 maxh2cdata;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1484 int ret;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1485
bf4afc53b77aeaa Linus Torvalds 2026-02-21 1486 icreq = kzalloc_obj(*icreq);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1487 if (!icreq)
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1488 return -ENOMEM;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1489
bf4afc53b77aeaa Linus Torvalds 2026-02-21 1490 icresp = kzalloc_obj(*icresp);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1491 if (!icresp) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1492 ret = -ENOMEM;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 @1493 goto free_icreq;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1494 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1495
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1496 icreq->hdr.type = nvme_tcp_icreq;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1497 icreq->hdr.hlen = sizeof(*icreq);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1498 icreq->hdr.pdo = 0;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1499 icreq->hdr.plen = cpu_to_le32(icreq->hdr.hlen);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1500 icreq->pfv = cpu_to_le16(NVME_TCP_PFV_1_0);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1501 icreq->maxr2t = 0; /* single inflight r2t supported */
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1502 icreq->hpda = 0; /* no alignment constraint */
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1503 if (queue->hdr_digest)
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1504 icreq->digest |= NVME_TCP_HDR_DIGEST_ENABLE;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1505 if (queue->data_digest)
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1506 icreq->digest |= NVME_TCP_DATA_DIGEST_ENABLE;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1507
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1508 iov.iov_base = icreq;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1509 iov.iov_len = sizeof(*icreq);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1510 ret = kernel_sendmsg(queue->sock, &msg, &iov, 1, iov.iov_len);
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1511 if (ret < 0) {
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1512 pr_warn("queue %d: failed to send icreq, error %d\n",
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1513 nvme_tcp_queue_id(queue), ret);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 @1514 goto free_icresp;
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1515 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1516
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1517 memset(&msg, 0, sizeof(msg));
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1518 iov.iov_base = icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1519 iov.iov_len = sizeof(*icresp);
363895767fbfa05 Hannes Reinecke 2024-07-22 1520 if (nvme_tcp_queue_tls(queue)) {
2837966ab2a8117 Hannes Reinecke 2023-08-24 1521 msg.msg_control = cbuf;
2837966ab2a8117 Hannes Reinecke 2023-08-24 1522 msg.msg_controllen = sizeof(cbuf);
2837966ab2a8117 Hannes Reinecke 2023-08-24 1523 }
578539e0969028f Caleb Sander Mateos 2025-01-24 1524 msg.msg_flags = MSG_WAITALL;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1525 ret = kernel_recvmsg(queue->sock, &msg, &iov, 1,
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1526 iov.iov_len, msg.msg_flags);
528361c49962708 Dan Carpenter 2025-03-05 1527 if (ret >= 0 && ret < sizeof(*icresp))
528361c49962708 Dan Carpenter 2025-03-05 1528 ret = -ECONNRESET;
528361c49962708 Dan Carpenter 2025-03-05 1529 if (ret < 0) {
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1530 pr_warn("queue %d: failed to receive icresp, error %d\n",
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1531 nvme_tcp_queue_id(queue), ret);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1532 goto free_icresp;
e4f4aabb6f66177 Hannes Reinecke 2023-08-24 1533 }
0e32fdd7968eb9a Christophe JAILLET 2023-10-30 1534 ret = -ENOTCONN;
363895767fbfa05 Hannes Reinecke 2024-07-22 1535 if (nvme_tcp_queue_tls(queue)) {
2837966ab2a8117 Hannes Reinecke 2023-08-24 1536 ctype = tls_get_record_type(queue->sock->sk,
2837966ab2a8117 Hannes Reinecke 2023-08-24 1537 (struct cmsghdr *)cbuf);
2837966ab2a8117 Hannes Reinecke 2023-08-24 1538 if (ctype != TLS_RECORD_TYPE_DATA) {
2837966ab2a8117 Hannes Reinecke 2023-08-24 1539 pr_err("queue %d: unhandled TLS record %d\n",
2837966ab2a8117 Hannes Reinecke 2023-08-24 1540 nvme_tcp_queue_id(queue), ctype);
0e32fdd7968eb9a Christophe JAILLET 2023-10-30 1541 goto free_icresp;
2837966ab2a8117 Hannes Reinecke 2023-08-24 1542 }
2837966ab2a8117 Hannes Reinecke 2023-08-24 1543 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1544 ret = -EINVAL;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1545 if (icresp->hdr.type != nvme_tcp_icresp) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1546 pr_err("queue %d: bad type returned %d\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1547 nvme_tcp_queue_id(queue), icresp->hdr.type);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1548 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1549 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1550
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1551 if (le32_to_cpu(icresp->hdr.plen) != sizeof(*icresp)) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1552 pr_err("queue %d: bad pdu length returned %d\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1553 nvme_tcp_queue_id(queue), icresp->hdr.plen);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1554 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1555 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1556
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1557 if (icresp->pfv != NVME_TCP_PFV_1_0) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1558 pr_err("queue %d: bad pfv returned %d\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1559 nvme_tcp_queue_id(queue), icresp->pfv);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1560 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1561 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1562
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1563 ctrl_ddgst = !!(icresp->digest & NVME_TCP_DATA_DIGEST_ENABLE);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1564 if ((queue->data_digest && !ctrl_ddgst) ||
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1565 (!queue->data_digest && ctrl_ddgst)) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1566 pr_err("queue %d: data digest mismatch host: %s ctrl: %s\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1567 nvme_tcp_queue_id(queue),
7a36402bd09e72c Rohit Chavan 2026-05-04 1568 str_enabled_disabled(queue->data_digest),
7a36402bd09e72c Rohit Chavan 2026-05-04 1569 str_enabled_disabled(ctrl_ddgst));
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1570 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1571 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1572
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1573 ctrl_hdgst = !!(icresp->digest & NVME_TCP_HDR_DIGEST_ENABLE);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1574 if ((queue->hdr_digest && !ctrl_hdgst) ||
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 @1575 (!queue->hdr_digest && ctrl_hdgst)) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 @1576 pr_err("queue %d: header digest mismatch host: %s ctrl: %s\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1577 nvme_tcp_queue_id(queue),
7a36402bd09e72c Rohit Chavan 2026-05-04 1578 str_enabled_disabled(queue->hdr_digest),
7a36402bd09e72c Rohit Chavan 2026-05-04 1579 str_enabled_disabled(ctrl_hdgst);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1580 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1581 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1582
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1583 if (icresp->cpda != 0) {
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1584 pr_err("queue %d: unsupported cpda returned %d\n",
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1585 nvme_tcp_queue_id(queue), icresp->cpda);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1586 goto free_icresp;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1587 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1588
c2700d2886a87f8 Varun Prakash 2022-01-22 1589 maxh2cdata = le32_to_cpu(icresp->maxdata);
c2700d2886a87f8 Varun Prakash 2022-01-22 1590 if ((maxh2cdata % 4) || (maxh2cdata < NVME_TCP_MIN_MAXH2CDATA)) {
c2700d2886a87f8 Varun Prakash 2022-01-22 1591 pr_err("queue %d: invalid maxh2cdata returned %u\n",
c2700d2886a87f8 Varun Prakash 2022-01-22 1592 nvme_tcp_queue_id(queue), maxh2cdata);
c2700d2886a87f8 Varun Prakash 2022-01-22 1593 goto free_icresp;
c2700d2886a87f8 Varun Prakash 2022-01-22 1594 }
c2700d2886a87f8 Varun Prakash 2022-01-22 1595 queue->maxh2cdata = maxh2cdata;
c2700d2886a87f8 Varun Prakash 2022-01-22 1596
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1597 ret = 0;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1598 free_icresp:
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1599 kfree(icresp);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1600 free_icreq:
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1601 kfree(icreq);
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1602 return ret;
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1603 }
3f2304f8c6d6ed9 Sagi Grimberg 2018-12-03 1604
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-05-14 21:34 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-04 12:35 [PATCH] nvme: use str_enabled_disabled() for digest mismatch messages Rohit Chavan
2026-05-07 5:32 ` Christoph Hellwig
2026-05-08 9:47 ` Rohit Chavan
2026-05-11 8:14 ` Christoph Hellwig
2026-05-14 20:21 ` kernel test robot
2026-05-14 20:42 ` kernel test robot
2026-05-14 21:25 ` kernel test robot [this message]
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=202605150537.AqXMjMVu-lkp@intel.com \
--to=lkp@intel.com \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=roheetchavan@gmail.com \
--cc=sagi@grimberg.me \
/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.