All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:08 ` Dan Carpenter
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2022-05-31 20:14 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8689 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Hector Martin <marcan@marcan.st>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ab2afa23bd197df47819a87f0265c0ac95c5b6a
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
date:   3 months ago
:::::: branch date: 24 hours ago
:::::: commit date: 3 months ago
config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220601/202206010439.LRgjym7t-lkp(a)intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0

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

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

b6ca556c352979 Marc Zyngier  2021-02-28   899  
76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }
76cde26394114f Hector Martin 2021-01-21  1000  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:08 ` Dan Carpenter
  0 siblings, 0 replies; 14+ messages in thread
From: Dan Carpenter @ 2022-06-06 11:08 UTC (permalink / raw)
  To: kbuild, Hector Martin; +Cc: lkp, kbuild-all, linux-kernel, Marc Zyngier

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ab2afa23bd197df47819a87f0265c0ac95c5b6a
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220601/202206010439.LRgjym7t-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0

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

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;

"off" uninitialized if irqc->info.version != 1.

dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp


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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:08 ` Dan Carpenter
  0 siblings, 0 replies; 14+ messages in thread
From: Dan Carpenter @ 2022-06-06 11:08 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4647 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8ab2afa23bd197df47819a87f0265c0ac95c5b6a
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220601/202206010439.LRgjym7t-lkp(a)intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0

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

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;

"off" uninitialized if irqc->info.version != 1.

dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
  2022-06-06 11:08 ` Dan Carpenter
@ 2022-06-06 11:16   ` Marc Zyngier
  -1 siblings, 0 replies; 14+ messages in thread
From: Marc Zyngier @ 2022-06-06 11:16 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: kbuild, Hector Martin, lkp, kbuild-all, linux-kernel

On Mon, 06 Jun 2022 12:08:03 +0100,
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   8ab2afa23bd197df47819a87f0265c0ac95c5b6a
> commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
> config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220601/202206010439.LRgjym7t-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 11.3.0
> 
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> New smatch warnings:
> drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
> 
> vim +/off +941 drivers/irqchip/irq-apple-aic.c
> 
> 76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
> 76cde26394114f Hector Martin 2021-01-21   901  {
> 76cde26394114f Hector Martin 2021-01-21   902  	int i;
> dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
> 76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
> 76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
> 2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
> 76cde26394114f Hector Martin 2021-01-21   907  
> 76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
> 76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
> 76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
> 76cde26394114f Hector Martin 2021-01-21   911  
> 76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
> 76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
> 76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
> 76cde26394114f Hector Martin 2021-01-21   915  
> 76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
> 76cde26394114f Hector Martin 2021-01-21   917  
> 2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
> 2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
> 2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
> 2cf68211664acd Hector Martin 2022-03-10   921  
> 2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
> 2cf68211664acd Hector Martin 2022-03-10   923  
> 2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
> 2cf68211664acd Hector Martin 2022-03-10   925  
> dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> dc97fd6fec0099 Hector Martin 2022-03-10   929  
> 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> dc97fd6fec0099 Hector Martin 2022-03-10   933  
> dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> dc97fd6fec0099 Hector Martin 2022-03-10   936  
> dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> 
> "off" uninitialized if irqc->info.version != 1.

Which is pretty much impossible by construction, as as of this
particular commit, all the possible implementations have version == 1.

Subsequent patches do add cases where version == 2, and that gets
covered too.

So unless I'm missing something obvious, there is no bug here.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:16   ` Marc Zyngier
  0 siblings, 0 replies; 14+ messages in thread
From: Marc Zyngier @ 2022-06-06 11:16 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3966 bytes --]

