All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 20377/21381] arch/arm64/kvm/vgic/vgic-init.c:524 vgic_init() warn: missing unwind goto?
@ 2026-11-01  2:09 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-11-01  2:09 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Fuad Tabba <fuad.tabba@linux.dev>
CC: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   7649ba73f9e7e1e04d0b46213e39c79ae09dd55c
commit: 25993ec8c5bb30baa746936d7a76f03c58150927 [20377/21381] KVM: arm64: vgic: Tear down what vgic_init() created when it fails
:::::: branch date: 2 days ago
:::::: commit date: 5 days ago
config: arm64-randconfig-r2200-20261031 (https://download.01.org/0day-ci/archive/20261101/202611010359.UIGFCHgh-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.5.0
smatch: v0.5.0-9187-g5189e3fb

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/202611010359.UIGFCHgh-lkp@intel.com/

smatch warnings:
arch/arm64/kvm/vgic/vgic-init.c:524 vgic_init() warn: missing unwind goto?

vim +524 arch/arm64/kvm/vgic/vgic-init.c

ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  474  
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  475  /*
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  476   * vgic_init: allocates and initializes dist and vcpu data structures
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  477   * depending on two dimensioning parameters:
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  478   * - the number of spis
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  479   * - the number of vcpus
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  480   * The function is generally called when nr_spis has been explicitly set
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  481   * by the guest through the KVM DEVICE API. If not nr_spis is set to 256.
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  482   * vgic_initialized() returns true when this function has succeeded.
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  483   */
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  484  int vgic_init(struct kvm *kvm)
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  485  {
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  486  	struct vgic_dist *dist = &kvm->arch.vgic;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  487  	struct kvm_vcpu *vcpu;
b3aa9283c0c505b arch/arm64/kvm/vgic/vgic-init.c Marc Zyngier     2025-02-12  488  	int ret = 0;
46808a4cb89708c arch/arm64/kvm/vgic/vgic-init.c Marc Zyngier     2021-11-16  489  	unsigned long idx;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  490  
f00327731131d1b arch/arm64/kvm/vgic/vgic-init.c Oliver Upton     2023-03-27  491  	lockdep_assert_held(&kvm->arch.config_lock);
f00327731131d1b arch/arm64/kvm/vgic/vgic-init.c Oliver Upton     2023-03-27  492  
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  493  	if (vgic_initialized(kvm))
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  494  		return 0;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  495  
1d47191de7e1590 virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2018-07-03  496  	/* Are we also in the middle of creating a VCPU? */
1d47191de7e1590 virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2018-07-03  497  	if (kvm->created_vcpus != atomic_read(&kvm->online_vcpus))
1d47191de7e1590 virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2018-07-03  498  		return -EBUSY;
1d47191de7e1590 virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2018-07-03  499  
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  500  	if (!vgic_is_v5(kvm)) {
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  501  		/* freeze the number of spis */
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  502  		if (!dist->nr_spis)
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  503  			dist->nr_spis = VGIC_NR_IRQS_LEGACY - VGIC_NR_PRIVATE_IRQS;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  504  
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  505  		ret = kvm_vgic_dist_init(kvm, dist->nr_spis);
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  506  		if (ret)
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  507  			return ret;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  508  
958e8e14fd24c0a virt/kvm/arm/vgic/vgic-init.c   Marc Zyngier     2020-04-24  509  		/*
82221a4e66f044a arch/arm64/kvm/vgic/vgic-init.c Oliver Upton     2025-07-23  510  		 * Ensure vPEs are allocated if direct IRQ injection (e.g. vSGIs,
82221a4e66f044a arch/arm64/kvm/vgic/vgic-init.c Oliver Upton     2025-07-23  511  		 * vLPIs) is supported.
958e8e14fd24c0a virt/kvm/arm/vgic/vgic-init.c   Marc Zyngier     2020-04-24  512  		 */
82221a4e66f044a arch/arm64/kvm/vgic/vgic-init.c Oliver Upton     2025-07-23  513  		if (vgic_supports_direct_irqs(kvm)) {
74fe55dc9ab7714 virt/kvm/arm/vgic/vgic-init.c   Marc Zyngier     2017-10-27  514  			ret = vgic_v4_init(kvm);
74fe55dc9ab7714 virt/kvm/arm/vgic/vgic-init.c   Marc Zyngier     2017-10-27  515  			if (ret)
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  516  				goto out_free_spis;
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  517  		}
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  518  	} else {
c7f62066f2cf452 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-09-04  519  		if (!dist->nr_spis)
c7f62066f2cf452 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-09-04  520  			dist->nr_spis = VGIC_V5_DEFAULT_NR_SPIS;
c7f62066f2cf452 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-09-04  521  
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  522  		ret = vgic_v5_init(kvm);
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  523  		if (ret)
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19 @524  			return ret;
f8f85dc00b7427d virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2018-01-12  525  	}
74fe55dc9ab7714 virt/kvm/arm/vgic/vgic-init.c   Marc Zyngier     2017-10-27  526  
46808a4cb89708c arch/arm64/kvm/vgic/vgic-init.c Marc Zyngier     2021-11-16  527  	kvm_for_each_vcpu(idx, vcpu, kvm)
f04b8a5a83dbaff arch/arm64/kvm/vgic/vgic-init.c Marc Zyngier     2025-11-20  528  		kvm_vgic_vcpu_reset(vcpu);
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  529  
180ae7b1182344c virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2016-07-22  530  	ret = kvm_vgic_setup_default_irq_routing(kvm);
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  531  	if (ret)
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  532  		goto out_teardown;
180ae7b1182344c virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2016-07-22  533  
10f92c4c537794f virt/kvm/arm/vgic/vgic-init.c   Christoffer Dall 2017-01-17  534  	vgic_debug_init(kvm);
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  535  	dist->initialized = true;
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  536  
f4d37c7c3576957 arch/arm64/kvm/vgic/vgic-init.c Sascha Bischoff  2026-03-19  537  	return 0;
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  538  
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  539  out_teardown:
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  540  	if (vgic_is_v5(kvm))
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  541  		vgic_v5_teardown(kvm);
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  542  	else
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  543  		vgic_v4_teardown(kvm);
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  544  out_free_spis:
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  545  	kfree(dist->spis);
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  546  	dist->spis = NULL;
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  547  
25993ec8c5bb30b arch/arm64/kvm/vgic/vgic-init.c Fuad Tabba       2026-09-21  548  	return ret;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  549  }
ad275b8bb1e659b virt/kvm/arm/vgic/vgic-init.c   Eric Auger       2015-12-21  550  

:::::: The code at line 524 was first introduced by commit
:::::: f4d37c7c35769579c51aa5fe00161c690b89811d KVM: arm64: gic-v5: Create and initialise vgic_v5

:::::: TO: Sascha Bischoff <Sascha.Bischoff@arm.com>
:::::: CC: Marc Zyngier <maz@kernel.org>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-01  2:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-01  2:09 [linux-next:master 20377/21381] arch/arm64/kvm/vgic/vgic-init.c:524 vgic_init() warn: missing unwind goto? 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.