From: kernel test robot <lkp@intel.com>
To: Rosen Penev <rosenp@gmail.com>, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH] firmware: ti_sci: simplify resource allocation
Date: Sun, 3 May 2026 23:42:48 +0800 [thread overview]
Message-ID: <202605032309.O6PkOirl-lkp@intel.com> (raw)
In-Reply-To: <20260430221123.79947-1-rosenp@gmail.com>
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
prev parent reply other threads:[~2026-05-03 15:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
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 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=202605032309.O6PkOirl-lkp@intel.com \
--to=lkp@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=rosenp@gmail.com \
/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.