On Mon, 06 Jun 2022 12:08:03 +0100,
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   8ab2afa23bd197df47819a87f0265c0ac95c5b6a
> commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
> config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220601/202206010439.LRgjym7t-lkp(a)intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 11.3.0
> 
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> New smatch warnings:
> drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
> 
> vim +/off +941 drivers/irqchip/irq-apple-aic.c
> 
> 76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
> 76cde26394114f Hector Martin 2021-01-21   901  {
> 76cde26394114f Hector Martin 2021-01-21   902  	int i;
> dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
> 76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
> 76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
> 2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
> 76cde26394114f Hector Martin 2021-01-21   907  
> 76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
> 76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
> 76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
> 76cde26394114f Hector Martin 2021-01-21   911  
> 76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
> 76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
> 76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
> 76cde26394114f Hector Martin 2021-01-21   915  
> 76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
> 76cde26394114f Hector Martin 2021-01-21   917  
> 2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
> 2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
> 2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
> 2cf68211664acd Hector Martin 2022-03-10   921  
> 2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
> 2cf68211664acd Hector Martin 2022-03-10   923  
> 2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
> 2cf68211664acd Hector Martin 2022-03-10   925  
> dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> dc97fd6fec0099 Hector Martin 2022-03-10   929  
> 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> dc97fd6fec0099 Hector Martin 2022-03-10   933  
> dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> dc97fd6fec0099 Hector Martin 2022-03-10   936  
> dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> 
> "off" uninitialized if irqc->info.version != 1.

Which is pretty much impossible by construction, as as of this
particular commit, all the possible implementations have version == 1.

Subsequent patches do add cases where version == 2, and that gets
covered too.

So unless I'm missing something obvious, there is no bug here.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
  2022-06-06 11:16   ` Marc Zyngier
  (?)
@ 2022-06-06 11:25     ` Dan Carpenter
  -1 siblings, 0 replies; 14+ messages in thread
From: Dan Carpenter @ 2022-06-06 11:25 UTC (permalink / raw)
  To: Marc Zyngier; +Cc: kbuild, Hector Martin, lkp, kbuild-all, linux-kernel

On Mon, Jun 06, 2022 at 12:16:22PM +0100, Marc Zyngier wrote:
> > dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> > dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> > dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> > dc97fd6fec0099 Hector Martin 2022-03-10   929  
> > 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> > 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> > dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> > dc97fd6fec0099 Hector Martin 2022-03-10   933  
> > dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> > dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> > dc97fd6fec0099 Hector Martin 2022-03-10   936  
> > dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> > 
> > "off" uninitialized if irqc->info.version != 1.
> 
> Which is pretty much impossible by construction, as as of this
> particular commit, all the possible implementations have version == 1.
> 
> Subsequent patches do add cases where version == 2, and that gets
> covered too.
> 
> So unless I'm missing something obvious, there is no bug here.

I assumed it was something like that.  The kbuild bot doesn't do cross
function analysis.  Neither does Clang really.

regards,
dan carpenter

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:25     ` Dan Carpenter
  0 siblings, 0 replies; 14+ messages in thread
From: Dan Carpenter @ 2022-06-06 11:25 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 1468 bytes --]

On Mon, Jun 06, 2022 at 12:16:22PM +0100, Marc Zyngier wrote:
> > dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> > dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> > dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> > dc97fd6fec0099 Hector Martin 2022-03-10   929  
> > 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> > 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> > dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> > dc97fd6fec0099 Hector Martin 2022-03-10   933  
> > dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> > dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> > dc97fd6fec0099 Hector Martin 2022-03-10   936  
> > dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> > 
> > "off" uninitialized if irqc->info.version != 1.
> 
> Which is pretty much impossible by construction, as as of this
> particular commit, all the possible implementations have version == 1.
> 
> Subsequent patches do add cases where version == 2, and that gets
> covered too.
> 
> So unless I'm missing something obvious, there is no bug here.

I assumed it was something like that.  The kbuild bot doesn't do cross
function analysis.  Neither does Clang really.

regards,
dan carpenter

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-06 11:25     ` Dan Carpenter
  0 siblings, 0 replies; 14+ messages in thread
From: Dan Carpenter @ 2022-06-06 11:25 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1468 bytes --]

