From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
Subject: drivers/dma/loongson/loongson2-apb-cmc-dma.c:677:6-16: WARNING: Unsigned expression compared with zero: lchan -> irq < 0
Date: Fri, 15 May 2026 02:19:24 +0800 [thread overview]
Message-ID: <202605150228.KrsJmbUt-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Binbin Zhou <zhoubinbin@loongson.cn>
CC: Vinod Koul <vkoul@kernel.org>
CC: Frank Li <Frank.Li@nxp.com>
CC: Huacai Chen <chenhuacai@loongson.cn>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 66182ca873a4e87b3496eca79d57f86b76d7f52d
commit: 1c0028e725f156ebabe68b0025f9c8e7a6170ffd dmaengine: loongson: New driver for the Loongson Multi-Channel DMA controller
date: 8 weeks ago
:::::: branch date: 2 hours ago
:::::: commit date: 8 weeks ago
config: parisc-randconfig-r063-20260514 (https://download.01.org/0day-ci/archive/20260515/202605150228.KrsJmbUt-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 8.5.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
| Fixes: 1c0028e725f1 ("dmaengine: loongson: New driver for the Loongson Multi-Channel DMA controller")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202605150228.KrsJmbUt-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/dma/loongson/loongson2-apb-cmc-dma.c:677:6-16: WARNING: Unsigned expression compared with zero: lchan -> irq < 0
vim +677 drivers/dma/loongson/loongson2-apb-cmc-dma.c
1c0028e725f156e Binbin Zhou 2026-03-07 601
1c0028e725f156e Binbin Zhou 2026-03-07 602 static int loongson2_cmc_dma_probe(struct platform_device *pdev)
1c0028e725f156e Binbin Zhou 2026-03-07 603 {
1c0028e725f156e Binbin Zhou 2026-03-07 604 const struct loongson2_cmc_dma_config *config;
1c0028e725f156e Binbin Zhou 2026-03-07 605 struct loongson2_cmc_dma_chan *lchan;
1c0028e725f156e Binbin Zhou 2026-03-07 606 struct loongson2_cmc_dma_dev *lddev;
1c0028e725f156e Binbin Zhou 2026-03-07 607 struct device *dev = &pdev->dev;
1c0028e725f156e Binbin Zhou 2026-03-07 608 struct dma_device *ddev;
1c0028e725f156e Binbin Zhou 2026-03-07 609 u32 nr_chans, i;
1c0028e725f156e Binbin Zhou 2026-03-07 610 int ret;
1c0028e725f156e Binbin Zhou 2026-03-07 611
1c0028e725f156e Binbin Zhou 2026-03-07 612 config = (const struct loongson2_cmc_dma_config *)device_get_match_data(dev);
1c0028e725f156e Binbin Zhou 2026-03-07 613 if (!config)
1c0028e725f156e Binbin Zhou 2026-03-07 614 return -EINVAL;
1c0028e725f156e Binbin Zhou 2026-03-07 615
1c0028e725f156e Binbin Zhou 2026-03-07 616 ret = device_property_read_u32(dev, "dma-channels", &nr_chans);
1c0028e725f156e Binbin Zhou 2026-03-07 617 if (ret || nr_chans > config->max_channels) {
1c0028e725f156e Binbin Zhou 2026-03-07 618 dev_err(dev, "missing or invalid dma-channels property\n");
1c0028e725f156e Binbin Zhou 2026-03-07 619 nr_chans = config->max_channels;
1c0028e725f156e Binbin Zhou 2026-03-07 620 }
1c0028e725f156e Binbin Zhou 2026-03-07 621
1c0028e725f156e Binbin Zhou 2026-03-07 622 lddev = devm_kzalloc(dev, struct_size(lddev, chan, nr_chans), GFP_KERNEL);
1c0028e725f156e Binbin Zhou 2026-03-07 623 if (!lddev)
1c0028e725f156e Binbin Zhou 2026-03-07 624 return -ENOMEM;
1c0028e725f156e Binbin Zhou 2026-03-07 625
1c0028e725f156e Binbin Zhou 2026-03-07 626 lddev->base = devm_platform_ioremap_resource(pdev, 0);
1c0028e725f156e Binbin Zhou 2026-03-07 627 if (IS_ERR(lddev->base))
1c0028e725f156e Binbin Zhou 2026-03-07 628 return PTR_ERR(lddev->base);
1c0028e725f156e Binbin Zhou 2026-03-07 629
1c0028e725f156e Binbin Zhou 2026-03-07 630 platform_set_drvdata(pdev, lddev);
1c0028e725f156e Binbin Zhou 2026-03-07 631 lddev->nr_channels = nr_chans;
1c0028e725f156e Binbin Zhou 2026-03-07 632 lddev->chan_reg_offset = config->chan_reg_offset;
1c0028e725f156e Binbin Zhou 2026-03-07 633
1c0028e725f156e Binbin Zhou 2026-03-07 634 lddev->dma_clk = devm_clk_get_optional_enabled(dev, NULL);
1c0028e725f156e Binbin Zhou 2026-03-07 635 if (IS_ERR(lddev->dma_clk))
1c0028e725f156e Binbin Zhou 2026-03-07 636 return dev_err_probe(dev, PTR_ERR(lddev->dma_clk), "Failed to get dma clock\n");
1c0028e725f156e Binbin Zhou 2026-03-07 637
1c0028e725f156e Binbin Zhou 2026-03-07 638 ddev = &lddev->ddev;
1c0028e725f156e Binbin Zhou 2026-03-07 639 ddev->dev = dev;
1c0028e725f156e Binbin Zhou 2026-03-07 640
1c0028e725f156e Binbin Zhou 2026-03-07 641 dma_cap_zero(ddev->cap_mask);
1c0028e725f156e Binbin Zhou 2026-03-07 642 dma_cap_set(DMA_SLAVE, ddev->cap_mask);
1c0028e725f156e Binbin Zhou 2026-03-07 643 dma_cap_set(DMA_PRIVATE, ddev->cap_mask);
1c0028e725f156e Binbin Zhou 2026-03-07 644 dma_cap_set(DMA_CYCLIC, ddev->cap_mask);
1c0028e725f156e Binbin Zhou 2026-03-07 645
1c0028e725f156e Binbin Zhou 2026-03-07 646 ddev->device_free_chan_resources = loongson2_cmc_dma_free_chan_resources;
1c0028e725f156e Binbin Zhou 2026-03-07 647 ddev->device_config = loongson2_cmc_dma_slave_config;
1c0028e725f156e Binbin Zhou 2026-03-07 648 ddev->device_prep_slave_sg = loongson2_cmc_dma_prep_slave_sg;
1c0028e725f156e Binbin Zhou 2026-03-07 649 ddev->device_prep_dma_cyclic = loongson2_cmc_dma_prep_dma_cyclic;
1c0028e725f156e Binbin Zhou 2026-03-07 650 ddev->device_issue_pending = loongson2_cmc_dma_issue_pending;
1c0028e725f156e Binbin Zhou 2026-03-07 651 ddev->device_synchronize = loongson2_cmc_dma_synchronize;
1c0028e725f156e Binbin Zhou 2026-03-07 652 ddev->device_tx_status = loongson2_cmc_dma_tx_status;
1c0028e725f156e Binbin Zhou 2026-03-07 653 ddev->device_terminate_all = loongson2_cmc_dma_terminate_all;
1c0028e725f156e Binbin Zhou 2026-03-07 654
1c0028e725f156e Binbin Zhou 2026-03-07 655 ddev->max_sg_burst = LOONSON2_CMCDMA_MAX_DATA_ITEMS;
1c0028e725f156e Binbin Zhou 2026-03-07 656 ddev->src_addr_widths = LOONGSON2_CMCDMA_BUSWIDTHS;
1c0028e725f156e Binbin Zhou 2026-03-07 657 ddev->dst_addr_widths = LOONGSON2_CMCDMA_BUSWIDTHS;
1c0028e725f156e Binbin Zhou 2026-03-07 658 ddev->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
1c0028e725f156e Binbin Zhou 2026-03-07 659 INIT_LIST_HEAD(&ddev->channels);
1c0028e725f156e Binbin Zhou 2026-03-07 660
1c0028e725f156e Binbin Zhou 2026-03-07 661 for (i = 0; i < nr_chans; i++) {
1c0028e725f156e Binbin Zhou 2026-03-07 662 lchan = &lddev->chan[i];
1c0028e725f156e Binbin Zhou 2026-03-07 663
1c0028e725f156e Binbin Zhou 2026-03-07 664 lchan->id = i;
1c0028e725f156e Binbin Zhou 2026-03-07 665 lchan->vchan.desc_free = loongson2_cmc_dma_desc_free;
1c0028e725f156e Binbin Zhou 2026-03-07 666 vchan_init(&lchan->vchan, ddev);
1c0028e725f156e Binbin Zhou 2026-03-07 667 }
1c0028e725f156e Binbin Zhou 2026-03-07 668
1c0028e725f156e Binbin Zhou 2026-03-07 669 ret = dmaenginem_async_device_register(ddev);
1c0028e725f156e Binbin Zhou 2026-03-07 670 if (ret)
1c0028e725f156e Binbin Zhou 2026-03-07 671 return dev_err_probe(dev, ret, "Failed to register DMA engine device.\n");
1c0028e725f156e Binbin Zhou 2026-03-07 672
1c0028e725f156e Binbin Zhou 2026-03-07 673 for (i = 0; i < nr_chans; i++) {
1c0028e725f156e Binbin Zhou 2026-03-07 674 lchan = &lddev->chan[i];
1c0028e725f156e Binbin Zhou 2026-03-07 675
1c0028e725f156e Binbin Zhou 2026-03-07 676 lchan->irq = platform_get_irq(pdev, i);
1c0028e725f156e Binbin Zhou 2026-03-07 @677 if (lchan->irq < 0)
1c0028e725f156e Binbin Zhou 2026-03-07 678 return lchan->irq;
1c0028e725f156e Binbin Zhou 2026-03-07 679
1c0028e725f156e Binbin Zhou 2026-03-07 680 ret = devm_request_irq(dev, lchan->irq, loongson2_cmc_dma_chan_irq, IRQF_SHARED,
1c0028e725f156e Binbin Zhou 2026-03-07 681 dev_name(chan2dev(lchan)), lchan);
1c0028e725f156e Binbin Zhou 2026-03-07 682 if (ret)
1c0028e725f156e Binbin Zhou 2026-03-07 683 return ret;
1c0028e725f156e Binbin Zhou 2026-03-07 684 }
1c0028e725f156e Binbin Zhou 2026-03-07 685
1c0028e725f156e Binbin Zhou 2026-03-07 686 ret = loongson2_cmc_dma_acpi_controller_register(lddev);
1c0028e725f156e Binbin Zhou 2026-03-07 687 if (ret)
1c0028e725f156e Binbin Zhou 2026-03-07 688 return dev_err_probe(dev, ret, "Failed to register dma controller with ACPI.\n");
1c0028e725f156e Binbin Zhou 2026-03-07 689
1c0028e725f156e Binbin Zhou 2026-03-07 690 ret = loongson2_cmc_dma_of_controller_register(lddev);
1c0028e725f156e Binbin Zhou 2026-03-07 691 if (ret)
1c0028e725f156e Binbin Zhou 2026-03-07 692 return dev_err_probe(dev, ret, "Failed to register dma controller with FDT.\n");
1c0028e725f156e Binbin Zhou 2026-03-07 693
1c0028e725f156e Binbin Zhou 2026-03-07 694 dev_info(dev, "Loongson-2 Multi-Channel DMA Controller registered successfully.\n");
1c0028e725f156e Binbin Zhou 2026-03-07 695
1c0028e725f156e Binbin Zhou 2026-03-07 696 return 0;
1c0028e725f156e Binbin Zhou 2026-03-07 697 }
1c0028e725f156e Binbin Zhou 2026-03-07 698
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-05-14 18:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 18:19 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-07-12 15:19 drivers/dma/loongson/loongson2-apb-cmc-dma.c:677:6-16: WARNING: Unsigned expression compared with zero: lchan -> irq < 0 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=202605150228.KrsJmbUt-lkp@intel.com \
--to=lkp@intel.com \
--cc=julia.lawall@inria.fr \
--cc=oe-kbuild@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.