All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/infiniband/hw/bnxt_re/qplib_fp.c:511 bnxt_qplib_nq_start_irq() warn: 'msix_vector' from request_irq() not released on lines: 511.
@ 2025-12-09 17:23 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-09 17:23 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Suren Baghdasaryan <surenb@google.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   cb015814f8b6eebcbb8e46e111d108892c5e6821
commit: 07438779313caafe52ac1a1a6958d735a5938988 alloc_tag: avoid current->alloc_tag manipulations when profiling is disabled
date:   11 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 11 months ago
config: x86_64-randconfig-r073-20251208 (https://download.01.org/0day-ci/archive/20251210/202512100117.ElbRVePI-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.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/202512100117.ElbRVePI-lkp@intel.com/

smatch warnings:
drivers/infiniband/hw/bnxt_re/qplib_fp.c:511 bnxt_qplib_nq_start_irq() warn: 'msix_vector' from request_irq() not released on lines: 511.
drivers/infiniband/hw/bnxt_re/qplib_fp.c:699 bnxt_qplib_create_srq() warn: potentially one past the end of array 'srq->swq[srq->last_idx]'
drivers/infiniband/hw/bnxt_re/qplib_fp.c:699 bnxt_qplib_create_srq() warn: potentially one past the end of array 'srq->swq[srq->last_idx]'
drivers/infiniband/hw/bnxt_re/qplib_fp.c:838 bnxt_qplib_alloc_init_swq() warn: potentially one past the end of array 'que->swq[que->swq_last]'
drivers/infiniband/hw/bnxt_re/qplib_fp.c:838 bnxt_qplib_alloc_init_swq() warn: potentially one past the end of array 'que->swq[que->swq_last]'

vim +/msix_vector +511 drivers/infiniband/hw/bnxt_re/qplib_fp.c

1ac5a404797523 Selvin Xavier      2017-02-10  472  
6e04b103568983 Devesh Sharma      2018-05-25  473  int bnxt_qplib_nq_start_irq(struct bnxt_qplib_nq *nq, int nq_indx,
6e04b103568983 Devesh Sharma      2018-05-25  474  			    int msix_vector, bool need_init)
6e04b103568983 Devesh Sharma      2018-05-25  475  {
ff2e4bfd162cf6 Kalesh AP          2023-05-18  476  	struct bnxt_qplib_res *res = nq->res;
6e04b103568983 Devesh Sharma      2018-05-25  477  	int rc;
6e04b103568983 Devesh Sharma      2018-05-25  478  
6e04b103568983 Devesh Sharma      2018-05-25  479  	if (nq->requested)
6e04b103568983 Devesh Sharma      2018-05-25  480  		return -EFAULT;
6e04b103568983 Devesh Sharma      2018-05-25  481  
9555352bacfdfc Devesh Sharma      2020-02-15  482  	nq->msix_vec = msix_vector;
6e04b103568983 Devesh Sharma      2018-05-25  483  	if (need_init)
53c2a706ae7858 Allen Pais         2020-09-03  484  		tasklet_setup(&nq->nq_tasklet, bnxt_qplib_service_nq);
6e04b103568983 Devesh Sharma      2018-05-25  485  	else
9555352bacfdfc Devesh Sharma      2020-02-15  486  		tasklet_enable(&nq->nq_tasklet);
6e04b103568983 Devesh Sharma      2018-05-25  487  
ff2e4bfd162cf6 Kalesh AP          2023-05-18  488  	nq->name = kasprintf(GFP_KERNEL, "bnxt_re-nq-%d@pci:%s",
ff2e4bfd162cf6 Kalesh AP          2023-05-18  489  			     nq_indx, pci_name(res->pdev));
ff2e4bfd162cf6 Kalesh AP          2023-05-18  490  	if (!nq->name)
ff2e4bfd162cf6 Kalesh AP          2023-05-18  491  		return -ENOMEM;
9555352bacfdfc Devesh Sharma      2020-02-15  492  	rc = request_irq(nq->msix_vec, bnxt_qplib_nq_irq, 0, nq->name, nq);
ab112ee7899d61 Selvin Xavier      2023-05-18  493  	if (rc) {
ff2e4bfd162cf6 Kalesh AP          2023-05-18  494  		kfree(nq->name);
ff2e4bfd162cf6 Kalesh AP          2023-05-18  495  		nq->name = NULL;
ab112ee7899d61 Selvin Xavier      2023-05-18  496  		tasklet_disable(&nq->nq_tasklet);
6e04b103568983 Devesh Sharma      2018-05-25  497  		return rc;
ab112ee7899d61 Selvin Xavier      2023-05-18  498  	}
6e04b103568983 Devesh Sharma      2018-05-25  499  
6e04b103568983 Devesh Sharma      2018-05-25  500  	cpumask_clear(&nq->mask);
6e04b103568983 Devesh Sharma      2018-05-25  501  	cpumask_set_cpu(nq_indx, &nq->mask);
9555352bacfdfc Devesh Sharma      2020-02-15  502  	rc = irq_set_affinity_hint(nq->msix_vec, &nq->mask);
6e04b103568983 Devesh Sharma      2018-05-25  503  	if (rc) {
6e04b103568983 Devesh Sharma      2018-05-25  504  		dev_warn(&nq->pdev->dev,
08920b8f5d2d3b Joe Perches        2018-08-10  505  			 "set affinity failed; vector: %d nq_idx: %d\n",
9555352bacfdfc Devesh Sharma      2020-02-15  506  			 nq->msix_vec, nq_indx);
6e04b103568983 Devesh Sharma      2018-05-25  507  	}
6e04b103568983 Devesh Sharma      2018-05-25  508  	nq->requested = true;
ff2e4bfd162cf6 Kalesh AP          2023-05-18  509  	bnxt_qplib_ring_nq_db(&nq->nq_db.dbinfo, res->cctx, true);
6e04b103568983 Devesh Sharma      2018-05-25  510  
6e04b103568983 Devesh Sharma      2018-05-25 @511  	return rc;
6e04b103568983 Devesh Sharma      2018-05-25  512  }
6e04b103568983 Devesh Sharma      2018-05-25  513  
9555352bacfdfc Devesh Sharma      2020-02-15  514  static int bnxt_qplib_map_nq_db(struct bnxt_qplib_nq *nq,  u32 reg_offt)
9555352bacfdfc Devesh Sharma      2020-02-15  515  {
9555352bacfdfc Devesh Sharma      2020-02-15  516  	resource_size_t reg_base;
9555352bacfdfc Devesh Sharma      2020-02-15  517  	struct bnxt_qplib_nq_db *nq_db;
9555352bacfdfc Devesh Sharma      2020-02-15  518  	struct pci_dev *pdev;
9555352bacfdfc Devesh Sharma      2020-02-15  519  
9555352bacfdfc Devesh Sharma      2020-02-15  520  	pdev = nq->pdev;
9555352bacfdfc Devesh Sharma      2020-02-15  521  	nq_db = &nq->nq_db;
9555352bacfdfc Devesh Sharma      2020-02-15  522  
3a4304d8269501 Chandramohan Akula 2023-10-23  523  	nq_db->dbinfo.flags = 0;
9555352bacfdfc Devesh Sharma      2020-02-15  524  	nq_db->reg.bar_id = NQ_CONS_PCI_BAR_REGION;
9555352bacfdfc Devesh Sharma      2020-02-15  525  	nq_db->reg.bar_base = pci_resource_start(pdev, nq_db->reg.bar_id);
9555352bacfdfc Devesh Sharma      2020-02-15  526  	if (!nq_db->reg.bar_base) {
9555352bacfdfc Devesh Sharma      2020-02-15  527  		dev_err(&pdev->dev, "QPLIB: NQ BAR region %d resc start is 0!",
9555352bacfdfc Devesh Sharma      2020-02-15  528  			nq_db->reg.bar_id);
07d5ce14b2aa22 Kalesh AP          2023-05-18  529  		return -ENOMEM;
9555352bacfdfc Devesh Sharma      2020-02-15  530  	}
9555352bacfdfc Devesh Sharma      2020-02-15  531  
9555352bacfdfc Devesh Sharma      2020-02-15  532  	reg_base = nq_db->reg.bar_base + reg_offt;
9555352bacfdfc Devesh Sharma      2020-02-15  533  	/* Unconditionally map 8 bytes to support 57500 series */
9555352bacfdfc Devesh Sharma      2020-02-15  534  	nq_db->reg.len = 8;
9555352bacfdfc Devesh Sharma      2020-02-15  535  	nq_db->reg.bar_reg = ioremap(reg_base, nq_db->reg.len);
9555352bacfdfc Devesh Sharma      2020-02-15  536  	if (!nq_db->reg.bar_reg) {
9555352bacfdfc Devesh Sharma      2020-02-15  537  		dev_err(&pdev->dev, "QPLIB: NQ BAR region %d mapping failed",
9555352bacfdfc Devesh Sharma      2020-02-15  538  			nq_db->reg.bar_id);
07d5ce14b2aa22 Kalesh AP          2023-05-18  539  		return -ENOMEM;
9555352bacfdfc Devesh Sharma      2020-02-15  540  	}
9555352bacfdfc Devesh Sharma      2020-02-15  541  
6f53196bc5e7fd Devesh Sharma      2020-02-15  542  	nq_db->dbinfo.db = nq_db->reg.bar_reg;
6f53196bc5e7fd Devesh Sharma      2020-02-15  543  	nq_db->dbinfo.hwq = &nq->hwq;
6f53196bc5e7fd Devesh Sharma      2020-02-15  544  	nq_db->dbinfo.xid = nq->ring_id;
07d5ce14b2aa22 Kalesh AP          2023-05-18  545  
07d5ce14b2aa22 Kalesh AP          2023-05-18  546  	return 0;
9555352bacfdfc Devesh Sharma      2020-02-15  547  }
9555352bacfdfc Devesh Sharma      2020-02-15  548  
1ac5a404797523 Selvin Xavier      2017-02-10  549  int bnxt_qplib_enable_nq(struct pci_dev *pdev, struct bnxt_qplib_nq *nq,
6a5df91baf2528 Selvin Xavier      2017-08-02  550  			 int nq_idx, int msix_vector, int bar_reg_offset,
9555352bacfdfc Devesh Sharma      2020-02-15  551  			 cqn_handler_t cqn_handler,
9555352bacfdfc Devesh Sharma      2020-02-15  552  			 srqn_handler_t srqn_handler)
1ac5a404797523 Selvin Xavier      2017-02-10  553  {
14611b9b984125 Kalesh AP          2023-08-03  554  	int rc;
1ac5a404797523 Selvin Xavier      2017-02-10  555  
9555352bacfdfc Devesh Sharma      2020-02-15  556  	nq->pdev = pdev;
1ac5a404797523 Selvin Xavier      2017-02-10  557  	nq->cqn_handler = cqn_handler;
1ac5a404797523 Selvin Xavier      2017-02-10  558  	nq->srqn_handler = srqn_handler;
cb97b377a13589 Kalesh AP          2024-11-14  559  	nq->load = 0;
1ac5a404797523 Selvin Xavier      2017-02-10  560  
f218d67ef00431 Selvin Xavier      2017-06-29  561  	/* Have a task to schedule CQ notifiers in post send case */
f218d67ef00431 Selvin Xavier      2017-06-29  562  	nq->cqn_wq  = create_singlethread_workqueue("bnxt_qplib_nq");
f218d67ef00431 Selvin Xavier      2017-06-29  563  	if (!nq->cqn_wq)
6e04b103568983 Devesh Sharma      2018-05-25  564  		return -ENOMEM;
f218d67ef00431 Selvin Xavier      2017-06-29  565  
9555352bacfdfc Devesh Sharma      2020-02-15  566  	rc = bnxt_qplib_map_nq_db(nq, bar_reg_offset);
9555352bacfdfc Devesh Sharma      2020-02-15  567  	if (rc)
1ac5a404797523 Selvin Xavier      2017-02-10  568  		goto fail;
6e04b103568983 Devesh Sharma      2018-05-25  569  
6e04b103568983 Devesh Sharma      2018-05-25  570  	rc = bnxt_qplib_nq_start_irq(nq, nq_idx, msix_vector, true);
6e04b103568983 Devesh Sharma      2018-05-25  571  	if (rc) {
6e04b103568983 Devesh Sharma      2018-05-25  572  		dev_err(&nq->pdev->dev,
08920b8f5d2d3b Joe Perches        2018-08-10  573  			"Failed to request irq for nq-idx %d\n", nq_idx);
6e04b103568983 Devesh Sharma      2018-05-25  574  		goto fail;
6e04b103568983 Devesh Sharma      2018-05-25  575  	}
1ac5a404797523 Selvin Xavier      2017-02-10  576  
1ac5a404797523 Selvin Xavier      2017-02-10  577  	return 0;
1ac5a404797523 Selvin Xavier      2017-02-10  578  fail:
1ac5a404797523 Selvin Xavier      2017-02-10  579  	bnxt_qplib_disable_nq(nq);
1ac5a404797523 Selvin Xavier      2017-02-10  580  	return rc;
1ac5a404797523 Selvin Xavier      2017-02-10  581  }
1ac5a404797523 Selvin Xavier      2017-02-10  582  
1ac5a404797523 Selvin Xavier      2017-02-10  583  void bnxt_qplib_free_nq(struct bnxt_qplib_nq *nq)
1ac5a404797523 Selvin Xavier      2017-02-10  584  {
6a5df91baf2528 Selvin Xavier      2017-08-02  585  	if (nq->hwq.max_elements) {
0c4dcd60281750 Devesh Sharma      2020-02-15  586  		bnxt_qplib_free_hwq(nq->res, &nq->hwq);
6a5df91baf2528 Selvin Xavier      2017-08-02  587  		nq->hwq.max_elements = 0;
6a5df91baf2528 Selvin Xavier      2017-08-02  588  	}
1ac5a404797523 Selvin Xavier      2017-02-10  589  }
1ac5a404797523 Selvin Xavier      2017-02-10  590  
0c4dcd60281750 Devesh Sharma      2020-02-15  591  int bnxt_qplib_alloc_nq(struct bnxt_qplib_res *res, struct bnxt_qplib_nq *nq)
1ac5a404797523 Selvin Xavier      2017-02-10  592  {
0c4dcd60281750 Devesh Sharma      2020-02-15  593  	struct bnxt_qplib_hwq_attr hwq_attr = {};
0c4dcd60281750 Devesh Sharma      2020-02-15  594  	struct bnxt_qplib_sg_info sginfo = {};
b353ce556d5213 Devesh Sharma      2019-02-07  595  
0c4dcd60281750 Devesh Sharma      2020-02-15  596  	nq->pdev = res->pdev;
0c4dcd60281750 Devesh Sharma      2020-02-15  597  	nq->res = res;
1ac5a404797523 Selvin Xavier      2017-02-10  598  	if (!nq->hwq.max_elements ||
1ac5a404797523 Selvin Xavier      2017-02-10  599  	    nq->hwq.max_elements > BNXT_QPLIB_NQE_MAX_CNT)
1ac5a404797523 Selvin Xavier      2017-02-10  600  		nq->hwq.max_elements = BNXT_QPLIB_NQE_MAX_CNT;
1ac5a404797523 Selvin Xavier      2017-02-10  601  
0c4dcd60281750 Devesh Sharma      2020-02-15  602  	sginfo.pgsize = PAGE_SIZE;
0c4dcd60281750 Devesh Sharma      2020-02-15  603  	sginfo.pgshft = PAGE_SHIFT;
0c4dcd60281750 Devesh Sharma      2020-02-15  604  	hwq_attr.res = res;
0c4dcd60281750 Devesh Sharma      2020-02-15  605  	hwq_attr.sginfo = &sginfo;
0c4dcd60281750 Devesh Sharma      2020-02-15  606  	hwq_attr.depth = nq->hwq.max_elements;
0c4dcd60281750 Devesh Sharma      2020-02-15  607  	hwq_attr.stride = sizeof(struct nq_base);
0c4dcd60281750 Devesh Sharma      2020-02-15  608  	hwq_attr.type = bnxt_qplib_get_hwq_type(nq->res);
0c4dcd60281750 Devesh Sharma      2020-02-15  609  	if (bnxt_qplib_alloc_init_hwq(&nq->hwq, &hwq_attr)) {
0c4dcd60281750 Devesh Sharma      2020-02-15  610  		dev_err(&nq->pdev->dev, "FP NQ allocation failed");
0c4dcd60281750 Devesh Sharma      2020-02-15  611  		return -ENOMEM;
0c4dcd60281750 Devesh Sharma      2020-02-15  612  	}
1ac5a404797523 Selvin Xavier      2017-02-10  613  	nq->budget = 8;
1ac5a404797523 Selvin Xavier      2017-02-10  614  	return 0;
1ac5a404797523 Selvin Xavier      2017-02-10  615  }
1ac5a404797523 Selvin Xavier      2017-02-10  616  
37cb11acf1f72a Devesh Sharma      2018-01-11  617  /* SRQ */
68e326dea1dba9 Leon Romanovsky    2019-04-03  618  void bnxt_qplib_destroy_srq(struct bnxt_qplib_res *res,
37cb11acf1f72a Devesh Sharma      2018-01-11  619  			   struct bnxt_qplib_srq *srq)
37cb11acf1f72a Devesh Sharma      2018-01-11  620  {
37cb11acf1f72a Devesh Sharma      2018-01-11  621  	struct bnxt_qplib_rcfw *rcfw = res->rcfw;
ff015bcd213b5d Selvin Xavier      2023-03-30  622  	struct creq_destroy_srq_resp resp = {};
ff015bcd213b5d Selvin Xavier      2023-03-30  623  	struct bnxt_qplib_cmdqmsg msg = {};
ff015bcd213b5d Selvin Xavier      2023-03-30  624  	struct cmdq_destroy_srq req = {};
37cb11acf1f72a Devesh Sharma      2018-01-11  625  	int rc;
37cb11acf1f72a Devesh Sharma      2018-01-11  626  
e576adf583b525 Selvin Xavier      2023-03-30  627  	bnxt_qplib_rcfw_cmd_prep((struct cmdq_base *)&req,
e576adf583b525 Selvin Xavier      2023-03-30  628  				 CMDQ_BASE_OPCODE_DESTROY_SRQ,
e576adf583b525 Selvin Xavier      2023-03-30  629  				 sizeof(req));
37cb11acf1f72a Devesh Sharma      2018-01-11  630  
37cb11acf1f72a Devesh Sharma      2018-01-11  631  	/* Configure the request */
37cb11acf1f72a Devesh Sharma      2018-01-11  632  	req.srq_cid = cpu_to_le32(srq->id);
37cb11acf1f72a Devesh Sharma      2018-01-11  633  
ff015bcd213b5d Selvin Xavier      2023-03-30  634  	bnxt_qplib_fill_cmdqmsg(&msg, &req, &resp, NULL, sizeof(req), sizeof(resp), 0);
ff015bcd213b5d Selvin Xavier      2023-03-30  635  	rc = bnxt_qplib_rcfw_send_message(rcfw, &msg);
68e326dea1dba9 Leon Romanovsky    2019-04-03  636  	kfree(srq->swq);
37cb11acf1f72a Devesh Sharma      2018-01-11  637  	if (rc)
68e326dea1dba9 Leon Romanovsky    2019-04-03  638  		return;
0c4dcd60281750 Devesh Sharma      2020-02-15  639  	bnxt_qplib_free_hwq(res, &srq->hwq);
37cb11acf1f72a Devesh Sharma      2018-01-11  640  }
37cb11acf1f72a Devesh Sharma      2018-01-11  641  
37cb11acf1f72a Devesh Sharma      2018-01-11  642  int bnxt_qplib_create_srq(struct bnxt_qplib_res *res,
37cb11acf1f72a Devesh Sharma      2018-01-11  643  			  struct bnxt_qplib_srq *srq)
37cb11acf1f72a Devesh Sharma      2018-01-11  644  {
37cb11acf1f72a Devesh Sharma      2018-01-11  645  	struct bnxt_qplib_rcfw *rcfw = res->rcfw;
0c4dcd60281750 Devesh Sharma      2020-02-15  646  	struct bnxt_qplib_hwq_attr hwq_attr = {};
ff015bcd213b5d Selvin Xavier      2023-03-30  647  	struct creq_create_srq_resp resp = {};
ff015bcd213b5d Selvin Xavier      2023-03-30  648  	struct bnxt_qplib_cmdqmsg msg = {};
ff015bcd213b5d Selvin Xavier      2023-03-30  649  	struct cmdq_create_srq req = {};
37cb11acf1f72a Devesh Sharma      2018-01-11  650  	struct bnxt_qplib_pbl *pbl;
99bf84e24eb83d Devesh Sharma      2020-04-02  651  	u16 pg_sz_lvl;
37cb11acf1f72a Devesh Sharma      2018-01-11  652  	int rc, idx;
37cb11acf1f72a Devesh Sharma      2018-01-11  653  
0c4dcd60281750 Devesh Sharma      2020-02-15  654  	hwq_attr.res = res;
0c4dcd60281750 Devesh Sharma      2020-02-15  655  	hwq_attr.sginfo = &srq->sg_info;
0c4dcd60281750 Devesh Sharma      2020-02-15  656  	hwq_attr.depth = srq->max_wqe;
fddcbbb02af42a Devesh Sharma      2020-04-02  657  	hwq_attr.stride = srq->wqe_size;
0c4dcd60281750 Devesh Sharma      2020-02-15  658  	hwq_attr.type = HWQ_TYPE_QUEUE;
0c4dcd60281750 Devesh Sharma      2020-02-15  659  	rc = bnxt_qplib_alloc_init_hwq(&srq->hwq, &hwq_attr);
37cb11acf1f72a Devesh Sharma      2018-01-11  660  	if (rc)
07d5ce14b2aa22 Kalesh AP          2023-05-18  661  		return rc;
3a4304d8269501 Chandramohan Akula 2023-10-23  662  	srq->dbinfo.flags = 0;
e576adf583b525 Selvin Xavier      2023-03-30  663  	bnxt_qplib_rcfw_cmd_prep((struct cmdq_base *)&req,
e576adf583b525 Selvin Xavier      2023-03-30  664  				 CMDQ_BASE_OPCODE_CREATE_SRQ,
e576adf583b525 Selvin Xavier      2023-03-30  665  				 sizeof(req));
37cb11acf1f72a Devesh Sharma      2018-01-11  666  
37cb11acf1f72a Devesh Sharma      2018-01-11  667  	/* Configure the request */
37cb11acf1f72a Devesh Sharma      2018-01-11  668  	req.dpi = cpu_to_le32(srq->dpi->dpi);
5388a508479d8b Arnd Bergmann      2018-02-20  669  	req.srq_handle = cpu_to_le64((uintptr_t)srq);
37cb11acf1f72a Devesh Sharma      2018-01-11  670  
37cb11acf1f72a Devesh Sharma      2018-01-11  671  	req.srq_size = cpu_to_le16((u16)srq->hwq.max_elements);
37cb11acf1f72a Devesh Sharma      2018-01-11  672  	pbl = &srq->hwq.pbl[PBL_LVL_0];
99bf84e24eb83d Devesh Sharma      2020-04-02  673  	pg_sz_lvl = ((u16)bnxt_qplib_base_pg_size(&srq->hwq) <<
99bf84e24eb83d Devesh Sharma      2020-04-02  674  		     CMDQ_CREATE_SRQ_PG_SIZE_SFT);
99bf84e24eb83d Devesh Sharma      2020-04-02  675  	pg_sz_lvl |= (srq->hwq.level & CMDQ_CREATE_SRQ_LVL_MASK) <<
99bf84e24eb83d Devesh Sharma      2020-04-02  676  		      CMDQ_CREATE_SRQ_LVL_SFT;
99bf84e24eb83d Devesh Sharma      2020-04-02  677  	req.pg_size_lvl = cpu_to_le16(pg_sz_lvl);
37cb11acf1f72a Devesh Sharma      2018-01-11  678  	req.pbl = cpu_to_le64(pbl->pg_map_arr[0]);
37cb11acf1f72a Devesh Sharma      2018-01-11  679  	req.pd_id = cpu_to_le32(srq->pd->id);
37cb11acf1f72a Devesh Sharma      2018-01-11  680  	req.eventq_id = cpu_to_le16(srq->eventq_hw_ring_id);
37cb11acf1f72a Devesh Sharma      2018-01-11  681  
ff015bcd213b5d Selvin Xavier      2023-03-30  682  	bnxt_qplib_fill_cmdqmsg(&msg, &req, &resp, NULL, sizeof(req), sizeof(resp), 0);
ff015bcd213b5d Selvin Xavier      2023-03-30  683  	rc = bnxt_qplib_rcfw_send_message(rcfw, &msg);
37cb11acf1f72a Devesh Sharma      2018-01-11  684  	if (rc)
37cb11acf1f72a Devesh Sharma      2018-01-11  685  		goto fail;
37cb11acf1f72a Devesh Sharma      2018-01-11  686  
37cb11acf1f72a Devesh Sharma      2018-01-11  687  	spin_lock_init(&srq->lock);
37cb11acf1f72a Devesh Sharma      2018-01-11  688  	srq->start_idx = 0;
37cb11acf1f72a Devesh Sharma      2018-01-11  689  	srq->last_idx = srq->hwq.max_elements - 1;
5effcacc8a8f3e Selvin Xavier      2024-12-04  690  	if (!srq->hwq.is_user) {
5effcacc8a8f3e Selvin Xavier      2024-12-04  691  		srq->swq = kcalloc(srq->hwq.max_elements, sizeof(*srq->swq),
5effcacc8a8f3e Selvin Xavier      2024-12-04  692  				   GFP_KERNEL);
5effcacc8a8f3e Selvin Xavier      2024-12-04  693  		if (!srq->swq) {
5effcacc8a8f3e Selvin Xavier      2024-12-04  694  			rc = -ENOMEM;
5effcacc8a8f3e Selvin Xavier      2024-12-04  695  			goto fail;
5effcacc8a8f3e Selvin Xavier      2024-12-04  696  		}
37cb11acf1f72a Devesh Sharma      2018-01-11  697  		for (idx = 0; idx < srq->hwq.max_elements; idx++)
37cb11acf1f72a Devesh Sharma      2018-01-11  698  			srq->swq[idx].next_idx = idx + 1;
37cb11acf1f72a Devesh Sharma      2018-01-11 @699  		srq->swq[srq->last_idx].next_idx = -1;
5effcacc8a8f3e Selvin Xavier      2024-12-04  700  	}
37cb11acf1f72a Devesh Sharma      2018-01-11  701  
37cb11acf1f72a Devesh Sharma      2018-01-11  702  	srq->id = le32_to_cpu(resp.xid);
6f53196bc5e7fd Devesh Sharma      2020-02-15  703  	srq->dbinfo.hwq = &srq->hwq;
6f53196bc5e7fd Devesh Sharma      2020-02-15  704  	srq->dbinfo.xid = srq->id;
6f53196bc5e7fd Devesh Sharma      2020-02-15  705  	srq->dbinfo.db = srq->dpi->dbr;
2bb3c32c5c5fe9 Devesh Sharma      2020-07-15  706  	srq->dbinfo.max_slot = 1;
0ac20faf5d837b Selvin Xavier      2023-06-13  707  	srq->dbinfo.priv_db = res->dpi_tbl.priv_db;
37cb11acf1f72a Devesh Sharma      2018-01-11  708  	if (srq->threshold)
6f53196bc5e7fd Devesh Sharma      2020-02-15  709  		bnxt_qplib_armen_db(&srq->dbinfo, DBC_DBC_TYPE_SRQ_ARMENA);
37cb11acf1f72a Devesh Sharma      2018-01-11  710  	srq->arm_req = false;
37cb11acf1f72a Devesh Sharma      2018-01-11  711  
37cb11acf1f72a Devesh Sharma      2018-01-11  712  	return 0;
37cb11acf1f72a Devesh Sharma      2018-01-11  713  fail:
0c4dcd60281750 Devesh Sharma      2020-02-15  714  	bnxt_qplib_free_hwq(res, &srq->hwq);
37cb11acf1f72a Devesh Sharma      2018-01-11  715  	kfree(srq->swq);
07d5ce14b2aa22 Kalesh AP          2023-05-18  716  
37cb11acf1f72a Devesh Sharma      2018-01-11  717  	return rc;
37cb11acf1f72a Devesh Sharma      2018-01-11  718  }
37cb11acf1f72a Devesh Sharma      2018-01-11  719  

:::::: The code at line 511 was first introduced by commit
:::::: 6e04b103568983bd699fac96b80a9b96ede68118 RDMA/bnxt_re: Fix broken RoCE driver due to recent L2 driver changes

:::::: TO: Devesh Sharma <devesh.sharma@broadcom.com>
:::::: CC: Jason Gunthorpe <jgg@mellanox.com>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-09 17:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-09 17:23 drivers/infiniband/hw/bnxt_re/qplib_fp.c:511 bnxt_qplib_nq_start_irq() warn: 'msix_vector' from request_irq() not released on lines: 511 kernel test robot

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.