On Mon, Jun 06, 2022 at 12:16:22PM +0100, Marc Zyngier wrote:
> > dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> > dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> > dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> > dc97fd6fec0099 Hector Martin 2022-03-10   929  
> > 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> > 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> > dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> > dc97fd6fec0099 Hector Martin 2022-03-10   933  
> > dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> > dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> > dc97fd6fec0099 Hector Martin 2022-03-10   936  
> > dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> > 
> > "off" uninitialized if irqc->info.version != 1.
> 
> Which is pretty much impossible by construction, as as of this
> particular commit, all the possible implementations have version == 1.
> 
> Subsequent patches do add cases where version == 2, and that gets
> covered too.
> 
> So unless I'm missing something obvious, there is no bug here.

I assumed it was something like that.  The kbuild bot doesn't do cross
function analysis.  Neither does Clang really.

regards,
dan carpenter

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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2023-12-08 21:56 kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2023-12-08 21:56 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: Hector Martin <marcan@marcan.st>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f2e8a57ee9036c7d5443382b6c3c09b51a92ec7e
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
date:   1 year, 9 months ago
:::::: branch date: 76 minutes ago
:::::: commit date: 1 year, 9 months ago
config: arm64-randconfig-r081-20231127 (https://download.01.org/0day-ci/archive/20231209/202312090503.8RHRg2sn-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20231209/202312090503.8RHRg2sn-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202312090503.8RHRg2sn-lkp@intel.com/

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

b6ca556c352979 Marc Zyngier  2021-02-28   899  
76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }
76cde26394114f Hector Martin 2021-01-21  1000  

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

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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2023-12-07 20:43 kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2023-12-07 20:43 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: Hector Martin <marcan@marcan.st>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   bee0e7762ad2c6025b9f5245c040fcc36ef2bde8
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
date:   1 year, 9 months ago
:::::: branch date: 3 days ago
:::::: commit date: 1 year, 9 months ago
config: arm64-randconfig-r081-20231127 (https://download.01.org/0day-ci/archive/20231208/202312080450.6gI69Jba-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20231208/202312080450.6gI69Jba-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202312080450.6gI69Jba-lkp@intel.com/

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

b6ca556c352979 Marc Zyngier  2021-02-28   899  
76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }
76cde26394114f Hector Martin 2021-01-21  1000  

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

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

* Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
  2023-12-04  6:41 Dan Carpenter
@ 2023-12-04 10:32 ` Marc Zyngier
  0 siblings, 0 replies; 14+ messages in thread
From: Marc Zyngier @ 2023-12-04 10:32 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: oe-kbuild, Hector Martin, lkp, oe-kbuild-all, linux-kernel

On Mon, 04 Dec 2023 06:41:46 +0000,
Dan Carpenter <dan.carpenter@linaro.org> wrote:
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
> commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
> config: arm64-randconfig-r081-20231127 (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-lkp@intel.com/config)
> compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
> reproduce: (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-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>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202312032327.J915WcaL-lkp@intel.com/
> 
> New smatch warnings:
> drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
> 
> Old smatch warnings:
> drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
> drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.
> 
> vim +/off +941 drivers/irqchip/irq-apple-aic.c
> 
> 76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
> 76cde26394114f Hector Martin 2021-01-21   901  {
> 76cde26394114f Hector Martin 2021-01-21   902  	int i;
> dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
> 76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
> 76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
> 2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
> 76cde26394114f Hector Martin 2021-01-21   907  
> 76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
> 76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
> 76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
> 76cde26394114f Hector Martin 2021-01-21   911  
> 76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
> 76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
> 76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
> 76cde26394114f Hector Martin 2021-01-21   915  
> 76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
> 76cde26394114f Hector Martin 2021-01-21   917  
> 2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
> 2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
> 2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
> 2cf68211664acd Hector Martin 2022-03-10   921  
> 2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
> 2cf68211664acd Hector Martin 2022-03-10   923  
> 2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
> 2cf68211664acd Hector Martin 2022-03-10   925  
> dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
> dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
> dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
> dc97fd6fec0099 Hector Martin 2022-03-10   929  
> 76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
> 7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
> dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
> dc97fd6fec0099 Hector Martin 2022-03-10   933  
> dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
> dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
> dc97fd6fec0099 Hector Martin 2022-03-10   936  
> dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
> dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
> 
> not default statement.

This is yet another case of data-driven dependency that smatch cannot
infer easily. info.version is statically set in aic_info_match[]. 1
and 2 are the only values provided by this array, so off is never left
uninitialised.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2023-12-04  6:41 Dan Carpenter
  2023-12-04 10:32 ` Marc Zyngier
  0 siblings, 1 reply; 14+ messages in thread
