All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: kbuild@lists.01.org, Hector Martin <marcan@marcan.st>,
	lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org
Subject: Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
Date: Mon, 06 Jun 2022 12:16:22 +0100	[thread overview]
Message-ID: <87zgiq3uux.wl-maz@kernel.org> (raw)
In-Reply-To: <202206010439.LRgjym7t-lkp@intel.com>

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.

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: drivers/irqchip/irq-apple-aic.c:941 aic_of_ic_init() error: uninitialized symbol 'off'.
Date: Mon, 06 Jun 2022 12:16:22 +0100	[thread overview]
Message-ID: <87zgiq3uux.wl-maz@kernel.org> (raw)
In-Reply-To: <202206010439.LRgjym7t-lkp@intel.com>

[-- 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.

  reply	other threads:[~2022-06-06 11:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

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=87zgiq3uux.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=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 \
    /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.