All of lore.kernel.org
 help / color / mirror / Atom feed
* [kvm:queue 329/331] arch/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false
@ 2021-06-24  4:31 ` kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-06-24  4:31 UTC (permalink / raw)
  To: Aaron Lewis
  Cc: kbuild-all, clang-built-linux, kvm, Robert Hu, Farrah Chen,
	Danmei Wei, Paolo Bonzini, David Edmondson, Jim Mattson

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

tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head:   42ac670e03c13e78b43177569bea49540d22661e
commit: 3bd33d3f648e99bdf93f327f2abc40962d740b9c [329/331] kvm: x86: Allow userspace to handle emulation errors
config: x86_64-randconfig-a002-20210622 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=3bd33d3f648e99bdf93f327f2abc40962d740b9c
        git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
        git fetch --no-tags kvm queue
        git checkout 3bd33d3f648e99bdf93f327f2abc40962d740b9c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                   if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/x86.c:5660:9: note: uninitialized use occurs here
           return r;
                  ^
   arch/x86/kvm/x86.c:5646:3: note: remove the 'if' if its condition is always true
                   if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/x86.c:5537:7: note: initialize the variable 'r' to silence this warning
           int r;
                ^
                 = 0
   1 warning generated.


vim +5646 arch/x86/kvm/x86.c

23d43cf998275b Christoffer Dall    2012-07-24  5533  
e5d83c74a5800c Paolo Bonzini       2017-02-16  5534  int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
90de4a1875180f Nadav Amit          2015-04-13  5535  			    struct kvm_enable_cap *cap)
90de4a1875180f Nadav Amit          2015-04-13  5536  {
90de4a1875180f Nadav Amit          2015-04-13  5537  	int r;
90de4a1875180f Nadav Amit          2015-04-13  5538  
90de4a1875180f Nadav Amit          2015-04-13  5539  	if (cap->flags)
90de4a1875180f Nadav Amit          2015-04-13  5540  		return -EINVAL;
90de4a1875180f Nadav Amit          2015-04-13  5541  
90de4a1875180f Nadav Amit          2015-04-13  5542  	switch (cap->cap) {
90de4a1875180f Nadav Amit          2015-04-13  5543  	case KVM_CAP_DISABLE_QUIRKS:
90de4a1875180f Nadav Amit          2015-04-13  5544  		kvm->arch.disabled_quirks = cap->args[0];
90de4a1875180f Nadav Amit          2015-04-13  5545  		r = 0;
90de4a1875180f Nadav Amit          2015-04-13  5546  		break;
49df6397edfc5a Steve Rutherford    2015-07-29  5547  	case KVM_CAP_SPLIT_IRQCHIP: {
49df6397edfc5a Steve Rutherford    2015-07-29  5548  		mutex_lock(&kvm->lock);
b053b2aef25d00 Steve Rutherford    2015-07-29  5549  		r = -EINVAL;
b053b2aef25d00 Steve Rutherford    2015-07-29  5550  		if (cap->args[0] > MAX_NR_RESERVED_IOAPIC_PINS)
b053b2aef25d00 Steve Rutherford    2015-07-29  5551  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5552  		r = -EEXIST;
49df6397edfc5a Steve Rutherford    2015-07-29  5553  		if (irqchip_in_kernel(kvm))
49df6397edfc5a Steve Rutherford    2015-07-29  5554  			goto split_irqchip_unlock;
557abc40d12135 Paolo Bonzini       2016-06-13  5555  		if (kvm->created_vcpus)
49df6397edfc5a Steve Rutherford    2015-07-29  5556  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5557  		r = kvm_setup_empty_irq_routing(kvm);
5c0aea0e8d98e3 David Hildenbrand   2017-04-28  5558  		if (r)
49df6397edfc5a Steve Rutherford    2015-07-29  5559  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5560  		/* Pairs with irqchip_in_kernel. */
49df6397edfc5a Steve Rutherford    2015-07-29  5561  		smp_wmb();
49776faf93f807 Radim Krčmář        2016-12-16  5562  		kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT;
b053b2aef25d00 Steve Rutherford    2015-07-29  5563  		kvm->arch.nr_reserved_ioapic_pins = cap->args[0];
49df6397edfc5a Steve Rutherford    2015-07-29  5564  		r = 0;
49df6397edfc5a Steve Rutherford    2015-07-29  5565  split_irqchip_unlock:
49df6397edfc5a Steve Rutherford    2015-07-29  5566  		mutex_unlock(&kvm->lock);
49df6397edfc5a Steve Rutherford    2015-07-29  5567  		break;
49df6397edfc5a Steve Rutherford    2015-07-29  5568  	}
3713131345fbea Radim Krčmář        2016-07-12  5569  	case KVM_CAP_X2APIC_API:
3713131345fbea Radim Krčmář        2016-07-12  5570  		r = -EINVAL;
3713131345fbea Radim Krčmář        2016-07-12  5571  		if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS)
3713131345fbea Radim Krčmář        2016-07-12  5572  			break;
3713131345fbea Radim Krčmář        2016-07-12  5573  
3713131345fbea Radim Krčmář        2016-07-12  5574  		if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS)
3713131345fbea Radim Krčmář        2016-07-12  5575  			kvm->arch.x2apic_format = true;
c519265f2aa348 Radim Krčmář        2016-07-12  5576  		if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
c519265f2aa348 Radim Krčmář        2016-07-12  5577  			kvm->arch.x2apic_broadcast_quirk_disabled = true;
3713131345fbea Radim Krčmář        2016-07-12  5578  
3713131345fbea Radim Krčmář        2016-07-12  5579  		r = 0;
3713131345fbea Radim Krčmář        2016-07-12  5580  		break;
4d5422cea3b61f Wanpeng Li          2018-03-12  5581  	case KVM_CAP_X86_DISABLE_EXITS:
4d5422cea3b61f Wanpeng Li          2018-03-12  5582  		r = -EINVAL;
4d5422cea3b61f Wanpeng Li          2018-03-12  5583  		if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS)
4d5422cea3b61f Wanpeng Li          2018-03-12  5584  			break;
4d5422cea3b61f Wanpeng Li          2018-03-12  5585  
4d5422cea3b61f Wanpeng Li          2018-03-12  5586  		if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
4d5422cea3b61f Wanpeng Li          2018-03-12  5587  			kvm_can_mwait_in_guest())
4d5422cea3b61f Wanpeng Li          2018-03-12  5588  			kvm->arch.mwait_in_guest = true;
766d3571d8e50d Michael S. Tsirkin  2018-06-08  5589  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
caa057a2cad647 Wanpeng Li          2018-03-12  5590  			kvm->arch.hlt_in_guest = true;
b31c114b82b2b5 Wanpeng Li          2018-03-12  5591  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE)
b31c114b82b2b5 Wanpeng Li          2018-03-12  5592  			kvm->arch.pause_in_guest = true;
b51700632e0e53 Wanpeng Li          2019-05-21  5593  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
b51700632e0e53 Wanpeng Li          2019-05-21  5594  			kvm->arch.cstate_in_guest = true;
4d5422cea3b61f Wanpeng Li          2018-03-12  5595  		r = 0;
4d5422cea3b61f Wanpeng Li          2018-03-12  5596  		break;
6fbbde9a1969df Drew Schmitt        2018-08-20  5597  	case KVM_CAP_MSR_PLATFORM_INFO:
6fbbde9a1969df Drew Schmitt        2018-08-20  5598  		kvm->arch.guest_can_read_msr_platform_info = cap->args[0];
6fbbde9a1969df Drew Schmitt        2018-08-20  5599  		r = 0;
c4f55198c7c2b8 Jim Mattson         2018-10-16  5600  		break;
c4f55198c7c2b8 Jim Mattson         2018-10-16  5601  	case KVM_CAP_EXCEPTION_PAYLOAD:
c4f55198c7c2b8 Jim Mattson         2018-10-16  5602  		kvm->arch.exception_payload_enabled = cap->args[0];
c4f55198c7c2b8 Jim Mattson         2018-10-16  5603  		r = 0;
6fbbde9a1969df Drew Schmitt        2018-08-20  5604  		break;
1ae099540e8c7f Alexander Graf      2020-09-25  5605  	case KVM_CAP_X86_USER_SPACE_MSR:
1ae099540e8c7f Alexander Graf      2020-09-25  5606  		kvm->arch.user_space_msr_mask = cap->args[0];
1ae099540e8c7f Alexander Graf      2020-09-25  5607  		r = 0;
1ae099540e8c7f Alexander Graf      2020-09-25  5608  		break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5609  	case KVM_CAP_X86_BUS_LOCK_EXIT:
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5610  		r = -EINVAL;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5611  		if (cap->args[0] & ~KVM_BUS_LOCK_DETECTION_VALID_MODE)
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5612  			break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5613  
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5614  		if ((cap->args[0] & KVM_BUS_LOCK_DETECTION_OFF) &&
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5615  		    (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT))
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5616  			break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5617  
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5618  		if (kvm_has_bus_lock_exit &&
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5619  		    cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT)
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5620  			kvm->arch.bus_lock_detection_enabled = true;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5621  		r = 0;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5622  		break;
fe7e948837f312 Sean Christopherson 2021-04-12  5623  #ifdef CONFIG_X86_SGX_KVM
fe7e948837f312 Sean Christopherson 2021-04-12  5624  	case KVM_CAP_SGX_ATTRIBUTE: {
fe7e948837f312 Sean Christopherson 2021-04-12  5625  		unsigned long allowed_attributes = 0;
fe7e948837f312 Sean Christopherson 2021-04-12  5626  
fe7e948837f312 Sean Christopherson 2021-04-12  5627  		r = sgx_set_attribute(&allowed_attributes, cap->args[0]);
fe7e948837f312 Sean Christopherson 2021-04-12  5628  		if (r)
fe7e948837f312 Sean Christopherson 2021-04-12  5629  			break;
fe7e948837f312 Sean Christopherson 2021-04-12  5630  
fe7e948837f312 Sean Christopherson 2021-04-12  5631  		/* KVM only supports the PROVISIONKEY privileged attribute. */
fe7e948837f312 Sean Christopherson 2021-04-12  5632  		if ((allowed_attributes & SGX_ATTR_PROVISIONKEY) &&
fe7e948837f312 Sean Christopherson 2021-04-12  5633  		    !(allowed_attributes & ~SGX_ATTR_PROVISIONKEY))
fe7e948837f312 Sean Christopherson 2021-04-12  5634  			kvm->arch.sgx_provisioning_allowed = true;
fe7e948837f312 Sean Christopherson 2021-04-12  5635  		else
fe7e948837f312 Sean Christopherson 2021-04-12  5636  			r = -EINVAL;
fe7e948837f312 Sean Christopherson 2021-04-12  5637  		break;
fe7e948837f312 Sean Christopherson 2021-04-12  5638  	}
fe7e948837f312 Sean Christopherson 2021-04-12  5639  #endif
54526d1fd59338 Nathan Tempelman    2021-04-08  5640  	case KVM_CAP_VM_COPY_ENC_CONTEXT_FROM:
54526d1fd59338 Nathan Tempelman    2021-04-08  5641  		r = -EINVAL;
54526d1fd59338 Nathan Tempelman    2021-04-08  5642  		if (kvm_x86_ops.vm_copy_enc_context_from)
54526d1fd59338 Nathan Tempelman    2021-04-08  5643  			r = kvm_x86_ops.vm_copy_enc_context_from(kvm, cap->args[0]);
54526d1fd59338 Nathan Tempelman    2021-04-08  5644  		return r;
0dbb1123043789 Ashish Kalra        2021-06-08  5645  	case KVM_CAP_EXIT_HYPERCALL:
0dbb1123043789 Ashish Kalra        2021-06-08 @5646  		if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
0dbb1123043789 Ashish Kalra        2021-06-08  5647  			r = -EINVAL;
0dbb1123043789 Ashish Kalra        2021-06-08  5648  			break;
0dbb1123043789 Ashish Kalra        2021-06-08  5649  		}
0dbb1123043789 Ashish Kalra        2021-06-08  5650  		kvm->arch.hypercall_exit_enabled = cap->args[0];
3bd33d3f648e99 Aaron Lewis         2021-05-10  5651  		break;
3bd33d3f648e99 Aaron Lewis         2021-05-10  5652  	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
3bd33d3f648e99 Aaron Lewis         2021-05-10  5653  		kvm->arch.exit_on_emulation_error = cap->args[0];
0dbb1123043789 Ashish Kalra        2021-06-08  5654  		r = 0;
0dbb1123043789 Ashish Kalra        2021-06-08  5655  		break;
90de4a1875180f Nadav Amit          2015-04-13  5656  	default:
90de4a1875180f Nadav Amit          2015-04-13  5657  		r = -EINVAL;
90de4a1875180f Nadav Amit          2015-04-13  5658  		break;
90de4a1875180f Nadav Amit          2015-04-13  5659  	}
90de4a1875180f Nadav Amit          2015-04-13  5660  	return r;
90de4a1875180f Nadav Amit          2015-04-13  5661  }
90de4a1875180f Nadav Amit          2015-04-13  5662  

:::::: The code at line 5646 was first introduced by commit
:::::: 0dbb11230437895f7cd6fc55da61cef011e997d8 KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall

:::::: TO: Ashish Kalra <ashish.kalra@amd.com>
:::::: CC: Paolo Bonzini <pbonzini@redhat.com>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 43071 bytes --]

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

* [kvm:queue 329/331] arch/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false
@ 2021-06-24  4:31 ` kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-06-24  4:31 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head:   42ac670e03c13e78b43177569bea49540d22661e
commit: 3bd33d3f648e99bdf93f327f2abc40962d740b9c [329/331] kvm: x86: Allow userspace to handle emulation errors
config: x86_64-randconfig-a002-20210622 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=3bd33d3f648e99bdf93f327f2abc40962d740b9c
        git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
        git fetch --no-tags kvm queue
        git checkout 3bd33d3f648e99bdf93f327f2abc40962d740b9c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                   if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/x86.c:5660:9: note: uninitialized use occurs here
           return r;
                  ^
   arch/x86/kvm/x86.c:5646:3: note: remove the 'if' if its condition is always true
                   if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/kvm/x86.c:5537:7: note: initialize the variable 'r' to silence this warning
           int r;
                ^
                 = 0
   1 warning generated.


vim +5646 arch/x86/kvm/x86.c

23d43cf998275b Christoffer Dall    2012-07-24  5533  
e5d83c74a5800c Paolo Bonzini       2017-02-16  5534  int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
90de4a1875180f Nadav Amit          2015-04-13  5535  			    struct kvm_enable_cap *cap)
90de4a1875180f Nadav Amit          2015-04-13  5536  {
90de4a1875180f Nadav Amit          2015-04-13  5537  	int r;
90de4a1875180f Nadav Amit          2015-04-13  5538  
90de4a1875180f Nadav Amit          2015-04-13  5539  	if (cap->flags)
90de4a1875180f Nadav Amit          2015-04-13  5540  		return -EINVAL;
90de4a1875180f Nadav Amit          2015-04-13  5541  
90de4a1875180f Nadav Amit          2015-04-13  5542  	switch (cap->cap) {
90de4a1875180f Nadav Amit          2015-04-13  5543  	case KVM_CAP_DISABLE_QUIRKS:
90de4a1875180f Nadav Amit          2015-04-13  5544  		kvm->arch.disabled_quirks = cap->args[0];
90de4a1875180f Nadav Amit          2015-04-13  5545  		r = 0;
90de4a1875180f Nadav Amit          2015-04-13  5546  		break;
49df6397edfc5a Steve Rutherford    2015-07-29  5547  	case KVM_CAP_SPLIT_IRQCHIP: {
49df6397edfc5a Steve Rutherford    2015-07-29  5548  		mutex_lock(&kvm->lock);
b053b2aef25d00 Steve Rutherford    2015-07-29  5549  		r = -EINVAL;
b053b2aef25d00 Steve Rutherford    2015-07-29  5550  		if (cap->args[0] > MAX_NR_RESERVED_IOAPIC_PINS)
b053b2aef25d00 Steve Rutherford    2015-07-29  5551  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5552  		r = -EEXIST;
49df6397edfc5a Steve Rutherford    2015-07-29  5553  		if (irqchip_in_kernel(kvm))
49df6397edfc5a Steve Rutherford    2015-07-29  5554  			goto split_irqchip_unlock;
557abc40d12135 Paolo Bonzini       2016-06-13  5555  		if (kvm->created_vcpus)
49df6397edfc5a Steve Rutherford    2015-07-29  5556  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5557  		r = kvm_setup_empty_irq_routing(kvm);
5c0aea0e8d98e3 David Hildenbrand   2017-04-28  5558  		if (r)
49df6397edfc5a Steve Rutherford    2015-07-29  5559  			goto split_irqchip_unlock;
49df6397edfc5a Steve Rutherford    2015-07-29  5560  		/* Pairs with irqchip_in_kernel. */
49df6397edfc5a Steve Rutherford    2015-07-29  5561  		smp_wmb();
49776faf93f807 Radim Krčmář        2016-12-16  5562  		kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT;
b053b2aef25d00 Steve Rutherford    2015-07-29  5563  		kvm->arch.nr_reserved_ioapic_pins = cap->args[0];
49df6397edfc5a Steve Rutherford    2015-07-29  5564  		r = 0;
49df6397edfc5a Steve Rutherford    2015-07-29  5565  split_irqchip_unlock:
49df6397edfc5a Steve Rutherford    2015-07-29  5566  		mutex_unlock(&kvm->lock);
49df6397edfc5a Steve Rutherford    2015-07-29  5567  		break;
49df6397edfc5a Steve Rutherford    2015-07-29  5568  	}
3713131345fbea Radim Krčmář        2016-07-12  5569  	case KVM_CAP_X2APIC_API:
3713131345fbea Radim Krčmář        2016-07-12  5570  		r = -EINVAL;
3713131345fbea Radim Krčmář        2016-07-12  5571  		if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS)
3713131345fbea Radim Krčmář        2016-07-12  5572  			break;
3713131345fbea Radim Krčmář        2016-07-12  5573  
3713131345fbea Radim Krčmář        2016-07-12  5574  		if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS)
3713131345fbea Radim Krčmář        2016-07-12  5575  			kvm->arch.x2apic_format = true;
c519265f2aa348 Radim Krčmář        2016-07-12  5576  		if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
c519265f2aa348 Radim Krčmář        2016-07-12  5577  			kvm->arch.x2apic_broadcast_quirk_disabled = true;
3713131345fbea Radim Krčmář        2016-07-12  5578  
3713131345fbea Radim Krčmář        2016-07-12  5579  		r = 0;
3713131345fbea Radim Krčmář        2016-07-12  5580  		break;
4d5422cea3b61f Wanpeng Li          2018-03-12  5581  	case KVM_CAP_X86_DISABLE_EXITS:
4d5422cea3b61f Wanpeng Li          2018-03-12  5582  		r = -EINVAL;
4d5422cea3b61f Wanpeng Li          2018-03-12  5583  		if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS)
4d5422cea3b61f Wanpeng Li          2018-03-12  5584  			break;
4d5422cea3b61f Wanpeng Li          2018-03-12  5585  
4d5422cea3b61f Wanpeng Li          2018-03-12  5586  		if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
4d5422cea3b61f Wanpeng Li          2018-03-12  5587  			kvm_can_mwait_in_guest())
4d5422cea3b61f Wanpeng Li          2018-03-12  5588  			kvm->arch.mwait_in_guest = true;
766d3571d8e50d Michael S. Tsirkin  2018-06-08  5589  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
caa057a2cad647 Wanpeng Li          2018-03-12  5590  			kvm->arch.hlt_in_guest = true;
b31c114b82b2b5 Wanpeng Li          2018-03-12  5591  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE)
b31c114b82b2b5 Wanpeng Li          2018-03-12  5592  			kvm->arch.pause_in_guest = true;
b51700632e0e53 Wanpeng Li          2019-05-21  5593  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
b51700632e0e53 Wanpeng Li          2019-05-21  5594  			kvm->arch.cstate_in_guest = true;
4d5422cea3b61f Wanpeng Li          2018-03-12  5595  		r = 0;
4d5422cea3b61f Wanpeng Li          2018-03-12  5596  		break;
6fbbde9a1969df Drew Schmitt        2018-08-20  5597  	case KVM_CAP_MSR_PLATFORM_INFO:
6fbbde9a1969df Drew Schmitt        2018-08-20  5598  		kvm->arch.guest_can_read_msr_platform_info = cap->args[0];
6fbbde9a1969df Drew Schmitt        2018-08-20  5599  		r = 0;
c4f55198c7c2b8 Jim Mattson         2018-10-16  5600  		break;
c4f55198c7c2b8 Jim Mattson         2018-10-16  5601  	case KVM_CAP_EXCEPTION_PAYLOAD:
c4f55198c7c2b8 Jim Mattson         2018-10-16  5602  		kvm->arch.exception_payload_enabled = cap->args[0];
c4f55198c7c2b8 Jim Mattson         2018-10-16  5603  		r = 0;
6fbbde9a1969df Drew Schmitt        2018-08-20  5604  		break;
1ae099540e8c7f Alexander Graf      2020-09-25  5605  	case KVM_CAP_X86_USER_SPACE_MSR:
1ae099540e8c7f Alexander Graf      2020-09-25  5606  		kvm->arch.user_space_msr_mask = cap->args[0];
1ae099540e8c7f Alexander Graf      2020-09-25  5607  		r = 0;
1ae099540e8c7f Alexander Graf      2020-09-25  5608  		break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5609  	case KVM_CAP_X86_BUS_LOCK_EXIT:
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5610  		r = -EINVAL;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5611  		if (cap->args[0] & ~KVM_BUS_LOCK_DETECTION_VALID_MODE)
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5612  			break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5613  
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5614  		if ((cap->args[0] & KVM_BUS_LOCK_DETECTION_OFF) &&
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5615  		    (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT))
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5616  			break;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5617  
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5618  		if (kvm_has_bus_lock_exit &&
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5619  		    cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT)
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5620  			kvm->arch.bus_lock_detection_enabled = true;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5621  		r = 0;
fe6b6bc802b400 Chenyi Qiang        2020-11-06  5622  		break;
fe7e948837f312 Sean Christopherson 2021-04-12  5623  #ifdef CONFIG_X86_SGX_KVM
fe7e948837f312 Sean Christopherson 2021-04-12  5624  	case KVM_CAP_SGX_ATTRIBUTE: {
fe7e948837f312 Sean Christopherson 2021-04-12  5625  		unsigned long allowed_attributes = 0;
fe7e948837f312 Sean Christopherson 2021-04-12  5626  
fe7e948837f312 Sean Christopherson 2021-04-12  5627  		r = sgx_set_attribute(&allowed_attributes, cap->args[0]);
fe7e948837f312 Sean Christopherson 2021-04-12  5628  		if (r)
fe7e948837f312 Sean Christopherson 2021-04-12  5629  			break;
fe7e948837f312 Sean Christopherson 2021-04-12  5630  
fe7e948837f312 Sean Christopherson 2021-04-12  5631  		/* KVM only supports the PROVISIONKEY privileged attribute. */
fe7e948837f312 Sean Christopherson 2021-04-12  5632  		if ((allowed_attributes & SGX_ATTR_PROVISIONKEY) &&
fe7e948837f312 Sean Christopherson 2021-04-12  5633  		    !(allowed_attributes & ~SGX_ATTR_PROVISIONKEY))
fe7e948837f312 Sean Christopherson 2021-04-12  5634  			kvm->arch.sgx_provisioning_allowed = true;
fe7e948837f312 Sean Christopherson 2021-04-12  5635  		else
fe7e948837f312 Sean Christopherson 2021-04-12  5636  			r = -EINVAL;
fe7e948837f312 Sean Christopherson 2021-04-12  5637  		break;
fe7e948837f312 Sean Christopherson 2021-04-12  5638  	}
fe7e948837f312 Sean Christopherson 2021-04-12  5639  #endif
54526d1fd59338 Nathan Tempelman    2021-04-08  5640  	case KVM_CAP_VM_COPY_ENC_CONTEXT_FROM:
54526d1fd59338 Nathan Tempelman    2021-04-08  5641  		r = -EINVAL;
54526d1fd59338 Nathan Tempelman    2021-04-08  5642  		if (kvm_x86_ops.vm_copy_enc_context_from)
54526d1fd59338 Nathan Tempelman    2021-04-08  5643  			r = kvm_x86_ops.vm_copy_enc_context_from(kvm, cap->args[0]);
54526d1fd59338 Nathan Tempelman    2021-04-08  5644  		return r;
0dbb1123043789 Ashish Kalra        2021-06-08  5645  	case KVM_CAP_EXIT_HYPERCALL:
0dbb1123043789 Ashish Kalra        2021-06-08 @5646  		if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
0dbb1123043789 Ashish Kalra        2021-06-08  5647  			r = -EINVAL;
0dbb1123043789 Ashish Kalra        2021-06-08  5648  			break;
0dbb1123043789 Ashish Kalra        2021-06-08  5649  		}
0dbb1123043789 Ashish Kalra        2021-06-08  5650  		kvm->arch.hypercall_exit_enabled = cap->args[0];
3bd33d3f648e99 Aaron Lewis         2021-05-10  5651  		break;
3bd33d3f648e99 Aaron Lewis         2021-05-10  5652  	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
3bd33d3f648e99 Aaron Lewis         2021-05-10  5653  		kvm->arch.exit_on_emulation_error = cap->args[0];
0dbb1123043789 Ashish Kalra        2021-06-08  5654  		r = 0;
0dbb1123043789 Ashish Kalra        2021-06-08  5655  		break;
90de4a1875180f Nadav Amit          2015-04-13  5656  	default:
90de4a1875180f Nadav Amit          2015-04-13  5657  		r = -EINVAL;
90de4a1875180f Nadav Amit          2015-04-13  5658  		break;
90de4a1875180f Nadav Amit          2015-04-13  5659  	}
90de4a1875180f Nadav Amit          2015-04-13  5660  	return r;
90de4a1875180f Nadav Amit          2015-04-13  5661  }
90de4a1875180f Nadav Amit          2015-04-13  5662  