From: Dan Carpenter @ 2023-12-04  6:41 UTC (permalink / raw)
  To: oe-kbuild, Hector Martin; +Cc: lkp, oe-kbuild-all, linux-kernel, Marc Zyngier

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
config: arm64-randconfig-r081-20231127 (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202312032327.J915WcaL-lkp@intel.com/

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}

not default statement.

dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }

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


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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2023-12-03 16:51 kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2023-12-03 16:51 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: Hector Martin <marcan@marcan.st>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
date:   1 year, 9 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 1 year, 9 months ago
config: arm64-randconfig-r081-20231127 (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20231203/202312032327.J915WcaL-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202312032327.J915WcaL-lkp@intel.com/

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

b6ca556c352979 Marc Zyngier  2021-02-28   899  
76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }
76cde26394114f Hector Martin 2021-01-21  1000  

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

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

* drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
@ 2022-06-04  2:29 kernel test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kernel test robot @ 2022-06-04  2:29 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 8688 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Hector Martin <marcan@marcan.st>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1f952675835bfe18d6ae494a5581724d68c52352
commit: dc97fd6fec009957e81026055fc99a03877ff3b8 irqchip/apple-aic: Dynamically compute register offsets
date:   3 months ago
:::::: branch date: 2 hours ago
:::::: commit date: 3 months ago
config: arm64-randconfig-m031-20220530 (https://download.01.org/0day-ci/archive/20220604/202206041021.KT16mbyS-lkp(a)intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.3.0

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

New smatch warnings:
drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.

Old smatch warnings:
drivers/irqchip/irq-apple-aic.c:920 aic_of_ic_init() warn: possible memory leak of 'irqc'
drivers/irqchip/irq-apple-aic.c:998 aic_of_ic_init() warn: 'regs' from of_iomap() not released on lines: 914,920.

vim +/off +941 drivers/irqchip/irq-apple-aic.c

b6ca556c352979 Marc Zyngier  2021-02-28   899  
76cde26394114f Hector Martin 2021-01-21   900  static int __init aic_of_ic_init(struct device_node *node, struct device_node *parent)
76cde26394114f Hector Martin 2021-01-21   901  {
76cde26394114f Hector Martin 2021-01-21   902  	int i;
dc97fd6fec0099 Hector Martin 2022-03-10   903  	u32 off;
76cde26394114f Hector Martin 2021-01-21   904  	void __iomem *regs;
76cde26394114f Hector Martin 2021-01-21   905  	struct aic_irq_chip *irqc;
2cf68211664acd Hector Martin 2022-03-10   906  	const struct of_device_id *match;
76cde26394114f Hector Martin 2021-01-21   907  
76cde26394114f Hector Martin 2021-01-21   908  	regs = of_iomap(node, 0);
76cde26394114f Hector Martin 2021-01-21   909  	if (WARN_ON(!regs))
76cde26394114f Hector Martin 2021-01-21   910  		return -EIO;
76cde26394114f Hector Martin 2021-01-21   911  
76cde26394114f Hector Martin 2021-01-21   912  	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
76cde26394114f Hector Martin 2021-01-21   913  	if (!irqc)
76cde26394114f Hector Martin 2021-01-21   914  		return -ENOMEM;
76cde26394114f Hector Martin 2021-01-21   915  
76cde26394114f Hector Martin 2021-01-21   916  	irqc->base = regs;
76cde26394114f Hector Martin 2021-01-21   917  
2cf68211664acd Hector Martin 2022-03-10   918  	match = of_match_node(aic_info_match, node);
2cf68211664acd Hector Martin 2022-03-10   919  	if (!match)
2cf68211664acd Hector Martin 2022-03-10   920  		return -ENODEV;
2cf68211664acd Hector Martin 2022-03-10   921  
2cf68211664acd Hector Martin 2022-03-10   922  	irqc->info = *(struct aic_info *)match->data;
2cf68211664acd Hector Martin 2022-03-10   923  
2cf68211664acd Hector Martin 2022-03-10   924  	aic_irqc = irqc;
2cf68211664acd Hector Martin 2022-03-10   925  
dc97fd6fec0099 Hector Martin 2022-03-10   926  	switch (irqc->info.version) {
dc97fd6fec0099 Hector Martin 2022-03-10   927  	case 1: {
dc97fd6fec0099 Hector Martin 2022-03-10   928  		u32 info;
dc97fd6fec0099 Hector Martin 2022-03-10   929  
76cde26394114f Hector Martin 2021-01-21   930  		info = aic_ic_read(irqc, AIC_INFO);
7c841f5f6fa3f9 Hector Martin 2022-03-10   931  		irqc->nr_irq = FIELD_GET(AIC_INFO_NR_IRQ, info);
dc97fd6fec0099 Hector Martin 2022-03-10   932  		irqc->max_irq = AIC_MAX_IRQ;
dc97fd6fec0099 Hector Martin 2022-03-10   933  
dc97fd6fec0099 Hector Martin 2022-03-10   934  		off = irqc->info.target_cpu;
dc97fd6fec0099 Hector Martin 2022-03-10   935  		off += sizeof(u32) * irqc->max_irq; /* TARGET_CPU */
dc97fd6fec0099 Hector Martin 2022-03-10   936  
dc97fd6fec0099 Hector Martin 2022-03-10   937  		break;
dc97fd6fec0099 Hector Martin 2022-03-10   938  	}
dc97fd6fec0099 Hector Martin 2022-03-10   939  	}
dc97fd6fec0099 Hector Martin 2022-03-10   940  
dc97fd6fec0099 Hector Martin 2022-03-10  @941  	irqc->info.sw_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   942  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   943  	irqc->info.sw_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   944  	off += sizeof(u32) * (irqc->max_irq >> 5); /* SW_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   945  	irqc->info.mask_set = off;
dc97fd6fec0099 Hector Martin 2022-03-10   946  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_SET */
dc97fd6fec0099 Hector Martin 2022-03-10   947  	irqc->info.mask_clr = off;
dc97fd6fec0099 Hector Martin 2022-03-10   948  	off += sizeof(u32) * (irqc->max_irq >> 5); /* MASK_CLR */
dc97fd6fec0099 Hector Martin 2022-03-10   949  	off += sizeof(u32) * (irqc->max_irq >> 5); /* HW_STATE */
76cde26394114f Hector Martin 2021-01-21   950  
2cf68211664acd Hector Martin 2022-03-10   951  	if (irqc->info.fast_ipi)
2cf68211664acd Hector Martin 2022-03-10   952  		static_branch_enable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   953  	else
2cf68211664acd Hector Martin 2022-03-10   954  		static_branch_disable(&use_fast_ipi);
2cf68211664acd Hector Martin 2022-03-10   955  
7c841f5f6fa3f9 Hector Martin 2022-03-10   956  	irqc->hw_domain = irq_domain_create_tree(of_node_to_fwnode(node),
76cde26394114f Hector Martin 2021-01-21   957  						 &aic_irq_domain_ops, irqc);
76cde26394114f Hector Martin 2021-01-21   958  	if (WARN_ON(!irqc->hw_domain)) {
76cde26394114f Hector Martin 2021-01-21   959  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   960  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   961  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   962  	}
76cde26394114f Hector Martin 2021-01-21   963  
76cde26394114f Hector Martin 2021-01-21   964  	irq_domain_update_bus_token(irqc->hw_domain, DOMAIN_BUS_WIRED);
76cde26394114f Hector Martin 2021-01-21   965  
76cde26394114f Hector Martin 2021-01-21   966  	if (aic_init_smp(irqc, node)) {
76cde26394114f Hector Martin 2021-01-21   967  		irq_domain_remove(irqc->hw_domain);
76cde26394114f Hector Martin 2021-01-21   968  		iounmap(irqc->base);
76cde26394114f Hector Martin 2021-01-21   969  		kfree(irqc);
76cde26394114f Hector Martin 2021-01-21   970  		return -ENODEV;
76cde26394114f Hector Martin 2021-01-21   971  	}
76cde26394114f Hector Martin 2021-01-21   972  
76cde26394114f Hector Martin 2021-01-21   973  	set_handle_irq(aic_handle_irq);
76cde26394114f Hector Martin 2021-01-21   974  	set_handle_fiq(aic_handle_fiq);
76cde26394114f Hector Martin 2021-01-21   975  
7c841f5f6fa3f9 Hector Martin 2022-03-10   976  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   977  		aic_ic_write(irqc, irqc->info.mask_set + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   978  	for (i = 0; i < BITS_TO_U32(irqc->nr_irq); i++)
dc97fd6fec0099 Hector Martin 2022-03-10   979  		aic_ic_write(irqc, irqc->info.sw_clr + i * 4, U32_MAX);
7c841f5f6fa3f9 Hector Martin 2022-03-10   980  	for (i = 0; i < irqc->nr_irq; i++)
dc97fd6fec0099 Hector Martin 2022-03-10   981  		aic_ic_write(irqc, irqc->info.target_cpu + i * 4, 1);
76cde26394114f Hector Martin 2021-01-21   982  
76cde26394114f Hector Martin 2021-01-21   983  	if (!is_kernel_in_hyp_mode())
76cde26394114f Hector Martin 2021-01-21   984  		pr_info("Kernel running in EL1, mapping interrupts");
76cde26394114f Hector Martin 2021-01-21   985  
2cf68211664acd Hector Martin 2022-03-10   986  	if (static_branch_likely(&use_fast_ipi))
2cf68211664acd Hector Martin 2022-03-10   987  		pr_info("Using Fast IPIs");
2cf68211664acd Hector Martin 2022-03-10   988  
76cde26394114f Hector Martin 2021-01-21   989  	cpuhp_setup_state(CPUHP_AP_IRQ_APPLE_AIC_STARTING,
76cde26394114f Hector Martin 2021-01-21   990  			  "irqchip/apple-aic/ipi:starting",
76cde26394114f Hector Martin 2021-01-21   991  			  aic_init_cpu, NULL);
76cde26394114f Hector Martin 2021-01-21   992  
b6ca556c352979 Marc Zyngier  2021-02-28   993  	vgic_set_kvm_info(&vgic_info);
b6ca556c352979 Marc Zyngier  2021-02-28   994  
dc97fd6fec0099 Hector Martin 2022-03-10   995  	pr_info("Initialized with %d/%d IRQs, %d FIQs, %d vIPIs",
dc97fd6fec0099 Hector Martin 2022-03-10   996  		irqc->nr_irq, irqc->max_irq, AIC_NR_FIQ, AIC_NR_SWIPI);
76cde26394114f Hector Martin 2021-01-21   997  
76cde26394114f Hector Martin 2021-01-21   998  	return 0;
76cde26394114f Hector Martin 2021-01-21   999  }
76cde26394114f Hector Martin 2021-01-21  1000  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

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

end of thread, other threads:[~2023-12-08 21:57 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-31 20:14 drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off' kernel test robot
2022-06-06 11:08 ` Dan Carpenter
2022-06-06 11:08 ` Dan Carpenter
2022-06-06 11:16 ` Marc Zyngier
2022-06-06 11:16   ` Marc Zyngier
2022-06-06 11:25   ` Dan Carpenter
2022-06-06 11:25     ` Dan Carpenter
2022-06-06 11:25     ` Dan Carpenter
2022-06-04  2:29 kernel test robot
2023-12-03 16:51 kernel test robot
2023-12-04  6:41 Dan Carpenter
2023-12-04 10:32 ` Marc Zyngier
2023-12-07 20:43 kernel test robot
2023-12-08 21:56 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.