From: kernel test robot <lkp@intel.com>
To: Anup Patel <apatel@ventanamicro.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
linux-kernel@vger.kernel.org
Subject: [avpatel:riscv_kvm_aia_v1 34/35] arch/riscv/kvm/aia_aplic.c:264:6: warning: variable 'inject' is used uninitialized whenever 'if' condition is true
Date: Tue, 10 May 2022 08:44:25 +0800 [thread overview]
Message-ID: <202205100811.BAMM4bPO-lkp@intel.com> (raw)
tree: https://github.com/avpatel/linux.git riscv_kvm_aia_v1
head: 2622f5aa2f4ccb93fdd771e7503ca364c6a290d4
commit: cd81051cd1fc8eeb4629c0f3b71cf570e4a7d436 [34/35] RISC-V: KVM: Add in-kernel emulation of AIA APLIC
config: riscv-randconfig-r004-20220509 (https://download.01.org/0day-ci/archive/20220510/202205100811.BAMM4bPO-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a385645b470e2d3a1534aae618ea56b31177639f)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/avpatel/linux/commit/cd81051cd1fc8eeb4629c0f3b71cf570e4a7d436
git remote add avpatel https://github.com/avpatel/linux.git
git fetch --no-tags avpatel riscv_kvm_aia_v1
git checkout cd81051cd1fc8eeb4629c0f3b71cf570e4a7d436
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> arch/riscv/kvm/aia_aplic.c:264:6: warning: variable 'inject' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (irqd->sourcecfg & APLIC_SOURCECFG_D)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/riscv/kvm/aia_aplic.c:303:6: note: uninitialized use occurs here
if (inject)
^~~~~~
arch/riscv/kvm/aia_aplic.c:264:2: note: remove the 'if' if its condition is always false
if (irqd->sourcecfg & APLIC_SOURCECFG_D)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/riscv/kvm/aia_aplic.c:252:13: note: initialize the variable 'inject' to silence this warning
bool inject, ie;
^
= 0
1 warning generated.
vim +264 arch/riscv/kvm/aia_aplic.c
248
249 int kvm_riscv_aia_aplic_inject(struct kvm *kvm, u32 source, bool level)
250 {
251 u32 target;
252 bool inject, ie;
253 unsigned long flags;
254 struct aplic_irq *irqd;
255 struct aplic *aplic = kvm->arch.aia.aplic_state;
256
257 if (!aplic || !source || (aplic->nr_irqs <= source))
258 return -ENODEV;
259 irqd = &aplic->irqs[source];
260 ie = (aplic->domaincfg & APLIC_DOMAINCFG_IE) ? true : false;
261
262 raw_spin_lock_irqsave(&irqd->lock, flags);
263
> 264 if (irqd->sourcecfg & APLIC_SOURCECFG_D)
265 goto skip_unlock;
266
267 switch (irqd->sourcecfg & APLIC_SOURCECFG_SM_MASK) {
268 case APLIC_SOURCECFG_SM_EDGE_RISE:
269 if (level && !(irqd->state & APLIC_IRQ_STATE_INPUT) &&
270 !(irqd->state & APLIC_IRQ_STATE_PENDING))
271 irqd->state |= APLIC_IRQ_STATE_PENDING;
272 break;
273 case APLIC_SOURCECFG_SM_EDGE_FALL:
274 if (!level && (irqd->state & APLIC_IRQ_STATE_INPUT) &&
275 !(irqd->state & APLIC_IRQ_STATE_PENDING))
276 irqd->state |= APLIC_IRQ_STATE_PENDING;
277 break;
278 case APLIC_SOURCECFG_SM_LEVEL_HIGH:
279 if (level && !(irqd->state & APLIC_IRQ_STATE_PENDING))
280 irqd->state |= APLIC_IRQ_STATE_PENDING;
281 break;
282 case APLIC_SOURCECFG_SM_LEVEL_LOW:
283 if (!level && !(irqd->state & APLIC_IRQ_STATE_PENDING))
284 irqd->state |= APLIC_IRQ_STATE_PENDING;
285 break;
286 }
287
288 if (level)
289 irqd->state |= APLIC_IRQ_STATE_INPUT;
290 else
291 irqd->state &= ~APLIC_IRQ_STATE_INPUT;
292
293 inject = false;
294 target = irqd->target;
295 if (ie && (irqd->state & APLIC_IRQ_STATE_ENPEND)) {
296 irqd->state &= ~APLIC_IRQ_STATE_PENDING;
297 inject = true;
298 }
299
300 skip_unlock:
301 raw_spin_unlock_irqrestore(&irqd->lock, flags);
302
303 if (inject)
304 aplic_inject_msi(kvm, source, target);
305
306 return 0;
307 }
308
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-05-10 0:45 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202205100811.BAMM4bPO-lkp@intel.com \
--to=lkp@intel.com \
--cc=apatel@ventanamicro.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).