:::::: The code at line 5646 was first introduced by commit
:::::: 0dbb11230437895f7cd6fc55da61cef011e997d8 KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall

:::::: TO: Ashish Kalra <ashish.kalra@amd.com>
:::::: CC: Paolo Bonzini <pbonzini@redhat.com>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 43071 bytes --]

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

* Re: [kvm:queue 329/331] arch/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false
  2021-06-24  4:31 ` kernel test robot
@ 2021-06-24  7:36   ` Paolo Bonzini
  -1 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2021-06-24  7:36 UTC (permalink / raw)
  To: kernel test robot, Aaron Lewis
  Cc: kbuild-all, clang-built-linux, kvm, Robert Hu, Farrah Chen,
	Danmei Wei, David Edmondson, Jim Mattson

On 24/06/21 06:31, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head:   42ac670e03c13e78b43177569bea49540d22661e
> commit: 3bd33d3f648e99bdf93f327f2abc40962d740b9c [329/331] kvm: x86: Allow userspace to handle emulation errors
> config: x86_64-randconfig-a002-20210622 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65)
> 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 x86_64 cross compiling tool for clang build
>          # apt-get install binutils-x86-64-linux-gnu
>          # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=3bd33d3f648e99bdf93f327f2abc40962d740b9c
>          git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
>          git fetch --no-tags kvm queue
>          git checkout 3bd33d3f648e99bdf93f327f2abc40962d740b9c
>          # save the attached .config to linux build tree
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

Botched conflict resolution, fixed now.

Paolo

> 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/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
>                     if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     arch/x86/kvm/x86.c:5660:9: note: uninitialized use occurs here
>             return r;
>                    ^
>     arch/x86/kvm/x86.c:5646:3: note: remove the 'if' if its condition is always true
>                     if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     arch/x86/kvm/x86.c:5537:7: note: initialize the variable 'r' to silence this warning
>             int r;
>                  ^
>                   = 0
>     1 warning generated.
> 
> 
> vim +5646 arch/x86/kvm/x86.c
> 
> 23d43cf998275b Christoffer Dall    2012-07-24  5533
> e5d83c74a5800c Paolo Bonzini       2017-02-16  5534  int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
> 90de4a1875180f Nadav Amit          2015-04-13  5535  			    struct kvm_enable_cap *cap)
> 90de4a1875180f Nadav Amit          2015-04-13  5536  {
> 90de4a1875180f Nadav Amit          2015-04-13  5537  	int r;
> 90de4a1875180f Nadav Amit          2015-04-13  5538
> 90de4a1875180f Nadav Amit          2015-04-13  5539  	if (cap->flags)
> 90de4a1875180f Nadav Amit          2015-04-13  5540  		return -EINVAL;
> 90de4a1875180f Nadav Amit          2015-04-13  5541
> 90de4a1875180f Nadav Amit          2015-04-13  5542  	switch (cap->cap) {
> 90de4a1875180f Nadav Amit          2015-04-13  5543  	case KVM_CAP_DISABLE_QUIRKS:
> 90de4a1875180f Nadav Amit          2015-04-13  5544  		kvm->arch.disabled_quirks = cap->args[0];
> 90de4a1875180f Nadav Amit          2015-04-13  5545  		r = 0;
> 90de4a1875180f Nadav Amit          2015-04-13  5546  		break;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5547  	case KVM_CAP_SPLIT_IRQCHIP: {
> 49df6397edfc5a Steve Rutherford    2015-07-29  5548  		mutex_lock(&kvm->lock);
> b053b2aef25d00 Steve Rutherford    2015-07-29  5549  		r = -EINVAL;
> b053b2aef25d00 Steve Rutherford    2015-07-29  5550  		if (cap->args[0] > MAX_NR_RESERVED_IOAPIC_PINS)
> b053b2aef25d00 Steve Rutherford    2015-07-29  5551  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5552  		r = -EEXIST;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5553  		if (irqchip_in_kernel(kvm))
> 49df6397edfc5a Steve Rutherford    2015-07-29  5554  			goto split_irqchip_unlock;
> 557abc40d12135 Paolo Bonzini       2016-06-13  5555  		if (kvm->created_vcpus)
> 49df6397edfc5a Steve Rutherford    2015-07-29  5556  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5557  		r = kvm_setup_empty_irq_routing(kvm);
> 5c0aea0e8d98e3 David Hildenbrand   2017-04-28  5558  		if (r)
> 49df6397edfc5a Steve Rutherford    2015-07-29  5559  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5560  		/* Pairs with irqchip_in_kernel. */
> 49df6397edfc5a Steve Rutherford    2015-07-29  5561  		smp_wmb();
> 49776faf93f807 Radim Krčmář        2016-12-16  5562  		kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT;
> b053b2aef25d00 Steve Rutherford    2015-07-29  5563  		kvm->arch.nr_reserved_ioapic_pins = cap->args[0];
> 49df6397edfc5a Steve Rutherford    2015-07-29  5564  		r = 0;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5565  split_irqchip_unlock:
> 49df6397edfc5a Steve Rutherford    2015-07-29  5566  		mutex_unlock(&kvm->lock);
> 49df6397edfc5a Steve Rutherford    2015-07-29  5567  		break;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5568  	}
> 3713131345fbea Radim Krčmář        2016-07-12  5569  	case KVM_CAP_X2APIC_API:
> 3713131345fbea Radim Krčmář        2016-07-12  5570  		r = -EINVAL;
> 3713131345fbea Radim Krčmář        2016-07-12  5571  		if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS)
> 3713131345fbea Radim Krčmář        2016-07-12  5572  			break;
> 3713131345fbea Radim Krčmář        2016-07-12  5573
> 3713131345fbea Radim Krčmář        2016-07-12  5574  		if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS)
> 3713131345fbea Radim Krčmář        2016-07-12  5575  			kvm->arch.x2apic_format = true;
> c519265f2aa348 Radim Krčmář        2016-07-12  5576  		if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
> c519265f2aa348 Radim Krčmář        2016-07-12  5577  			kvm->arch.x2apic_broadcast_quirk_disabled = true;
> 3713131345fbea Radim Krčmář        2016-07-12  5578
> 3713131345fbea Radim Krčmář        2016-07-12  5579  		r = 0;
> 3713131345fbea Radim Krčmář        2016-07-12  5580  		break;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5581  	case KVM_CAP_X86_DISABLE_EXITS:
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5582  		r = -EINVAL;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5583  		if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS)
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5584  			break;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5585
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5586  		if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5587  			kvm_can_mwait_in_guest())
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5588  			kvm->arch.mwait_in_guest = true;
> 766d3571d8e50d Michael S. Tsirkin  2018-06-08  5589  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
> caa057a2cad647 Wanpeng Li          2018-03-12  5590  			kvm->arch.hlt_in_guest = true;
> b31c114b82b2b5 Wanpeng Li          2018-03-12  5591  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE)
> b31c114b82b2b5 Wanpeng Li          2018-03-12  5592  			kvm->arch.pause_in_guest = true;
> b51700632e0e53 Wanpeng Li          2019-05-21  5593  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
> b51700632e0e53 Wanpeng Li          2019-05-21  5594  			kvm->arch.cstate_in_guest = true;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5595  		r = 0;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5596  		break;
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5597  	case KVM_CAP_MSR_PLATFORM_INFO:
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5598  		kvm->arch.guest_can_read_msr_platform_info = cap->args[0];
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5599  		r = 0;
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5600  		break;
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5601  	case KVM_CAP_EXCEPTION_PAYLOAD:
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5602  		kvm->arch.exception_payload_enabled = cap->args[0];
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5603  		r = 0;
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5604  		break;
> 1ae099540e8c7f Alexander Graf      2020-09-25  5605  	case KVM_CAP_X86_USER_SPACE_MSR:
> 1ae099540e8c7f Alexander Graf      2020-09-25  5606  		kvm->arch.user_space_msr_mask = cap->args[0];
> 1ae099540e8c7f Alexander Graf      2020-09-25  5607  		r = 0;
> 1ae099540e8c7f Alexander Graf      2020-09-25  5608  		break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5609  	case KVM_CAP_X86_BUS_LOCK_EXIT:
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5610  		r = -EINVAL;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5611  		if (cap->args[0] & ~KVM_BUS_LOCK_DETECTION_VALID_MODE)
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5612  			break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5613
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5614  		if ((cap->args[0] & KVM_BUS_LOCK_DETECTION_OFF) &&
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5615  		    (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT))
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5616  			break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5617
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5618  		if (kvm_has_bus_lock_exit &&
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5619  		    cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT)
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5620  			kvm->arch.bus_lock_detection_enabled = true;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5621  		r = 0;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5622  		break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5623  #ifdef CONFIG_X86_SGX_KVM
> fe7e948837f312 Sean Christopherson 2021-04-12  5624  	case KVM_CAP_SGX_ATTRIBUTE: {
> fe7e948837f312 Sean Christopherson 2021-04-12  5625  		unsigned long allowed_attributes = 0;
> fe7e948837f312 Sean Christopherson 2021-04-12  5626
> fe7e948837f312 Sean Christopherson 2021-04-12  5627  		r = sgx_set_attribute(&allowed_attributes, cap->args[0]);
> fe7e948837f312 Sean Christopherson 2021-04-12  5628  		if (r)
> fe7e948837f312 Sean Christopherson 2021-04-12  5629  			break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5630
> fe7e948837f312 Sean Christopherson 2021-04-12  5631  		/* KVM only supports the PROVISIONKEY privileged attribute. */
> fe7e948837f312 Sean Christopherson 2021-04-12  5632  		if ((allowed_attributes & SGX_ATTR_PROVISIONKEY) &&
> fe7e948837f312 Sean Christopherson 2021-04-12  5633  		    !(allowed_attributes & ~SGX_ATTR_PROVISIONKEY))
> fe7e948837f312 Sean Christopherson 2021-04-12  5634  			kvm->arch.sgx_provisioning_allowed = true;
> fe7e948837f312 Sean Christopherson 2021-04-12  5635  		else
> fe7e948837f312 Sean Christopherson 2021-04-12  5636  			r = -EINVAL;
> fe7e948837f312 Sean Christopherson 2021-04-12  5637  		break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5638  	}
> fe7e948837f312 Sean Christopherson 2021-04-12  5639  #endif
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5640  	case KVM_CAP_VM_COPY_ENC_CONTEXT_FROM:
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5641  		r = -EINVAL;
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5642  		if (kvm_x86_ops.vm_copy_enc_context_from)
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5643  			r = kvm_x86_ops.vm_copy_enc_context_from(kvm, cap->args[0]);
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5644  		return r;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5645  	case KVM_CAP_EXIT_HYPERCALL:
> 0dbb1123043789 Ashish Kalra        2021-06-08 @5646  		if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
> 0dbb1123043789 Ashish Kalra        2021-06-08  5647  			r = -EINVAL;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5648  			break;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5649  		}
> 0dbb1123043789 Ashish Kalra        2021-06-08  5650  		kvm->arch.hypercall_exit_enabled = cap->args[0];
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5651  		break;
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5652  	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5653  		kvm->arch.exit_on_emulation_error = cap->args[0];
> 0dbb1123043789 Ashish Kalra        2021-06-08  5654  		r = 0;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5655  		break;
> 90de4a1875180f Nadav Amit          2015-04-13  5656  	default:
> 90de4a1875180f Nadav Amit          2015-04-13  5657  		r = -EINVAL;
> 90de4a1875180f Nadav Amit          2015-04-13  5658  		break;
> 90de4a1875180f Nadav Amit          2015-04-13  5659  	}
> 90de4a1875180f Nadav Amit          2015-04-13  5660  	return r;
> 90de4a1875180f Nadav Amit          2015-04-13  5661  }
> 90de4a1875180f Nadav Amit          2015-04-13  5662
> 
> :::::: The code at line 5646 was first introduced by commit
> :::::: 0dbb11230437895f7cd6fc55da61cef011e997d8 KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall
> 
> :::::: TO: Ashish Kalra <ashish.kalra@amd.com>
> :::::: CC: Paolo Bonzini <pbonzini@redhat.com>
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> 


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

* Re: [kvm:queue 329/331] arch/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false
@ 2021-06-24  7:36   ` Paolo Bonzini
  0 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2021-06-24  7:36 UTC (permalink / raw)
  To: kbuild-all

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

On 24/06/21 06:31, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head:   42ac670e03c13e78b43177569bea49540d22661e
> commit: 3bd33d3f648e99bdf93f327f2abc40962d740b9c [329/331] kvm: x86: Allow userspace to handle emulation errors
> config: x86_64-randconfig-a002-20210622 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 7c8a507272587f181ec29401453949ebcd8fec65)
> 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 x86_64 cross compiling tool for clang build
>          # apt-get install binutils-x86-64-linux-gnu
>          # https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=3bd33d3f648e99bdf93f327f2abc40962d740b9c
>          git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
>          git fetch --no-tags kvm queue
>          git checkout 3bd33d3f648e99bdf93f327f2abc40962d740b9c
>          # save the attached .config to linux build tree
>          COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

Botched conflict resolution, fixed now.

Paolo

> 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/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
>                     if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     arch/x86/kvm/x86.c:5660:9: note: uninitialized use occurs here
>             return r;
>                    ^
>     arch/x86/kvm/x86.c:5646:3: note: remove the 'if' if its condition is always true
>                     if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     arch/x86/kvm/x86.c:5537:7: note: initialize the variable 'r' to silence this warning
>             int r;
>                  ^
>                   = 0
>     1 warning generated.
> 
> 
> vim +5646 arch/x86/kvm/x86.c
> 
> 23d43cf998275b Christoffer Dall    2012-07-24  5533
> e5d83c74a5800c Paolo Bonzini       2017-02-16  5534  int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
> 90de4a1875180f Nadav Amit          2015-04-13  5535  			    struct kvm_enable_cap *cap)
> 90de4a1875180f Nadav Amit          2015-04-13  5536  {
> 90de4a1875180f Nadav Amit          2015-04-13  5537  	int r;
> 90de4a1875180f Nadav Amit          2015-04-13  5538
> 90de4a1875180f Nadav Amit          2015-04-13  5539  	if (cap->flags)
> 90de4a1875180f Nadav Amit          2015-04-13  5540  		return -EINVAL;
> 90de4a1875180f Nadav Amit          2015-04-13  5541
> 90de4a1875180f Nadav Amit          2015-04-13  5542  	switch (cap->cap) {
> 90de4a1875180f Nadav Amit          2015-04-13  5543  	case KVM_CAP_DISABLE_QUIRKS:
> 90de4a1875180f Nadav Amit          2015-04-13  5544  		kvm->arch.disabled_quirks = cap->args[0];
> 90de4a1875180f Nadav Amit          2015-04-13  5545  		r = 0;
> 90de4a1875180f Nadav Amit          2015-04-13  5546  		break;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5547  	case KVM_CAP_SPLIT_IRQCHIP: {
> 49df6397edfc5a Steve Rutherford    2015-07-29  5548  		mutex_lock(&kvm->lock);
> b053b2aef25d00 Steve Rutherford    2015-07-29  5549  		r = -EINVAL;
> b053b2aef25d00 Steve Rutherford    2015-07-29  5550  		if (cap->args[0] > MAX_NR_RESERVED_IOAPIC_PINS)
> b053b2aef25d00 Steve Rutherford    2015-07-29  5551  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5552  		r = -EEXIST;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5553  		if (irqchip_in_kernel(kvm))
> 49df6397edfc5a Steve Rutherford    2015-07-29  5554  			goto split_irqchip_unlock;
> 557abc40d12135 Paolo Bonzini       2016-06-13  5555  		if (kvm->created_vcpus)
> 49df6397edfc5a Steve Rutherford    2015-07-29  5556  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5557  		r = kvm_setup_empty_irq_routing(kvm);
> 5c0aea0e8d98e3 David Hildenbrand   2017-04-28  5558  		if (r)
> 49df6397edfc5a Steve Rutherford    2015-07-29  5559  			goto split_irqchip_unlock;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5560  		/* Pairs with irqchip_in_kernel. */
> 49df6397edfc5a Steve Rutherford    2015-07-29  5561  		smp_wmb();
> 49776faf93f807 Radim Krčmář        2016-12-16  5562  		kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT;
> b053b2aef25d00 Steve Rutherford    2015-07-29  5563  		kvm->arch.nr_reserved_ioapic_pins = cap->args[0];
> 49df6397edfc5a Steve Rutherford    2015-07-29  5564  		r = 0;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5565  split_irqchip_unlock:
> 49df6397edfc5a Steve Rutherford    2015-07-29  5566  		mutex_unlock(&kvm->lock);
> 49df6397edfc5a Steve Rutherford    2015-07-29  5567  		break;
> 49df6397edfc5a Steve Rutherford    2015-07-29  5568  	}
> 3713131345fbea Radim Krčmář        2016-07-12  5569  	case KVM_CAP_X2APIC_API:
> 3713131345fbea Radim Krčmář        2016-07-12  5570  		r = -EINVAL;
> 3713131345fbea Radim Krčmář        2016-07-12  5571  		if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS)
> 3713131345fbea Radim Krčmář        2016-07-12  5572  			break;
> 3713131345fbea Radim Krčmář        2016-07-12  5573
> 3713131345fbea Radim Krčmář        2016-07-12  5574  		if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS)
> 3713131345fbea Radim Krčmář        2016-07-12  5575  			kvm->arch.x2apic_format = true;
> c519265f2aa348 Radim Krčmář        2016-07-12  5576  		if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK)
> c519265f2aa348 Radim Krčmář        2016-07-12  5577  			kvm->arch.x2apic_broadcast_quirk_disabled = true;
> 3713131345fbea Radim Krčmář        2016-07-12  5578
> 3713131345fbea Radim Krčmář        2016-07-12  5579  		r = 0;
> 3713131345fbea Radim Krčmář        2016-07-12  5580  		break;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5581  	case KVM_CAP_X86_DISABLE_EXITS:
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5582  		r = -EINVAL;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5583  		if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS)
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5584  			break;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5585
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5586  		if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) &&
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5587  			kvm_can_mwait_in_guest())
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5588  			kvm->arch.mwait_in_guest = true;
> 766d3571d8e50d Michael S. Tsirkin  2018-06-08  5589  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT)
> caa057a2cad647 Wanpeng Li          2018-03-12  5590  			kvm->arch.hlt_in_guest = true;
> b31c114b82b2b5 Wanpeng Li          2018-03-12  5591  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE)
> b31c114b82b2b5 Wanpeng Li          2018-03-12  5592  			kvm->arch.pause_in_guest = true;
> b51700632e0e53 Wanpeng Li          2019-05-21  5593  		if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE)
> b51700632e0e53 Wanpeng Li          2019-05-21  5594  			kvm->arch.cstate_in_guest = true;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5595  		r = 0;
> 4d5422cea3b61f Wanpeng Li          2018-03-12  5596  		break;
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5597  	case KVM_CAP_MSR_PLATFORM_INFO:
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5598  		kvm->arch.guest_can_read_msr_platform_info = cap->args[0];
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5599  		r = 0;
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5600  		break;
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5601  	case KVM_CAP_EXCEPTION_PAYLOAD:
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5602  		kvm->arch.exception_payload_enabled = cap->args[0];
> c4f55198c7c2b8 Jim Mattson         2018-10-16  5603  		r = 0;
> 6fbbde9a1969df Drew Schmitt        2018-08-20  5604  		break;
> 1ae099540e8c7f Alexander Graf      2020-09-25  5605  	case KVM_CAP_X86_USER_SPACE_MSR:
> 1ae099540e8c7f Alexander Graf      2020-09-25  5606  		kvm->arch.user_space_msr_mask = cap->args[0];
> 1ae099540e8c7f Alexander Graf      2020-09-25  5607  		r = 0;
> 1ae099540e8c7f Alexander Graf      2020-09-25  5608  		break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5609  	case KVM_CAP_X86_BUS_LOCK_EXIT:
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5610  		r = -EINVAL;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5611  		if (cap->args[0] & ~KVM_BUS_LOCK_DETECTION_VALID_MODE)
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5612  			break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5613
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5614  		if ((cap->args[0] & KVM_BUS_LOCK_DETECTION_OFF) &&
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5615  		    (cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT))
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5616  			break;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5617
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5618  		if (kvm_has_bus_lock_exit &&
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5619  		    cap->args[0] & KVM_BUS_LOCK_DETECTION_EXIT)
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5620  			kvm->arch.bus_lock_detection_enabled = true;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5621  		r = 0;
> fe6b6bc802b400 Chenyi Qiang        2020-11-06  5622  		break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5623  #ifdef CONFIG_X86_SGX_KVM
> fe7e948837f312 Sean Christopherson 2021-04-12  5624  	case KVM_CAP_SGX_ATTRIBUTE: {
> fe7e948837f312 Sean Christopherson 2021-04-12  5625  		unsigned long allowed_attributes = 0;
> fe7e948837f312 Sean Christopherson 2021-04-12  5626
> fe7e948837f312 Sean Christopherson 2021-04-12  5627  		r = sgx_set_attribute(&allowed_attributes, cap->args[0]);
> fe7e948837f312 Sean Christopherson 2021-04-12  5628  		if (r)
> fe7e948837f312 Sean Christopherson 2021-04-12  5629  			break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5630
> fe7e948837f312 Sean Christopherson 2021-04-12  5631  		/* KVM only supports the PROVISIONKEY privileged attribute. */
> fe7e948837f312 Sean Christopherson 2021-04-12  5632  		if ((allowed_attributes & SGX_ATTR_PROVISIONKEY) &&
> fe7e948837f312 Sean Christopherson 2021-04-12  5633  		    !(allowed_attributes & ~SGX_ATTR_PROVISIONKEY))
> fe7e948837f312 Sean Christopherson 2021-04-12  5634  			kvm->arch.sgx_provisioning_allowed = true;
> fe7e948837f312 Sean Christopherson 2021-04-12  5635  		else
> fe7e948837f312 Sean Christopherson 2021-04-12  5636  			r = -EINVAL;
> fe7e948837f312 Sean Christopherson 2021-04-12  5637  		break;
> fe7e948837f312 Sean Christopherson 2021-04-12  5638  	}
> fe7e948837f312 Sean Christopherson 2021-04-12  5639  #endif
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5640  	case KVM_CAP_VM_COPY_ENC_CONTEXT_FROM:
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5641  		r = -EINVAL;
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5642  		if (kvm_x86_ops.vm_copy_enc_context_from)
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5643  			r = kvm_x86_ops.vm_copy_enc_context_from(kvm, cap->args[0]);
> 54526d1fd59338 Nathan Tempelman    2021-04-08  5644  		return r;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5645  	case KVM_CAP_EXIT_HYPERCALL:
> 0dbb1123043789 Ashish Kalra        2021-06-08 @5646  		if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK) {
> 0dbb1123043789 Ashish Kalra        2021-06-08  5647  			r = -EINVAL;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5648  			break;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5649  		}
> 0dbb1123043789 Ashish Kalra        2021-06-08  5650  		kvm->arch.hypercall_exit_enabled = cap->args[0];
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5651  		break;
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5652  	case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
> 3bd33d3f648e99 Aaron Lewis         2021-05-10  5653  		kvm->arch.exit_on_emulation_error = cap->args[0];
> 0dbb1123043789 Ashish Kalra        2021-06-08  5654  		r = 0;
> 0dbb1123043789 Ashish Kalra        2021-06-08  5655  		break;
> 90de4a1875180f Nadav Amit          2015-04-13  5656  	default:
> 90de4a1875180f Nadav Amit          2015-04-13  5657  		r = -EINVAL;
> 90de4a1875180f Nadav Amit          2015-04-13  5658  		break;
> 90de4a1875180f Nadav Amit          2015-04-13  5659  	}
> 90de4a1875180f Nadav Amit          2015-04-13  5660  	return r;
> 90de4a1875180f Nadav Amit          2015-04-13  5661  }
> 90de4a1875180f Nadav Amit          2015-04-13  5662
> 
> :::::: The code at line 5646 was first introduced by commit
> :::::: 0dbb11230437895f7cd6fc55da61cef011e997d8 KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall
> 
> :::::: TO: Ashish Kalra <ashish.kalra@amd.com>
> :::::: CC: Paolo Bonzini <pbonzini@redhat.com>
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
> 

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

end of thread, other threads:[~2021-06-24  7:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-24  4:31 [kvm:queue 329/331] arch/x86/kvm/x86.c:5646:7: warning: variable 'r' is used uninitialized whenever 'if' condition is false kernel test robot
2021-06-24  4:31 ` kernel test robot
2021-06-24  7:36 ` Paolo Bonzini
2021-06-24  7:36   ` Paolo Bonzini

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.