public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] firmware: ti_sci: simplify resource allocation
@ 2026-04-30 22:11 Rosen Penev
  2026-05-03 15:17 ` kernel test robot
  2026-05-03 15:42 ` kernel test robot
  0 siblings, 2 replies; 3+ messages in thread
From: Rosen Penev @ 2026-04-30 22:11 UTC (permalink / raw)
  To: linux-kernel
  Cc: Nishanth Menon, Tero Kristo, Santosh Shilimkar, Kees Cook,
	Gustavo A. R. Silva,
	linux-arm-kernel@lists.infradead.org (moderated list:TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TI...), linux-hardening@vger.kernel.org (open list:KERNEL HARDENING (not covered by other areas):Keyword:\b__counted_by(_le|_be)?\b)

Use a flexible array member to combine allocations.

Add __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 drivers/firmware/ti_sci.c              | 7 +------
 include/linux/soc/ti/ti_sci_protocol.h | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
index e027a2bd8f26..04d99c1fafa1 100644
--- a/drivers/firmware/ti_sci.c
+++ b/drivers/firmware/ti_sci.c
@@ -3574,16 +3574,11 @@ devm_ti_sci_get_resource_sets(const struct ti_sci_handle *handle,
 	bool valid_set = false;
 	int i, ret, res_count;
 
-	res = devm_kzalloc(dev, sizeof(*res), GFP_KERNEL);
+	res = devm_kzalloc(dev, struct_size(res, desc, sets), GFP_KERNEL);
 	if (!res)
 		return ERR_PTR(-ENOMEM);
 
 	res->sets = sets;
-	res->desc = devm_kcalloc(dev, res->sets, sizeof(*res->desc),
-				 GFP_KERNEL);
-	if (!res->desc)
-		return ERR_PTR(-ENOMEM);
-
 	for (i = 0; i < res->sets; i++) {
 		ret = handle->ops.rm_core_ops.get_range(handle, dev_id,
 							sub_types[i],
diff --git a/include/linux/soc/ti/ti_sci_protocol.h b/include/linux/soc/ti/ti_sci_protocol.h
index fd104b666836..7632bb11c862 100644
--- a/include/linux/soc/ti/ti_sci_protocol.h
+++ b/include/linux/soc/ti/ti_sci_protocol.h
@@ -599,7 +599,7 @@ struct ti_sci_handle {
 struct ti_sci_resource {
 	u16 sets;
 	raw_spinlock_t lock;
-	struct ti_sci_resource_desc *desc;
+	struct ti_sci_resource_desc desc[] __counted_by(sets);
 };
 
 #if IS_ENABLED(CONFIG_TI_SCI_PROTOCOL)
-- 
2.54.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] firmware: ti_sci: simplify resource allocation
  2026-04-30 22:11 [PATCH] firmware: ti_sci: simplify resource allocation Rosen Penev
@ 2026-05-03 15:17 ` kernel test robot
  2026-05-03 15:42 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-05-03 15:17 UTC (permalink / raw)
  To: Rosen Penev, linux-kernel; +Cc: llvm, oe-kbuild-all

Hi Rosen,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v7.1-rc1 next-20260430]
[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/Rosen-Penev/firmware-ti_sci-simplify-resource-allocation/20260502-175729
base:   linus/master
patch link:    https://lore.kernel.org/r/20260430221123.79947-1-rosenp%40gmail.com
patch subject: [PATCH] firmware: ti_sci: simplify resource allocation
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20260503/202605032340.fMCE9leQ-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260503/202605032340.fMCE9leQ-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/202605032340.fMCE9leQ-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> drivers/dma/ti/k3-udma.c:4689:15: error: array type 'struct ti_sci_resource_desc[]' is not assignable
    4689 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |         ~~~~~~~~~~~~ ^
>> drivers/dma/ti/k3-udma.c:4690:15: warning: address of array 'irq_res.desc' will always evaluate to 'true' [-Wpointer-bool-conversion]
    4690 |         if (!irq_res.desc)
         |             ~~~~~~~~~^~~~
   drivers/dma/ti/k3-udma.c:4881:15: error: array type 'struct ti_sci_resource_desc[]' is not assignable
    4881 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |         ~~~~~~~~~~~~ ^
   drivers/dma/ti/k3-udma.c:4882:15: warning: address of array 'irq_res.desc' will always evaluate to 'true' [-Wpointer-bool-conversion]
    4882 |         if (!irq_res.desc)
         |             ~~~~~~~~~^~~~
   drivers/dma/ti/k3-udma.c:5083:15: error: array type 'struct ti_sci_resource_desc[]' is not assignable
    5083 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |         ~~~~~~~~~~~~ ^
   drivers/dma/ti/k3-udma.c:5084:15: warning: address of array 'irq_res.desc' will always evaluate to 'true' [-Wpointer-bool-conversion]
    5084 |         if (!irq_res.desc)
         |             ~~~~~~~~~^~~~
   3 warnings and 3 errors generated.


vim +4689 drivers/dma/ti/k3-udma.c

017794739702d4 Peter Ujfalusi      2020-12-08  4582  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4583  static int udma_setup_resources(struct udma_dev *ud)
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4584  {
017794739702d4 Peter Ujfalusi      2020-12-08  4585  	int ret, i, j;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4586  	struct device *dev = ud->dev;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4587  	struct ti_sci_resource *rm_res, irq_res;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4588  	struct udma_tisci_rm *tisci_rm = &ud->tisci_rm;
017794739702d4 Peter Ujfalusi      2020-12-08  4589  	u32 cap3;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4590  
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4591  	/* Set up the throughput level start indexes */
017794739702d4 Peter Ujfalusi      2020-12-08  4592  	cap3 = udma_read(ud->mmrs[MMR_GCFG], 0x2c);
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4593  	if (of_device_is_compatible(dev->of_node,
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4594  				    "ti,am654-navss-main-udmap")) {
8844898028d412 Peter Ujfalusi      2020-12-08  4595  		ud->tchan_tpl.levels = 2;
8844898028d412 Peter Ujfalusi      2020-12-08  4596  		ud->tchan_tpl.start_idx[0] = 8;
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4597  	} else if (of_device_is_compatible(dev->of_node,
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4598  					   "ti,am654-navss-mcu-udmap")) {
8844898028d412 Peter Ujfalusi      2020-12-08  4599  		ud->tchan_tpl.levels = 2;
8844898028d412 Peter Ujfalusi      2020-12-08  4600  		ud->tchan_tpl.start_idx[0] = 2;
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4601  	} else if (UDMA_CAP3_UCHAN_CNT(cap3)) {
8844898028d412 Peter Ujfalusi      2020-12-08  4602  		ud->tchan_tpl.levels = 3;
8844898028d412 Peter Ujfalusi      2020-12-08  4603  		ud->tchan_tpl.start_idx[1] = UDMA_CAP3_UCHAN_CNT(cap3);
8844898028d412 Peter Ujfalusi      2020-12-08  4604  		ud->tchan_tpl.start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4605  	} else if (UDMA_CAP3_HCHAN_CNT(cap3)) {
8844898028d412 Peter Ujfalusi      2020-12-08  4606  		ud->tchan_tpl.levels = 2;
8844898028d412 Peter Ujfalusi      2020-12-08  4607  		ud->tchan_tpl.start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4608  	} else {
8844898028d412 Peter Ujfalusi      2020-12-08  4609  		ud->tchan_tpl.levels = 1;
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4610  	}
daf4ad0499aa4f Peter Ujfalusi      2020-07-17  4611  
8844898028d412 Peter Ujfalusi      2020-12-08  4612  	ud->rchan_tpl.levels = ud->tchan_tpl.levels;
8844898028d412 Peter Ujfalusi      2020-12-08  4613  	ud->rchan_tpl.start_idx[0] = ud->tchan_tpl.start_idx[0];
8844898028d412 Peter Ujfalusi      2020-12-08  4614  	ud->rchan_tpl.start_idx[1] = ud->tchan_tpl.start_idx[1];
8844898028d412 Peter Ujfalusi      2020-12-08  4615  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4616  	ud->tchan_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->tchan_cnt),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4617  					   sizeof(unsigned long), GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4618  	ud->tchans = devm_kcalloc(dev, ud->tchan_cnt, sizeof(*ud->tchans),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4619  				  GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4620  	ud->rchan_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->rchan_cnt),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4621  					   sizeof(unsigned long), GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4622  	ud->rchans = devm_kcalloc(dev, ud->rchan_cnt, sizeof(*ud->rchans),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4623  				  GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4624  	ud->rflow_gp_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4625  					      sizeof(unsigned long),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4626  					      GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4627  	ud->rflow_gp_map_allocated = devm_kcalloc(dev,
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4628  						  BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4629  						  sizeof(unsigned long),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4630  						  GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4631  	ud->rflow_in_use = devm_kcalloc(dev, BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4632  					sizeof(unsigned long),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4633  					GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4634  	ud->rflows = devm_kcalloc(dev, ud->rflow_cnt, sizeof(*ud->rflows),
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4635  				  GFP_KERNEL);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4636  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4637  	if (!ud->tchan_map || !ud->rchan_map || !ud->rflow_gp_map ||
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4638  	    !ud->rflow_gp_map_allocated || !ud->tchans || !ud->rchans ||
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4639  	    !ud->rflows || !ud->rflow_in_use)
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4640  		return -ENOMEM;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4641  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4642  	/*
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4643  	 * RX flows with the same Ids as RX channels are reserved to be used
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4644  	 * as default flows if remote HW can't generate flow_ids. Those
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4645  	 * RX flows can be requested only explicitly by id.
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4646  	 */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4647  	bitmap_set(ud->rflow_gp_map_allocated, 0, ud->rchan_cnt);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4648  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4649  	/* by default no GP rflows are assigned to Linux */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4650  	bitmap_set(ud->rflow_gp_map, 0, ud->rflow_cnt);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4651  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4652  	/* Get resource ranges from tisci */
017794739702d4 Peter Ujfalusi      2020-12-08  4653  	for (i = 0; i < RM_RANGE_LAST; i++) {
d2abc982333c02 Peter Ujfalusi      2020-12-08  4654  		if (i == RM_RANGE_BCHAN || i == RM_RANGE_TFLOW)
017794739702d4 Peter Ujfalusi      2020-12-08  4655  			continue;
017794739702d4 Peter Ujfalusi      2020-12-08  4656  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4657  		tisci_rm->rm_ranges[i] =
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4658  			devm_ti_sci_get_of_resource(tisci_rm->tisci, dev,
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4659  						    tisci_rm->tisci_dev_id,
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4660  						    (char *)range_names[i]);
017794739702d4 Peter Ujfalusi      2020-12-08  4661  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4662  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4663  	/* tchan ranges */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4664  	rm_res = tisci_rm->rm_ranges[RM_RANGE_TCHAN];
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4665  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4666  		bitmap_zero(ud->tchan_map, ud->tchan_cnt);
80936d68665be8 Vignesh Raghavendra 2021-12-09  4667  		irq_res.sets = 1;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4668  	} else {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4669  		bitmap_fill(ud->tchan_map, ud->tchan_cnt);
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4670  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4671  			udma_mark_resource_ranges(ud, ud->tchan_map,
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4672  						  &rm_res->desc[i], "tchan");
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4673  		irq_res.sets = rm_res->sets;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4674  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4675  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4676  	/* rchan and matching default flow ranges */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4677  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RCHAN];
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4678  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4679  		bitmap_zero(ud->rchan_map, ud->rchan_cnt);
80936d68665be8 Vignesh Raghavendra 2021-12-09  4680  		irq_res.sets++;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4681  	} else {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4682  		bitmap_fill(ud->rchan_map, ud->rchan_cnt);
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4683  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4684  			udma_mark_resource_ranges(ud, ud->rchan_map,
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4685  						  &rm_res->desc[i], "rchan");
80936d68665be8 Vignesh Raghavendra 2021-12-09  4686  		irq_res.sets += rm_res->sets;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4687  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4688  
bf4afc53b77aea Linus Torvalds      2026-02-21 @4689  	irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
80936d68665be8 Vignesh Raghavendra 2021-12-09 @4690  	if (!irq_res.desc)
80936d68665be8 Vignesh Raghavendra 2021-12-09  4691  		return -ENOMEM;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4692  	rm_res = tisci_rm->rm_ranges[RM_RANGE_TCHAN];
80936d68665be8 Vignesh Raghavendra 2021-12-09  4693  	if (IS_ERR(rm_res)) {
80936d68665be8 Vignesh Raghavendra 2021-12-09  4694  		irq_res.desc[0].start = 0;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4695  		irq_res.desc[0].num = ud->tchan_cnt;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4696  		i = 1;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4697  	} else {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4698  		for (i = 0; i < rm_res->sets; i++) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4699  			irq_res.desc[i].start = rm_res->desc[i].start;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4700  			irq_res.desc[i].num = rm_res->desc[i].num;
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4701  			irq_res.desc[i].start_sec = rm_res->desc[i].start_sec;
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4702  			irq_res.desc[i].num_sec = rm_res->desc[i].num_sec;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4703  		}
80936d68665be8 Vignesh Raghavendra 2021-12-09  4704  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4705  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RCHAN];
80936d68665be8 Vignesh Raghavendra 2021-12-09  4706  	if (IS_ERR(rm_res)) {
80936d68665be8 Vignesh Raghavendra 2021-12-09  4707  		irq_res.desc[i].start = 0;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4708  		irq_res.desc[i].num = ud->rchan_cnt;
80936d68665be8 Vignesh Raghavendra 2021-12-09  4709  	} else {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4710  		for (j = 0; j < rm_res->sets; j++, i++) {
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4711  			if (rm_res->desc[j].num) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4712  				irq_res.desc[i].start = rm_res->desc[j].start +
017794739702d4 Peter Ujfalusi      2020-12-08  4713  						ud->soc_data->oes.udma_rchan;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4714  				irq_res.desc[i].num = rm_res->desc[j].num;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4715  			}
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4716  			if (rm_res->desc[j].num_sec) {
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4717  				irq_res.desc[i].start_sec = rm_res->desc[j].start_sec +
017794739702d4 Peter Ujfalusi      2020-12-08  4718  						ud->soc_data->oes.udma_rchan;
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4719  				irq_res.desc[i].num_sec = rm_res->desc[j].num_sec;
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4720  			}
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4721  		}
80936d68665be8 Vignesh Raghavendra 2021-12-09  4722  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4723  	ret = ti_sci_inta_msi_domain_alloc_irqs(ud->dev, &irq_res);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4724  	kfree(irq_res.desc);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4725  	if (ret) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4726  		dev_err(ud->dev, "Failed to allocate MSI interrupts\n");
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4727  		return ret;
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4728  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4729  
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4730  	/* GP rflow ranges */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4731  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RFLOW];
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4732  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4733  		/* all gp flows are assigned exclusively to Linux */
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4734  		bitmap_clear(ud->rflow_gp_map, ud->rchan_cnt,
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4735  			     ud->rflow_cnt - ud->rchan_cnt);
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4736  	} else {
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4737  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4738  			udma_mark_resource_ranges(ud, ud->rflow_gp_map,
1609c15a20b8e0 Peter Ujfalusi      2020-12-08  4739  						  &rm_res->desc[i], "gp-rflow");
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4740  	}
25dcb5dd7b7ce5 Peter Ujfalusi      2019-12-23  4741  
017794739702d4 Peter Ujfalusi      2020-12-08  4742  	return 0;
017794739702d4 Peter Ujfalusi      2020-12-08  4743  }
017794739702d4 Peter Ujfalusi      2020-12-08  4744  

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] firmware: ti_sci: simplify resource allocation
  2026-04-30 22:11 [PATCH] firmware: ti_sci: simplify resource allocation Rosen Penev
  2026-05-03 15:17 ` kernel test robot
@ 2026-05-03 15:42 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-05-03 15:42 UTC (permalink / raw)
  To: Rosen Penev, linux-kernel; +Cc: oe-kbuild-all

Hi Rosen,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v7.1-rc1 next-20260430]
[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/Rosen-Penev/firmware-ti_sci-simplify-resource-allocation/20260502-175729
base:   linus/master
patch link:    https://lore.kernel.org/r/20260430221123.79947-1-rosenp%40gmail.com
patch subject: [PATCH] firmware: ti_sci: simplify resource allocation
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20260503/202605032309.O6PkOirl-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260503/202605032309.O6PkOirl-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/202605032309.O6PkOirl-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/dma/ti/k3-udma.c: In function 'udma_setup_resources':
>> drivers/dma/ti/k3-udma.c:4689:22: error: invalid use of flexible array member
    4689 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |                      ^
   drivers/dma/ti/k3-udma.c: In function 'bcdma_setup_resources':
   drivers/dma/ti/k3-udma.c:4881:22: error: invalid use of flexible array member
    4881 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |                      ^
   drivers/dma/ti/k3-udma.c: In function 'pktdma_setup_resources':
   drivers/dma/ti/k3-udma.c:5083:22: error: invalid use of flexible array member
    5083 |         irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
         |                      ^


vim +4689 drivers/dma/ti/k3-udma.c

017794739702d44 Peter Ujfalusi      2020-12-08  4582  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4583  static int udma_setup_resources(struct udma_dev *ud)
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4584  {
017794739702d44 Peter Ujfalusi      2020-12-08  4585  	int ret, i, j;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4586  	struct device *dev = ud->dev;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4587  	struct ti_sci_resource *rm_res, irq_res;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4588  	struct udma_tisci_rm *tisci_rm = &ud->tisci_rm;
017794739702d44 Peter Ujfalusi      2020-12-08  4589  	u32 cap3;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4590  
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4591  	/* Set up the throughput level start indexes */
017794739702d44 Peter Ujfalusi      2020-12-08  4592  	cap3 = udma_read(ud->mmrs[MMR_GCFG], 0x2c);
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4593  	if (of_device_is_compatible(dev->of_node,
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4594  				    "ti,am654-navss-main-udmap")) {
8844898028d4127 Peter Ujfalusi      2020-12-08  4595  		ud->tchan_tpl.levels = 2;
8844898028d4127 Peter Ujfalusi      2020-12-08  4596  		ud->tchan_tpl.start_idx[0] = 8;
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4597  	} else if (of_device_is_compatible(dev->of_node,
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4598  					   "ti,am654-navss-mcu-udmap")) {
8844898028d4127 Peter Ujfalusi      2020-12-08  4599  		ud->tchan_tpl.levels = 2;
8844898028d4127 Peter Ujfalusi      2020-12-08  4600  		ud->tchan_tpl.start_idx[0] = 2;
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4601  	} else if (UDMA_CAP3_UCHAN_CNT(cap3)) {
8844898028d4127 Peter Ujfalusi      2020-12-08  4602  		ud->tchan_tpl.levels = 3;
8844898028d4127 Peter Ujfalusi      2020-12-08  4603  		ud->tchan_tpl.start_idx[1] = UDMA_CAP3_UCHAN_CNT(cap3);
8844898028d4127 Peter Ujfalusi      2020-12-08  4604  		ud->tchan_tpl.start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4605  	} else if (UDMA_CAP3_HCHAN_CNT(cap3)) {
8844898028d4127 Peter Ujfalusi      2020-12-08  4606  		ud->tchan_tpl.levels = 2;
8844898028d4127 Peter Ujfalusi      2020-12-08  4607  		ud->tchan_tpl.start_idx[0] = UDMA_CAP3_HCHAN_CNT(cap3);
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4608  	} else {
8844898028d4127 Peter Ujfalusi      2020-12-08  4609  		ud->tchan_tpl.levels = 1;
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4610  	}
daf4ad0499aa4f7 Peter Ujfalusi      2020-07-17  4611  
8844898028d4127 Peter Ujfalusi      2020-12-08  4612  	ud->rchan_tpl.levels = ud->tchan_tpl.levels;
8844898028d4127 Peter Ujfalusi      2020-12-08  4613  	ud->rchan_tpl.start_idx[0] = ud->tchan_tpl.start_idx[0];
8844898028d4127 Peter Ujfalusi      2020-12-08  4614  	ud->rchan_tpl.start_idx[1] = ud->tchan_tpl.start_idx[1];
8844898028d4127 Peter Ujfalusi      2020-12-08  4615  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4616  	ud->tchan_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->tchan_cnt),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4617  					   sizeof(unsigned long), GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4618  	ud->tchans = devm_kcalloc(dev, ud->tchan_cnt, sizeof(*ud->tchans),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4619  				  GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4620  	ud->rchan_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->rchan_cnt),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4621  					   sizeof(unsigned long), GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4622  	ud->rchans = devm_kcalloc(dev, ud->rchan_cnt, sizeof(*ud->rchans),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4623  				  GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4624  	ud->rflow_gp_map = devm_kmalloc_array(dev, BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4625  					      sizeof(unsigned long),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4626  					      GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4627  	ud->rflow_gp_map_allocated = devm_kcalloc(dev,
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4628  						  BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4629  						  sizeof(unsigned long),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4630  						  GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4631  	ud->rflow_in_use = devm_kcalloc(dev, BITS_TO_LONGS(ud->rflow_cnt),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4632  					sizeof(unsigned long),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4633  					GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4634  	ud->rflows = devm_kcalloc(dev, ud->rflow_cnt, sizeof(*ud->rflows),
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4635  				  GFP_KERNEL);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4636  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4637  	if (!ud->tchan_map || !ud->rchan_map || !ud->rflow_gp_map ||
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4638  	    !ud->rflow_gp_map_allocated || !ud->tchans || !ud->rchans ||
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4639  	    !ud->rflows || !ud->rflow_in_use)
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4640  		return -ENOMEM;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4641  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4642  	/*
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4643  	 * RX flows with the same Ids as RX channels are reserved to be used
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4644  	 * as default flows if remote HW can't generate flow_ids. Those
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4645  	 * RX flows can be requested only explicitly by id.
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4646  	 */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4647  	bitmap_set(ud->rflow_gp_map_allocated, 0, ud->rchan_cnt);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4648  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4649  	/* by default no GP rflows are assigned to Linux */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4650  	bitmap_set(ud->rflow_gp_map, 0, ud->rflow_cnt);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4651  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4652  	/* Get resource ranges from tisci */
017794739702d44 Peter Ujfalusi      2020-12-08  4653  	for (i = 0; i < RM_RANGE_LAST; i++) {
d2abc982333c02f Peter Ujfalusi      2020-12-08  4654  		if (i == RM_RANGE_BCHAN || i == RM_RANGE_TFLOW)
017794739702d44 Peter Ujfalusi      2020-12-08  4655  			continue;
017794739702d44 Peter Ujfalusi      2020-12-08  4656  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4657  		tisci_rm->rm_ranges[i] =
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4658  			devm_ti_sci_get_of_resource(tisci_rm->tisci, dev,
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4659  						    tisci_rm->tisci_dev_id,
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4660  						    (char *)range_names[i]);
017794739702d44 Peter Ujfalusi      2020-12-08  4661  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4662  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4663  	/* tchan ranges */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4664  	rm_res = tisci_rm->rm_ranges[RM_RANGE_TCHAN];
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4665  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4666  		bitmap_zero(ud->tchan_map, ud->tchan_cnt);
80936d68665be88 Vignesh Raghavendra 2021-12-09  4667  		irq_res.sets = 1;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4668  	} else {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4669  		bitmap_fill(ud->tchan_map, ud->tchan_cnt);
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4670  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4671  			udma_mark_resource_ranges(ud, ud->tchan_map,
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4672  						  &rm_res->desc[i], "tchan");
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4673  		irq_res.sets = rm_res->sets;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4674  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4675  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4676  	/* rchan and matching default flow ranges */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4677  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RCHAN];
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4678  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4679  		bitmap_zero(ud->rchan_map, ud->rchan_cnt);
80936d68665be88 Vignesh Raghavendra 2021-12-09  4680  		irq_res.sets++;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4681  	} else {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4682  		bitmap_fill(ud->rchan_map, ud->rchan_cnt);
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4683  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4684  			udma_mark_resource_ranges(ud, ud->rchan_map,
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4685  						  &rm_res->desc[i], "rchan");
80936d68665be88 Vignesh Raghavendra 2021-12-09  4686  		irq_res.sets += rm_res->sets;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4687  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4688  
bf4afc53b77aeaa Linus Torvalds      2026-02-21 @4689  	irq_res.desc = kzalloc_objs(*irq_res.desc, irq_res.sets);
80936d68665be88 Vignesh Raghavendra 2021-12-09  4690  	if (!irq_res.desc)
80936d68665be88 Vignesh Raghavendra 2021-12-09  4691  		return -ENOMEM;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4692  	rm_res = tisci_rm->rm_ranges[RM_RANGE_TCHAN];
80936d68665be88 Vignesh Raghavendra 2021-12-09  4693  	if (IS_ERR(rm_res)) {
80936d68665be88 Vignesh Raghavendra 2021-12-09  4694  		irq_res.desc[0].start = 0;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4695  		irq_res.desc[0].num = ud->tchan_cnt;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4696  		i = 1;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4697  	} else {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4698  		for (i = 0; i < rm_res->sets; i++) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4699  			irq_res.desc[i].start = rm_res->desc[i].start;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4700  			irq_res.desc[i].num = rm_res->desc[i].num;
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4701  			irq_res.desc[i].start_sec = rm_res->desc[i].start_sec;
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4702  			irq_res.desc[i].num_sec = rm_res->desc[i].num_sec;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4703  		}
80936d68665be88 Vignesh Raghavendra 2021-12-09  4704  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4705  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RCHAN];
80936d68665be88 Vignesh Raghavendra 2021-12-09  4706  	if (IS_ERR(rm_res)) {
80936d68665be88 Vignesh Raghavendra 2021-12-09  4707  		irq_res.desc[i].start = 0;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4708  		irq_res.desc[i].num = ud->rchan_cnt;
80936d68665be88 Vignesh Raghavendra 2021-12-09  4709  	} else {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4710  		for (j = 0; j < rm_res->sets; j++, i++) {
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4711  			if (rm_res->desc[j].num) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4712  				irq_res.desc[i].start = rm_res->desc[j].start +
017794739702d44 Peter Ujfalusi      2020-12-08  4713  						ud->soc_data->oes.udma_rchan;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4714  				irq_res.desc[i].num = rm_res->desc[j].num;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4715  			}
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4716  			if (rm_res->desc[j].num_sec) {
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4717  				irq_res.desc[i].start_sec = rm_res->desc[j].start_sec +
017794739702d44 Peter Ujfalusi      2020-12-08  4718  						ud->soc_data->oes.udma_rchan;
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4719  				irq_res.desc[i].num_sec = rm_res->desc[j].num_sec;
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4720  			}
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4721  		}
80936d68665be88 Vignesh Raghavendra 2021-12-09  4722  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4723  	ret = ti_sci_inta_msi_domain_alloc_irqs(ud->dev, &irq_res);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4724  	kfree(irq_res.desc);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4725  	if (ret) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4726  		dev_err(ud->dev, "Failed to allocate MSI interrupts\n");
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4727  		return ret;
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4728  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4729  
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4730  	/* GP rflow ranges */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4731  	rm_res = tisci_rm->rm_ranges[RM_RANGE_RFLOW];
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4732  	if (IS_ERR(rm_res)) {
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4733  		/* all gp flows are assigned exclusively to Linux */
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4734  		bitmap_clear(ud->rflow_gp_map, ud->rchan_cnt,
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4735  			     ud->rflow_cnt - ud->rchan_cnt);
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4736  	} else {
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4737  		for (i = 0; i < rm_res->sets; i++)
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4738  			udma_mark_resource_ranges(ud, ud->rflow_gp_map,
1609c15a20b8e0c Peter Ujfalusi      2020-12-08  4739  						  &rm_res->desc[i], "gp-rflow");
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4740  	}
25dcb5dd7b7ce55 Peter Ujfalusi      2019-12-23  4741  
017794739702d44 Peter Ujfalusi      2020-12-08  4742  	return 0;
017794739702d44 Peter Ujfalusi      2020-12-08  4743  }
017794739702d44 Peter Ujfalusi      2020-12-08  4744  

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-05-03 15:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-30 22:11 [PATCH] firmware: ti_sci: simplify resource allocation Rosen Penev
2026-05-03 15:17 ` kernel test robot
2026-05-03 15:42 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox