All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Koichiro Den <den@valinux.co.jp>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC PATCH v2 20/27] NTB: ntb_transport: Introduce remote eDMA backed transport mode
Date: Mon, 1 Dec 2025 12:38:26 +0800	[thread overview]
Message-ID: <202512011208.AnoqH1AC-lkp@intel.com> (raw)
In-Reply-To: <20251129160405.2568284-21-den@valinux.co.jp>

Hi Koichiro,

[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:

[auto build test WARNING on pci/next]
[also build test WARNING on next-20251128]
[cannot apply to jonmason-ntb/ntb-next pci/for-linus geert-renesas-devel/next linus/master v6.18]
[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/Koichiro-Den/PCI-endpoint-pci-epf-vntb-Use-array_index_nospec-on-mws_size-access/20251130-001424
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link:    https://lore.kernel.org/r/20251129160405.2568284-21-den%40valinux.co.jp
patch subject: [RFC PATCH v2 20/27] NTB: ntb_transport: Introduce remote eDMA backed transport mode
config: riscv-randconfig-r071-20251201 (https://download.01.org/0day-ci/archive/20251201/202512011208.AnoqH1AC-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project b3428bb966f1de8aa48375ffee0eba04ede133b7)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251201/202512011208.AnoqH1AC-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/202512011208.AnoqH1AC-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/ntb/ntb_transport_core.c:1286:15: warning: variable 'mw_num' set but not used [-Wunused-but-set-variable]
    1286 |         unsigned int mw_num, mw_count, qp_count;
         |                      ^
   drivers/ntb/ntb_transport_core.c:1286:23: warning: variable 'mw_count' set but not used [-Wunused-but-set-variable]
    1286 |         unsigned int mw_num, mw_count, qp_count;
         |                              ^
   drivers/ntb/ntb_transport_core.c:1286:33: warning: variable 'qp_count' set but not used [-Wunused-but-set-variable]
    1286 |         unsigned int mw_num, mw_count, qp_count;
         |                                        ^
>> drivers/ntb/ntb_transport_core.c:1367:47: warning: unused variable 'edma_backend_ops' [-Wunused-const-variable]
    1367 | static const struct ntb_transport_backend_ops edma_backend_ops;
         |                                               ^~~~~~~~~~~~~~~~
   4 warnings generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for ARCH_HAS_ELF_CORE_EFLAGS
   Depends on [n]: BINFMT_ELF [=y] && ELF_CORE [=n]
   Selected by [y]:
   - RISCV [=y]

smatch warnings:
drivers/ntb/ntb_transport_core.c:1425 ntb_transport_probe() warn: inconsistent indenting
drivers/ntb/ntb_transport_core.c:2412 ntb_transport_rx_enqueue() warn: variable dereferenced before check 'qp' (see line 2409)
drivers/ntb/ntb_transport_core.c:2451 ntb_transport_tx_enqueue() warn: variable dereferenced before check 'qp' (see line 2447)

vim +/edma_backend_ops +1367 drivers/ntb/ntb_transport_core.c

  1281	
  1282	static int ntb_transport_init_queue(struct ntb_transport_ctx *nt,
  1283					    unsigned int qp_num)
  1284	{
  1285		struct ntb_transport_qp *qp;
> 1286		unsigned int mw_num, mw_count, qp_count;
  1287	
  1288		mw_count = nt->mw_count;
  1289		qp_count = nt->qp_count;
  1290	
  1291		mw_num = QP_TO_MW(nt, qp_num);
  1292	
  1293		qp = &nt->qp_vec[qp_num];
  1294		qp->qp_num = qp_num;
  1295		qp->transport = nt;
  1296		qp->ndev = nt->ndev;
  1297		qp->client_ready = false;
  1298		qp->event_handler = NULL;
  1299		ntb_qp_link_context_reset(qp);
  1300	
  1301		if (nt->debugfs_node_dir) {
  1302			char debugfs_name[8];
  1303	
  1304			snprintf(debugfs_name, sizeof(debugfs_name), "qp%d", qp_num);
  1305			qp->debugfs_dir = debugfs_create_dir(debugfs_name,
  1306							     nt->debugfs_node_dir);
  1307	
  1308			qp->debugfs_stats = debugfs_create_file("stats", S_IRUSR,
  1309								qp->debugfs_dir, qp,
  1310								&ntb_qp_debugfs_stats_fops);
  1311		} else {
  1312			qp->debugfs_dir = NULL;
  1313			qp->debugfs_stats = NULL;
  1314		}
  1315	
  1316		INIT_DELAYED_WORK(&qp->link_work, ntb_qp_link_work);
  1317		INIT_WORK(&qp->link_cleanup, ntb_qp_link_cleanup_work);
  1318	
  1319		spin_lock_init(&qp->ntb_rx_q_lock);
  1320		spin_lock_init(&qp->ntb_tx_free_q_lock);
  1321	
  1322		INIT_LIST_HEAD(&qp->rx_post_q);
  1323		INIT_LIST_HEAD(&qp->rx_pend_q);
  1324		INIT_LIST_HEAD(&qp->rx_free_q);
  1325		INIT_LIST_HEAD(&qp->tx_free_q);
  1326	
  1327		tasklet_init(&qp->rxc_db_work, ntb_transport_rxc_db,
  1328			     (unsigned long)qp);
  1329	
  1330		return 0;
  1331	}
  1332	
  1333	static unsigned int ntb_transport_default_tx_free_entry(struct ntb_transport_qp *qp)
  1334	{
  1335		unsigned int head = qp->tx_index;
  1336		unsigned int tail = qp->remote_rx_info->entry;
  1337	
  1338		return tail >= head ? tail - head : qp->tx_max_entry + tail - head;
  1339	}
  1340	
  1341	static int ntb_transport_default_rx_enqueue(struct ntb_transport_qp *qp,
  1342						    struct ntb_queue_entry *entry)
  1343	{
  1344		ntb_list_add(&qp->ntb_rx_q_lock, &entry->entry, &qp->rx_pend_q);
  1345	
  1346		if (qp->active)
  1347			tasklet_schedule(&qp->rxc_db_work);
  1348	
  1349		return 0;
  1350	}
  1351	
  1352	static void ntb_transport_default_rx_poll(struct ntb_transport_qp *qp);
  1353	static int ntb_transport_default_tx_enqueue(struct ntb_transport_qp *qp,
  1354						    struct ntb_queue_entry *entry,
  1355						    void *cb, void *data, unsigned int len,
  1356						    unsigned int flags);
  1357	
  1358	static const struct ntb_transport_backend_ops default_backend_ops = {
  1359		.setup_qp_mw = ntb_transport_default_setup_qp_mw,
  1360		.tx_free_entry = ntb_transport_default_tx_free_entry,
  1361		.tx_enqueue = ntb_transport_default_tx_enqueue,
  1362		.rx_enqueue = ntb_transport_default_rx_enqueue,
  1363		.rx_poll = ntb_transport_default_rx_poll,
  1364		.debugfs_stats_show = ntb_transport_default_debugfs_stats_show,
  1365	};
  1366	
> 1367	static const struct ntb_transport_backend_ops edma_backend_ops;
  1368	
  1369	static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
  1370	{
  1371		struct ntb_transport_ctx *nt;
  1372		struct ntb_transport_mw *mw;
  1373		unsigned int mw_count, qp_count, spad_count, max_mw_count_for_spads;
  1374		u64 qp_bitmap;
  1375		int node;
  1376		int rc, i;
  1377	
  1378		mw_count = ntb_peer_mw_count(ndev);
  1379	
  1380		if (!ndev->ops->mw_set_trans) {
  1381			dev_err(&ndev->dev, "Inbound MW based NTB API is required\n");
  1382			return -EINVAL;
  1383		}
  1384	
  1385		if (ntb_db_is_unsafe(ndev))
  1386			dev_dbg(&ndev->dev,
  1387				"doorbell is unsafe, proceed anyway...\n");
  1388		if (ntb_spad_is_unsafe(ndev))
  1389			dev_dbg(&ndev->dev,
  1390				"scratchpad is unsafe, proceed anyway...\n");
  1391	
  1392		if (ntb_peer_port_count(ndev) != NTB_DEF_PEER_CNT)
  1393			dev_warn(&ndev->dev, "Multi-port NTB devices unsupported\n");
  1394	
  1395		node = dev_to_node(&ndev->dev);
  1396	
  1397		nt = kzalloc_node(sizeof(*nt), GFP_KERNEL, node);
  1398		if (!nt)
  1399			return -ENOMEM;
  1400	
  1401		nt->ndev = ndev;
  1402	
  1403	#ifdef CONFIG_NTB_TRANSPORT_EDMA
  1404		if (use_remote_edma) {
  1405			rc = ntb_transport_edma_init(nt, &mw_count);
  1406			if (rc) {
  1407				nt->mw_count = 0;
  1408				goto err;
  1409			}
  1410			nt->backend_ops = edma_backend_ops;
  1411	
  1412			/*
  1413			 * On remote eDMA mode, we reserve a read channel for Host->EP
  1414			 * interruption.
  1415			 */
  1416			use_msi = false;
  1417		} else
  1418	#endif
  1419			nt->backend_ops = default_backend_ops;
  1420	
  1421		/*
  1422		 * If we are using MSI, and have at least one extra memory window,
  1423		 * we will reserve the last MW for the MSI window.
  1424		 */
> 1425		if (use_msi && mw_count > 1) {
  1426			rc = ntb_msi_init(ndev, ntb_transport_msi_desc_changed);
  1427			if (!rc) {
  1428				mw_count -= 1;
  1429				nt->use_msi = true;
  1430			}
  1431		}
  1432	
  1433		spad_count = ntb_spad_count(ndev);
  1434	
  1435		/* Limit the MW's based on the availability of scratchpads */
  1436	
  1437		if (spad_count < NTB_TRANSPORT_MIN_SPADS) {
  1438			nt->mw_count = 0;
  1439			rc = -EINVAL;
  1440			goto err;
  1441		}
  1442	
  1443		max_mw_count_for_spads = (spad_count - MW0_SZ_HIGH) / 2;
  1444		nt->mw_count = min(mw_count, max_mw_count_for_spads);
  1445	
  1446		nt->msi_spad_offset = nt->mw_count * 2 + MW0_SZ_HIGH;
  1447	
  1448		nt->mw_vec = kcalloc_node(mw_count, sizeof(*nt->mw_vec),
  1449					  GFP_KERNEL, node);
  1450		if (!nt->mw_vec) {
  1451			rc = -ENOMEM;
  1452			goto err;
  1453		}
  1454	
  1455		for (i = 0; i < mw_count; i++) {
  1456			mw = &nt->mw_vec[i];
  1457	
  1458			rc = ntb_peer_mw_get_addr(ndev, i, &mw->phys_addr,
  1459						  &mw->phys_size);
  1460			if (rc)
  1461				goto err1;
  1462	
  1463			mw->vbase = ioremap_wc(mw->phys_addr, mw->phys_size);
  1464			if (!mw->vbase) {
  1465				rc = -ENOMEM;
  1466				goto err1;
  1467			}
  1468	
  1469			mw->buff_size = 0;
  1470			mw->xlat_size = 0;
  1471			mw->virt_addr = NULL;
  1472			mw->dma_addr = 0;
  1473		}
  1474	
  1475		qp_bitmap = ntb_db_valid_mask(ndev);
  1476	
  1477		qp_count = ilog2(qp_bitmap);
  1478		if (nt->use_msi) {
  1479			qp_count -= 1;
  1480			nt->msi_db_mask = BIT_ULL(qp_count);
  1481			ntb_db_clear_mask(ndev, nt->msi_db_mask);
  1482		}
  1483	
  1484		if (max_num_clients && max_num_clients < qp_count)
  1485			qp_count = max_num_clients;
  1486	
  1487		qp_bitmap &= BIT_ULL(qp_count) - 1;
  1488	
  1489		nt->qp_count = qp_count;
  1490		nt->qp_bitmap = qp_bitmap;
  1491		nt->qp_bitmap_free = qp_bitmap;
  1492	
  1493		nt->qp_vec = kcalloc_node(qp_count, sizeof(*nt->qp_vec),
  1494					  GFP_KERNEL, node);
  1495		if (!nt->qp_vec) {
  1496			rc = -ENOMEM;
  1497			goto err1;
  1498		}
  1499	
  1500		if (nt_debugfs_dir) {
  1501			nt->debugfs_node_dir =
  1502				debugfs_create_dir(pci_name(ndev->pdev),
  1503						   nt_debugfs_dir);
  1504		}
  1505	
  1506		for (i = 0; i < qp_count; i++) {
  1507			rc = ntb_transport_init_queue(nt, i);
  1508			if (rc)
  1509				goto err2;
  1510	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2025-12-01  4:39 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-29 16:03 [RFC PATCH v2 00/27] NTB transport backed by remote DW eDMA Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 01/27] PCI: endpoint: pci-epf-vntb: Use array_index_nospec() on mws_size[] access Koichiro Den
2025-12-01 18:59   ` Frank Li
2025-11-29 16:03 ` [RFC PATCH v2 02/27] PCI: endpoint: pci-epf-vntb: Add mwN_offset configfs attributes Koichiro Den
2025-12-01 19:11   ` Frank Li
2025-12-02  6:23     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 03/27] NTB: epf: Handle mwN_offset for inbound MW regions Koichiro Den
2025-12-01 19:14   ` Frank Li
2025-12-02  6:23     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 04/27] PCI: endpoint: Add inbound mapping ops to EPC core Koichiro Den
2025-12-01 19:19   ` Frank Li
2025-12-02  6:25     ` Koichiro Den
2025-12-02 15:58       ` Frank Li
2025-12-03 14:12         ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 05/27] PCI: dwc: ep: Implement EPC inbound mapping support Koichiro Den
2025-12-01 19:32   ` Frank Li
2025-12-02  6:26     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 06/27] PCI: endpoint: pci-epf-vntb: Use pci_epc_map_inbound() for MW mapping Koichiro Den
2025-12-01 19:34   ` Frank Li
2025-12-02  6:26     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 07/27] NTB: Add offset parameter to MW translation APIs Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 08/27] PCI: endpoint: pci-epf-vntb: Propagate MW offset from configfs when present Koichiro Den
2025-12-01 19:35   ` Frank Li
2025-11-29 16:03 ` [RFC PATCH v2 09/27] NTB: ntb_transport: Support offsetted partial memory windows Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 10/27] NTB: core: Add .get_pci_epc() to ntb_dev_ops Koichiro Den
2025-12-01 19:39   ` Frank Li
2025-12-02  6:31     ` Koichiro Den
2025-12-01 21:08   ` Dave Jiang
2025-12-02  6:32     ` Koichiro Den
2025-12-02 14:49       ` Dave Jiang
2025-12-03 15:02         ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 11/27] NTB: epf: vntb: Implement .get_pci_epc() callback Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 12/27] damengine: dw-edma: Fix MSI data values for multi-vector IMWr interrupts Koichiro Den
2025-12-01 19:46   ` Frank Li
2025-12-02  6:32     ` Koichiro Den
2025-12-18  6:52       ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 13/27] NTB: ntb_transport: Use seq_file for QP stats debugfs Koichiro Den
2025-12-01 19:50   ` Frank Li
2025-12-02  6:33     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 14/27] NTB: ntb_transport: Move TX memory window setup into setup_qp_mw() Koichiro Den
2025-12-01 20:02   ` Frank Li
2025-12-02  6:33     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 15/27] NTB: ntb_transport: Dynamically determine qp count Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 16/27] NTB: ntb_transport: Introduce get_dma_dev() helper Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 17/27] NTB: epf: Reserve a subset of MSI vectors for non-NTB users Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 18/27] NTB: ntb_transport: Introduce ntb_transport_backend_ops Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 19/27] PCI: dwc: ep: Cache MSI outbound iATU mapping Koichiro Den
2025-12-01 20:41   ` Frank Li
2025-12-02  6:35     ` Koichiro Den
2025-12-02  9:32       ` Niklas Cassel
2025-12-02 15:20         ` Frank Li
2025-12-03  8:40         ` Koichiro Den
2025-12-03 10:39           ` Niklas Cassel
2025-12-03 14:36             ` Koichiro Den
2025-12-03 14:40               ` Koichiro Den
2025-12-04 17:10             ` Frank Li
2025-12-05 16:28             ` Frank Li
2025-12-02  6:32   ` Niklas Cassel
2025-12-03  8:30     ` Koichiro Den
2025-12-03 10:19       ` Niklas Cassel
2025-12-03 14:56         ` Koichiro Den
2025-12-08  7:57   ` Niklas Cassel
2025-12-09  8:15     ` Niklas Cassel
2025-12-12  3:56       ` Koichiro Den
2025-12-22  5:10     ` Krishna Chaitanya Chundru
2025-12-22  7:50       ` Niklas Cassel
2025-12-22  8:14         ` Krishna Chaitanya Chundru
2025-12-22 10:21           ` Manivannan Sadhasivam
2025-12-12  3:38   ` Manivannan Sadhasivam
2025-12-18  8:28     ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 20/27] NTB: ntb_transport: Introduce remote eDMA backed transport mode Koichiro Den
2025-12-01  4:38   ` kernel test robot [this message]
2025-12-01  5:49   ` kernel test robot
2025-12-01 18:45   ` kernel test robot
2025-12-01 21:41   ` Frank Li
2025-12-02  6:43     ` Koichiro Den
2025-12-02 15:42       ` Frank Li
2025-12-03  8:53         ` Koichiro Den
2025-12-03 16:14           ` Frank Li
2025-12-04 15:42             ` Koichiro Den
2025-12-04 20:16               ` Frank Li
2025-12-05  3:04                 ` Koichiro Den
2025-12-05 15:06                   ` Frank Li
2025-12-18  4:34                     ` Koichiro Den
2025-12-01 21:46   ` Dave Jiang
2025-12-02  6:59     ` Koichiro Den
2025-12-02 14:53       ` Dave Jiang
2025-12-03 14:19         ` Koichiro Den
2025-11-29 16:03 ` [RFC PATCH v2 21/27] NTB: epf: Provide db_vector_count/db_vector_mask callbacks Koichiro Den
2025-11-29 16:04 ` [RFC PATCH v2 22/27] ntb_netdev: Multi-queue support Koichiro Den
2025-11-29 16:04 ` [RFC PATCH v2 23/27] NTB: epf: Add per-SoC quirk to cap MRRS for DWC eDMA (128B for R-Car) Koichiro Den
2025-12-01 20:47   ` Frank Li
2025-11-29 16:04 ` [RFC PATCH v2 24/27] iommu: ipmmu-vmsa: Add PCIe ch0 to devices_allowlist Koichiro Den
2025-11-29 16:04 ` [RFC PATCH v2 25/27] iommu: ipmmu-vmsa: Add support for reserved regions Koichiro Den
2025-11-29 16:04 ` [RFC PATCH v2 26/27] arm64: dts: renesas: Add Spider RC/EP DTs for NTB with remote DW PCIe eDMA Koichiro Den
2025-11-29 16:04 ` [RFC PATCH v2 27/27] NTB: epf: Add an additional memory window (MW2) barno mapping on Renesas R-Car Koichiro Den
2025-12-01 22:02 ` [RFC PATCH v2 00/27] NTB transport backed by remote DW eDMA Frank Li
2025-12-02  6:20   ` Koichiro Den
2025-12-02 16:07     ` Frank Li
2025-12-03  8:43       ` Koichiro Den
  -- strict thread matches above, loose matches on Subject: below --
2025-12-02 20:43 [RFC PATCH v2 20/27] NTB: ntb_transport: Introduce remote eDMA backed transport mode kernel test robot

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=202512011208.AnoqH1AC-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=den@valinux.co.jp \
    --cc=oe-kbuild-all@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.