:::::: :::::: Manual check reason: "low confidence static check first_new_problem: arch/arm64/kvm/../../../virt/kvm/kvm_main.c:4971:1: sparse: sparse: unused label 'arch_vm_ioctl'" ::::::
BCC: [email protected] CC: [email protected] CC: [email protected] TO: Chao Peng <[email protected]> CC: Isaku Yamahata <[email protected]> tree: https://github.com/intel/tdx.git kvm-upstream-workaround head: 552dd80c48f67ca01bcdd10667e0c11efd375177 commit: 303b911206dd2a12b1a4fdee94044dc5a6fa36a3 [142/314] KVM: Register/unregister the guest private memory regions :::::: branch date: 9 hours ago :::::: commit date: 10 hours ago config: arm64-randconfig-s033-20220821 (https://download.01.org/0day-ci/archive/20220823/[email protected]/config) compiler: aarch64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel/tdx/commit/303b911206dd2a12b1a4fdee94044dc5a6fa36a3 git remote add intel-tdx https://github.com/intel/tdx.git git fetch --no-tags intel-tdx kvm-upstream-workaround git checkout 303b911206dd2a12b1a4fdee94044dc5a6fa36a3 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> sparse warnings: (new ones prefixed by >>) >> arch/arm64/kvm/../../../virt/kvm/kvm_main.c:4971:1: sparse: sparse: unused >> label 'arch_vm_ioctl' arch/arm64/kvm/../../../virt/kvm/kvm_main.c: note: in included file: include/linux/kvm_host.h:1952:54: sparse: sparse: array of flexible structures include/linux/kvm_host.h:1954:56: sparse: sparse: array of flexible structures arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_change_pte' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_invalidate_range_start' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_invalidate_range_end' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_clear_flush_young' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_clear_young' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:597:9: sparse: sparse: context imbalance in 'kvm_mmu_notifier_test_young' - different lock contexts for basic block arch/arm64/kvm/../../../virt/kvm/kvm_main.c:2727:9: sparse: sparse: context imbalance in 'hva_to_pfn_remapped' - unexpected unlock vim +/arch_vm_ioctl +4971 arch/arm64/kvm/../../../virt/kvm/kvm_main.c a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4747 bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4748 static long kvm_vm_ioctl(struct file *filp, bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4749 unsigned int ioctl, unsigned long arg) bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4750 { bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4751 struct kvm *kvm = filp->private_data; bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4752 void __user *argp = (void __user *)arg; 1fe779f8eccd16 drivers/kvm/kvm_main.c Carsten Otte 2007-10-29 4753 int r; bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4754 f4d316537059b2 virt/kvm/kvm_main.c Paolo Bonzini 2021-11-11 4755 if (kvm->mm != current->mm || kvm->vm_dead) 6d4e4c4fca5be8 drivers/kvm/kvm_main.c Avi Kivity 2007-11-21 4756 return -EIO; bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4757 switch (ioctl) { bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4758 case KVM_CREATE_VCPU: bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4759 r = kvm_vm_ioctl_create_vcpu(kvm, arg); bccf2150fe62dd drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4760 break; e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4761 case KVM_ENABLE_CAP: { e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4762 struct kvm_enable_cap cap; e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4763 e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4764 r = -EFAULT; e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4765 if (copy_from_user(&cap, argp, sizeof(cap))) e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4766 goto out; e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4767 r = kvm_vm_ioctl_enable_cap_generic(kvm, &cap); e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4768 break; e5d83c74a5800c virt/kvm/kvm_main.c Paolo Bonzini 2017-02-16 4769 } 6fc138d2278078 drivers/kvm/kvm_main.c Izik Eidus 2007-10-09 4770 case KVM_SET_USER_MEMORY_REGION: { a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4771 struct kvm_user_mem_region mem; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4772 unsigned long size; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4773 u32 flags; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4774 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4775 kvm_sanity_check_user_mem_region_alias(); a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4776 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4777 memset(&mem, 0, sizeof(mem)); 6fc138d2278078 drivers/kvm/kvm_main.c Izik Eidus 2007-10-09 4778 6fc138d2278078 drivers/kvm/kvm_main.c Izik Eidus 2007-10-09 4779 r = -EFAULT; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4780 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4781 if (get_user(flags, a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4782 (u32 __user *)(argp + offsetof(typeof(mem), flags)))) a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4783 goto out; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4784 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4785 if (flags & KVM_MEM_PRIVATE) { a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4786 r = -EINVAL; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4787 goto out; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4788 } a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4789 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4790 size = sizeof(struct kvm_userspace_memory_region); a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4791 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4792 if (copy_from_user(&mem, argp, size)) a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4793 goto out; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4794 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4795 r = -EINVAL; a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4796 if ((flags ^ mem.flags) & KVM_MEM_PRIVATE) 6fc138d2278078 drivers/kvm/kvm_main.c Izik Eidus 2007-10-09 4797 goto out; 6fc138d2278078 drivers/kvm/kvm_main.c Izik Eidus 2007-10-09 4798 a4ec3c29649907 virt/kvm/kvm_main.c Chao Peng 2022-07-06 4799 r = kvm_vm_ioctl_set_memory_region(kvm, &mem); 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4800 break; 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4801 } 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4802 #ifdef CONFIG_HAVE_KVM_PRIVATE_MEM 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4803 case KVM_MEMORY_ENCRYPT_REG_REGION: 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4804 case KVM_MEMORY_ENCRYPT_UNREG_REGION: { 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4805 struct kvm_enc_region region; 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4806 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4807 if (!kvm_arch_private_mem_supported(kvm)) 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4808 goto arch_vm_ioctl; 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4809 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4810 r = -EFAULT; 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4811 if (copy_from_user(®ion, argp, sizeof(region))) 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4812 goto out; 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4813 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4814 r = kvm_vm_ioctl_set_encrypted_region(kvm, ioctl, ®ion); 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4815 break; 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4816 } 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 4817 #endif 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4818 case KVM_GET_DIRTY_LOG: { 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4819 struct kvm_dirty_log log; 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4820 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4821 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4822 if (copy_from_user(&log, argp, sizeof(log))) 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4823 goto out; 2c6f5df9793e6f drivers/kvm/kvm_main.c Avi Kivity 2007-02-20 4824 r = kvm_vm_ioctl_get_dirty_log(kvm, &log); 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4825 break; 6aa8b732ca01c3 drivers/kvm/kvm_main.c Avi Kivity 2006-12-10 4826 } 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4827 #ifdef CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4828 case KVM_CLEAR_DIRTY_LOG: { 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4829 struct kvm_clear_dirty_log log; 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4830 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4831 r = -EFAULT; 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4832 if (copy_from_user(&log, argp, sizeof(log))) 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4833 goto out; 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4834 r = kvm_vm_ioctl_clear_dirty_log(kvm, &log); 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4835 break; 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4836 } 2a31b9db153530 virt/kvm/kvm_main.c Paolo Bonzini 2018-10-23 4837 #endif 4b4357e02523ec virt/kvm/kvm_main.c Paolo Bonzini 2017-03-31 4838 #ifdef CONFIG_KVM_MMIO 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4839 case KVM_REGISTER_COALESCED_MMIO: { 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4840 struct kvm_coalesced_mmio_zone zone; f95ef0cd025785 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4841 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4842 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4843 if (copy_from_user(&zone, argp, sizeof(zone))) 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4844 goto out; 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4845 r = kvm_vm_ioctl_register_coalesced_mmio(kvm, &zone); 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4846 break; 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4847 } 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4848 case KVM_UNREGISTER_COALESCED_MMIO: { 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4849 struct kvm_coalesced_mmio_zone zone; f95ef0cd025785 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4850 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4851 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4852 if (copy_from_user(&zone, argp, sizeof(zone))) 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4853 goto out; 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4854 r = kvm_vm_ioctl_unregister_coalesced_mmio(kvm, &zone); 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4855 break; 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4856 } 5f94c1741bdc7a virt/kvm/kvm_main.c Laurent Vivier 2008-05-30 4857 #endif 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4858 case KVM_IRQFD: { 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4859 struct kvm_irqfd data; 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4860 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4861 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4862 if (copy_from_user(&data, argp, sizeof(data))) 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4863 goto out; d4db2935e4fffe virt/kvm/kvm_main.c Alex Williamson 2012-06-29 4864 r = kvm_irqfd(kvm, &data); 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4865 break; 721eecbf4fe995 virt/kvm/kvm_main.c Gregory Haskins 2009-05-20 4866 } d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4867 case KVM_IOEVENTFD: { d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4868 struct kvm_ioeventfd data; d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4869 d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4870 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4871 if (copy_from_user(&data, argp, sizeof(data))) d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4872 goto out; d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4873 r = kvm_ioeventfd(kvm, &data); d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4874 break; d34e6b175e6182 virt/kvm/kvm_main.c Gregory Haskins 2009-07-07 4875 } 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4876 #ifdef CONFIG_HAVE_KVM_MSI 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4877 case KVM_SIGNAL_MSI: { 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4878 struct kvm_msi msi; 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4879 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4880 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4881 if (copy_from_user(&msi, argp, sizeof(msi))) 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4882 goto out; 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4883 r = kvm_send_userspace_msi(kvm, &msi); 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4884 break; 07975ad3b30579 virt/kvm/kvm_main.c Jan Kiszka 2012-03-29 4885 } 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4886 #endif 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4887 #ifdef __KVM_HAVE_IRQ_LINE 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4888 case KVM_IRQ_LINE_STATUS: 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4889 case KVM_IRQ_LINE: { 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4890 struct kvm_irq_level irq_event; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4891 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4892 r = -EFAULT; 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4893 if (copy_from_user(&irq_event, argp, sizeof(irq_event))) 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4894 goto out; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4895 aa2fbe6d448920 virt/kvm/kvm_main.c Yang Zhang 2013-04-11 4896 r = kvm_vm_ioctl_irq_line(kvm, &irq_event, aa2fbe6d448920 virt/kvm/kvm_main.c Yang Zhang 2013-04-11 4897 ioctl == KVM_IRQ_LINE_STATUS); 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4898 if (r) 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4899 goto out; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4900 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4901 r = -EFAULT; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4902 if (ioctl == KVM_IRQ_LINE_STATUS) { 893bdbf16574e7 virt/kvm/kvm_main.c Xiubo Li 2015-02-26 4903 if (copy_to_user(argp, &irq_event, sizeof(irq_event))) 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4904 goto out; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4905 } 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4906 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4907 r = 0; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4908 break; 23d43cf998275b virt/kvm/kvm_main.c Christoffer Dall 2012-07-24 4909 } 73880c80aa9c8d virt/kvm/kvm_main.c Gleb Natapov 2009-06-09 4910 #endif aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4911 #ifdef CONFIG_HAVE_KVM_IRQ_ROUTING aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4912 case KVM_SET_GSI_ROUTING: { aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4913 struct kvm_irq_routing routing; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4914 struct kvm_irq_routing __user *urouting; f8c1b85b2523da virt/kvm/kvm_main.c Paolo Bonzini 2016-06-01 4915 struct kvm_irq_routing_entry *entries = NULL; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4916 aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4917 r = -EFAULT; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4918 if (copy_from_user(&routing, argp, sizeof(routing))) aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4919 goto out; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4920 r = -EINVAL; 5c0aea0e8d98e3 virt/kvm/kvm_main.c David Hildenbrand 2017-04-28 4921 if (!kvm_arch_can_set_irq_routing(kvm)) 5c0aea0e8d98e3 virt/kvm/kvm_main.c David Hildenbrand 2017-04-28 4922 goto out; caf1ff26e1aa17 virt/kvm/kvm_main.c Xiubo Li 2016-06-15 4923 if (routing.nr > KVM_MAX_IRQ_ROUTES) aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4924 goto out; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4925 if (routing.flags) aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4926 goto out; f8c1b85b2523da virt/kvm/kvm_main.c Paolo Bonzini 2016-06-01 4927 if (routing.nr) { 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4928 urouting = argp; 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4929 entries = vmemdup_user(urouting->entries, 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4930 array_size(sizeof(*entries), 42bc47b35320e0 virt/kvm/kvm_main.c Kees Cook 2018-06-12 4931 routing.nr)); 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4932 if (IS_ERR(entries)) { 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4933 r = PTR_ERR(entries); aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4934 goto out; 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4935 } f8c1b85b2523da virt/kvm/kvm_main.c Paolo Bonzini 2016-06-01 4936 } aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4937 r = kvm_set_irq_routing(kvm, entries, routing.nr, aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4938 routing.flags); 7ec28e264f2e52 virt/kvm/kvm_main.c Denis Efremov 2020-06-03 4939 kvfree(entries); aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4940 break; aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4941 } aa8d5944b8b280 virt/kvm/kvm_main.c Alexander Graf 2013-04-15 4942 #endif /* CONFIG_HAVE_KVM_IRQ_ROUTING */ 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4943 case KVM_CREATE_DEVICE: { 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4944 struct kvm_create_device cd; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4945 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4946 r = -EFAULT; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4947 if (copy_from_user(&cd, argp, sizeof(cd))) 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4948 goto out; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4949 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4950 r = kvm_ioctl_create_device(kvm, &cd); 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4951 if (r) 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4952 goto out; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4953 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4954 r = -EFAULT; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4955 if (copy_to_user(argp, &cd, sizeof(cd))) 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4956 goto out; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4957 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4958 r = 0; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4959 break; 852b6d57dc7fa3 virt/kvm/kvm_main.c Scott Wood 2013-04-12 4960 } 92b591a4c46b10 virt/kvm/kvm_main.c Alexander Graf 2014-07-14 4961 case KVM_CHECK_EXTENSION: 92b591a4c46b10 virt/kvm/kvm_main.c Alexander Graf 2014-07-14 4962 r = kvm_vm_ioctl_check_extension_generic(kvm, arg); 92b591a4c46b10 virt/kvm/kvm_main.c Alexander Graf 2014-07-14 4963 break; fb04a1eddb1a65 virt/kvm/kvm_main.c Peter Xu 2020-09-30 4964 case KVM_RESET_DIRTY_RINGS: fb04a1eddb1a65 virt/kvm/kvm_main.c Peter Xu 2020-09-30 4965 r = kvm_vm_ioctl_reset_dirty_pages(kvm); fb04a1eddb1a65 virt/kvm/kvm_main.c Peter Xu 2020-09-30 4966 break; fcfe1baeddbf1c virt/kvm/kvm_main.c Jing Zhang 2021-06-18 4967 case KVM_GET_STATS_FD: fcfe1baeddbf1c virt/kvm/kvm_main.c Jing Zhang 2021-06-18 4968 r = kvm_vm_ioctl_get_stats_fd(kvm); fcfe1baeddbf1c virt/kvm/kvm_main.c Jing Zhang 2021-06-18 4969 break; f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4970 default: 303b911206dd2a virt/kvm/kvm_main.c Chao Peng 2022-07-06 @4971 arch_vm_ioctl: 1fe779f8eccd16 drivers/kvm/kvm_main.c Carsten Otte 2007-10-29 4972 r = kvm_arch_vm_ioctl(filp, ioctl, arg); f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4973 } f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4974 out: f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4975 return r; f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4976 } f17abe9a44425f drivers/kvm/kvm_main.c Avi Kivity 2007-02-21 4977 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
