public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Hector Martin <marcan@marcan.st>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org, Marc Zyngier <maz@kernel.org>
Subject: drivers/irqchip/irq-apple-aic.c:849 aic_of_ic_init() warn: 'regs' not released on lines: 803.
Date: Sat, 3 Jul 2021 15:50:36 +0300	[thread overview]
Message-ID: <202107030700.SB4h6CEa-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   35e43538af8fd2cb39d58caca1134a87db173f75
commit: 76cde26394114f6af2710c6b2ad6854f1e8ee859 irqchip/apple-aic: Add support for the Apple Interrupt Controller
config: arm64-randconfig-m031-20210702 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/irqchip/irq-apple-aic.c:849 aic_of_ic_init() warn: 'regs' not released on lines: 803.

vim +/regs +849 drivers/irqchip/irq-apple-aic.c

76cde26394114f Hector Martin 2021-01-21  790  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21  791  {
76cde26394114f Hector Martin 2021-01-21  792  	int i;
76cde26394114f Hector Martin 2021-01-21  793  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21  794  	u32 info;
76cde26394114f Hector Martin 2021-01-21  795  	struct aic_irq_chip *irqc;
76cde26394114f Hector Martin 2021-01-21  796  
76cde26394114f Hector Martin 2021-01-21  797  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21  798  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21  799  		return -EIO;
76cde26394114f Hector Martin 2021-01-21  800  
76cde26394114f Hector Martin 2021-01-21  801  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21  802  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21  803  		return -ENOMEM;

iounmap() before returning.

76cde26394114f Hector Martin 2021-01-21  804  
76cde26394114f Hector Martin 2021-01-21  805  	aic_irqc = irqc;
76cde26394114f Hector Martin 2021-01-21  806  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21  807  
76cde26394114f Hector Martin 2021-01-21  808  	info = aic_ic_read(irqc, AIC_INFO);
76cde26394114f Hector Martin 2021-01-21  809  	irqc->nr_hw = FIELD_GET(AIC_INFO_NR_HW, info);
76cde26394114f Hector Martin 2021-01-21  810  
76cde26394114f Hector Martin 2021-01-21  811  	irqc->hw_domain = irq_domain_create_linear(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21  812  						   irqc->nr_hw + AIC_NR_FIQ,
76cde26394114f Hector Martin 2021-01-21  813  						   &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21  814  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21  815  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21  816  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21  817  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21  818  	}
76cde26394114f Hector Martin 2021-01-21  819  
76cde26394114f Hector Martin 2021-01-21  820  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21  821  
76cde26394114f Hector Martin 2021-01-21  822  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21  823  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21  824  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21  825  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21  826  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21  827  	}
76cde26394114f Hector Martin 2021-01-21  828  
76cde26394114f Hector Martin 2021-01-21  829  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21  830  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21  831  
76cde26394114f Hector Martin 2021-01-21  832  	for (i = 0; i < BITS_TO_U32(irqc->nr_hw); i++)
76cde26394114f Hector Martin 2021-01-21  833  		aic_ic_write(irqc, AIC_MASK_SET + i * 4, U32_MAX);
76cde26394114f Hector Martin 2021-01-21  834  	for (i = 0; i < BITS_TO_U32(irqc->nr_hw); i++)
76cde26394114f Hector Martin 2021-01-21  835  		aic_ic_write(irqc, AIC_SW_CLR + i * 4, U32_MAX);
76cde26394114f Hector Martin 2021-01-21  836  	for (i = 0; i < irqc->nr_hw; i++)
76cde26394114f Hector Martin 2021-01-21  837  		aic_ic_write(irqc, AIC_TARGET_CPU + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21  838  
76cde26394114f Hector Martin 2021-01-21  839  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21  840  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21  841  
76cde26394114f Hector Martin 2021-01-21  842  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21  843  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21  844  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21  845  
76cde26394114f Hector Martin 2021-01-21  846  	pr_info("Initialized with %d IRQs, %d FIQs, %d vIPIs\n",
76cde26394114f Hector Martin 2021-01-21  847  		irqc->nr_hw, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21  848  
76cde26394114f Hector Martin 2021-01-21 @849  	return 0;
76cde26394114f Hector Martin 2021-01-21  850  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


                 reply	other threads:[~2021-07-03 12:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202107030700.SB4h6CEa-lkp@intel.com \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=marcan@marcan.st \
    --cc=maz@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox