Hi Like, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/perf/core] [also build test WARNING on vhost/linux-next v5.7-rc3 next-20200424] [cannot apply to kvm/linux-next] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Like-Xu/Guest-Last-Branch-Recording-Enabling/20200426-123735 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 87cfeb1920f84f465a738d4c6589033eefa20b45 config: i386-allyesconfig (attached as .config) compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All warnings (new ones prefixed by >>): arch/x86/kvm/x86.c: In function 'kvm_vm_ioctl_enable_cap': >> arch/x86/kvm/x86.c:4909:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] if (copy_to_user((void __user *)cap->args[1], ^ vim +4909 arch/x86/kvm/x86.c 4829 4830 int kvm_vm_ioctl_enable_cap(struct kvm *kvm, 4831 struct kvm_enable_cap *cap) 4832 { 4833 int r; 4834 4835 if (cap->flags) 4836 return -EINVAL; 4837 4838 switch (cap->cap) { 4839 case KVM_CAP_DISABLE_QUIRKS: 4840 kvm->arch.disabled_quirks = cap->args[0]; 4841 r = 0; 4842 break; 4843 case KVM_CAP_SPLIT_IRQCHIP: { 4844 mutex_lock(&kvm->lock); 4845 r = -EINVAL; 4846 if (cap->args[0] > MAX_NR_RESERVED_IOAPIC_PINS) 4847 goto split_irqchip_unlock; 4848 r = -EEXIST; 4849 if (irqchip_in_kernel(kvm)) 4850 goto split_irqchip_unlock; 4851 if (kvm->created_vcpus) 4852 goto split_irqchip_unlock; 4853 r = kvm_setup_empty_irq_routing(kvm); 4854 if (r) 4855 goto split_irqchip_unlock; 4856 /* Pairs with irqchip_in_kernel. */ 4857 smp_wmb(); 4858 kvm->arch.irqchip_mode = KVM_IRQCHIP_SPLIT; 4859 kvm->arch.nr_reserved_ioapic_pins = cap->args[0]; 4860 r = 0; 4861 split_irqchip_unlock: 4862 mutex_unlock(&kvm->lock); 4863 break; 4864 } 4865 case KVM_CAP_X2APIC_API: 4866 r = -EINVAL; 4867 if (cap->args[0] & ~KVM_X2APIC_API_VALID_FLAGS) 4868 break; 4869 4870 if (cap->args[0] & KVM_X2APIC_API_USE_32BIT_IDS) 4871 kvm->arch.x2apic_format = true; 4872 if (cap->args[0] & KVM_X2APIC_API_DISABLE_BROADCAST_QUIRK) 4873 kvm->arch.x2apic_broadcast_quirk_disabled = true; 4874 4875 r = 0; 4876 break; 4877 case KVM_CAP_X86_DISABLE_EXITS: 4878 r = -EINVAL; 4879 if (cap->args[0] & ~KVM_X86_DISABLE_VALID_EXITS) 4880 break; 4881 4882 if ((cap->args[0] & KVM_X86_DISABLE_EXITS_MWAIT) && 4883 kvm_can_mwait_in_guest()) 4884 kvm->arch.mwait_in_guest = true; 4885 if (cap->args[0] & KVM_X86_DISABLE_EXITS_HLT) 4886 kvm->arch.hlt_in_guest = true; 4887 if (cap->args[0] & KVM_X86_DISABLE_EXITS_PAUSE) 4888 kvm->arch.pause_in_guest = true; 4889 if (cap->args[0] & KVM_X86_DISABLE_EXITS_CSTATE) 4890 kvm->arch.cstate_in_guest = true; 4891 r = 0; 4892 break; 4893 case KVM_CAP_MSR_PLATFORM_INFO: 4894 kvm->arch.guest_can_read_msr_platform_info = cap->args[0]; 4895 r = 0; 4896 break; 4897 case KVM_CAP_EXCEPTION_PAYLOAD: 4898 kvm->arch.exception_payload_enabled = cap->args[0]; 4899 r = 0; 4900 break; 4901 case KVM_CAP_X86_GUEST_LBR: 4902 r = -EINVAL; 4903 if (!cap->args[0] || !kvm->vcpus[0]) 4904 break; 4905 if (!kvm_pmu_lbr_setup(kvm->vcpus[0])) 4906 break; 4907 if (vcpu_to_pmu(kvm->vcpus[0])->version < 2) 4908 break; > 4909 if (copy_to_user((void __user *)cap->args[1], 4910 &kvm->arch.lbr, sizeof(struct x86_pmu_lbr))) 4911 break; 4912 kvm->arch.lbr_in_guest = !!cap->args[0]; 4913 r = 0; 4914 break; 4915 default: 4916 r = -EINVAL; 4917 break; 4918 } 4919 return r; 4920 } 4921 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org