Hi Alex, I love your patch! Yet something to improve: [auto build test ERROR on kvm/linux-next] [also build test ERROR on linux/master linus/master v5.5-rc5 next-20200109] [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/Alex-Shi/KVM-remove-unused-guest_enter-exit/20200111-004903 base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next config: arm64-randconfig-a001-20200110 (attached as .config) compiler: aarch64-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/arm64/kvm/../../../virt/kvm/arm/arm.c: In function 'kvm_arch_vcpu_ioctl_run': >> arch/arm64/kvm/../../../virt/kvm/arm/arm.c:861:3: error: implicit declaration of function 'guest_exit'; did you mean 'user_exit'? [-Werror=implicit-function-declaration] guest_exit(); ^~~~~~~~~~ user_exit cc1: some warnings being treated as errors vim +861 arch/arm64/kvm/../../../virt/kvm/arm/arm.c 0592c005622582 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 687 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 688 /** f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 689 * kvm_arch_vcpu_ioctl_run - the main VCPU run function to execute guest code f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 690 * @vcpu: The VCPU pointer f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 691 * @run: The kvm_run structure pointer used for userspace state exchange f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 692 * f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 693 * This function is called through the VCPU_RUN ioctl called from user space. It f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 694 * will execute VM code in a loop until the time slice for the process is used f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 695 * or some emulation is needed from user space in which case the function will f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 696 * return with return value 0 and with the kvm_run structure filled in with the f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 697 * required data for the requested emulation. f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 698 */ 749cf76c5a363e arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 699 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) 749cf76c5a363e arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 700 { f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 701 int ret; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 702 e8180dcaa8470c arch/arm/kvm/arm.c Andre Przywara 2013-05-09 703 if (unlikely(!kvm_vcpu_initialized(vcpu))) f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 704 return -ENOEXEC; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 705 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 706 ret = kvm_vcpu_first_run_init(vcpu); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 707 if (ret) 829a58635497d7 virt/kvm/arm/arm.c Christoffer Dall 2017-11-29 708 return ret; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 709 45e96ea6b36953 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 710 if (run->exit_reason == KVM_EXIT_MMIO) { 45e96ea6b36953 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 711 ret = kvm_handle_mmio_return(vcpu, vcpu->run); 45e96ea6b36953 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 712 if (ret) 829a58635497d7 virt/kvm/arm/arm.c Christoffer Dall 2017-11-29 713 return ret; accb757d798c9b virt/kvm/arm/arm.c Christoffer Dall 2017-12-04 714 } 1eb591288b956b virt/kvm/arm/arm.c Alex Bennée 2017-11-16 715 829a58635497d7 virt/kvm/arm/arm.c Christoffer Dall 2017-11-29 716 if (run->immediate_exit) 829a58635497d7 virt/kvm/arm/arm.c Christoffer Dall 2017-11-29 717 return -EINTR; 45e96ea6b36953 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 718 829a58635497d7 virt/kvm/arm/arm.c Christoffer Dall 2017-11-29 719 vcpu_load(vcpu); 460df4c1fc7c00 arch/arm/kvm/arm.c Paolo Bonzini 2017-02-08 720 20b7035c66bacc virt/kvm/arm/arm.c Jan H. Schönherr 2017-11-24 721 kvm_sigset_activate(vcpu); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 722 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 723 ret = 1; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 724 run->exit_reason = KVM_EXIT_UNKNOWN; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 725 while (ret > 0) { f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 726 /* f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 727 * Check conditions before entering the guest f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 728 */ f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 729 cond_resched(); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 730 e329fb75d519e3 virt/kvm/arm/arm.c Christoffer Dall 2018-12-11 731 update_vmid(&vcpu->kvm->arch.vmid); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 732 0592c005622582 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 733 check_vcpu_requests(vcpu); 0592c005622582 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 734 abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 735 /* abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 736 * Preparing the interrupts to be injected also abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 737 * involves poking the GIC, which must be done in a abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 738 * non-preemptible context. abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 739 */ 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 740 preempt_disable(); 328e5664794491 arch/arm/kvm/arm.c Christoffer Dall 2016-03-24 741 b02386eb7dac75 arch/arm/kvm/arm.c Shannon Zhao 2016-02-26 742 kvm_pmu_flush_hwstate(vcpu); 328e5664794491 arch/arm/kvm/arm.c Christoffer Dall 2016-03-24 743 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 744 local_irq_disable(); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 745 abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 746 kvm_vgic_flush_hwstate(vcpu); abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 747 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 748 /* 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 749 * Exit if we have a signal pending so that we can deliver the 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 750 * signal to user space. f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 751 */ 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 752 if (signal_pending(current)) { 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 753 ret = -EINTR; 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 754 run->exit_reason = KVM_EXIT_INTR; 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 755 } 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 756 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 757 /* 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 758 * If we're using a userspace irqchip, then check if we need 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 759 * to tell a userspace irqchip about timer or PMU level 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 760 * changes and if so, exit to userspace (the actual level 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 761 * state gets updated in kvm_timer_update_run and 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 762 * kvm_pmu_update_run below). 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 763 */ 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 764 if (static_branch_unlikely(&userspace_irqchip_in_use)) { 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 765 if (kvm_timer_should_notify_user(vcpu) || 3dbbdf78636e66 arch/arm/kvm/arm.c Christoffer Dall 2017-02-01 766 kvm_pmu_should_notify_user(vcpu)) { f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 767 ret = -EINTR; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 768 run->exit_reason = KVM_EXIT_INTR; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 769 } 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 770 } f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 771 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 772 /* 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 773 * Ensure we set mode to IN_GUEST_MODE after we disable 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 774 * interrupts and before the final VCPU requests check. 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 775 * See the comment in kvm_vcpu_exiting_guest_mode() and 2f5947dfcaecb9 virt/kvm/arm/arm.c Christoph Hellwig 2019-07-24 776 * Documentation/virt/kvm/vcpu-requests.rst 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 777 */ 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 778 smp_store_mb(vcpu->mode, IN_GUEST_MODE); 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 779 e329fb75d519e3 virt/kvm/arm/arm.c Christoffer Dall 2018-12-11 780 if (ret <= 0 || need_new_vmid_gen(&vcpu->kvm->arch.vmid) || 424c989b1a664a virt/kvm/arm/arm.c Andrew Jones 2017-06-04 781 kvm_request_pending(vcpu)) { 6a6d73be12fbe4 virt/kvm/arm/arm.c Andrew Jones 2017-06-04 782 vcpu->mode = OUTSIDE_GUEST_MODE; 771621b0e2f806 virt/kvm/arm/arm.c Christoffer Dall 2017-10-04 783 isb(); /* Ensure work in x_flush_hwstate is committed */ b02386eb7dac75 arch/arm/kvm/arm.c Shannon Zhao 2016-02-26 784 kvm_pmu_sync_hwstate(vcpu); 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 785 if (static_branch_unlikely(&userspace_irqchip_in_use)) 4b4b4512da2a84 arch/arm/kvm/arm.c Christoffer Dall 2015-08-30 786 kvm_timer_sync_hwstate(vcpu); 1a89dd9113badd arch/arm/kvm/arm.c Marc Zyngier 2013-01-21 787 kvm_vgic_sync_hwstate(vcpu); ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 788 local_irq_enable(); abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 789 preempt_enable(); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 790 continue; f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 791 } f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 792 56c7f5e77f797f arch/arm/kvm/arm.c Alex Bennée 2015-07-07 793 kvm_arm_setup_debug(vcpu); 56c7f5e77f797f arch/arm/kvm/arm.c Alex Bennée 2015-07-07 794 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 795 /************************************************************** f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 796 * Enter the guest f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 797 */ f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 798 trace_kvm_entry(*vcpu_pc(vcpu)); 6edaa5307f3f51 arch/arm/kvm/arm.c Paolo Bonzini 2016-06-15 799 guest_enter_irqoff(); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 800 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 801 if (has_vhe()) { 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 802 kvm_arm_vhe_guest_enter(); 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 803 ret = kvm_vcpu_run_vhe(vcpu); 4f5abad9e826bd virt/kvm/arm/arm.c James Morse 2018-01-15 804 kvm_arm_vhe_guest_exit(); 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 805 } else { 7aa8d14641651a virt/kvm/arm/arm.c Marc Zyngier 2019-01-05 806 ret = kvm_call_hyp_ret(__kvm_vcpu_run_nvhe, vcpu); 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 807 } 3f5c90b890acfa virt/kvm/arm/arm.c Christoffer Dall 2017-10-03 808 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 809 vcpu->mode = OUTSIDE_GUEST_MODE; b19e6892a90e7c arch/arm/kvm/arm.c Amit Tomar 2015-11-26 810 vcpu->stat.exits++; 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 811 /* 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 812 * Back from guest 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 813 *************************************************************/ 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 814 56c7f5e77f797f arch/arm/kvm/arm.c Alex Bennée 2015-07-07 815 kvm_arm_clear_debug(vcpu); 56c7f5e77f797f arch/arm/kvm/arm.c Alex Bennée 2015-07-07 816 ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 817 /* b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 818 * We must sync the PMU state before the vgic state so ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 819 * that the vgic can properly sample the updated state of the ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 820 * interrupt line. ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 821 */ ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 822 kvm_pmu_sync_hwstate(vcpu); ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 823 b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 824 /* b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 825 * Sync the vgic state before syncing the timer state because b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 826 * the timer code needs to know if the virtual timer b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 827 * interrupts are active. b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 828 */ ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 829 kvm_vgic_sync_hwstate(vcpu); ee9bb9a1e3c6e4 virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 830 b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 831 /* b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 832 * Sync the timer hardware state before enabling interrupts as b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 833 * we don't want vtimer interrupts to race with syncing the b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 834 * timer virtual interrupt state. b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 835 */ 61bbe380273347 virt/kvm/arm/arm.c Christoffer Dall 2017-10-27 836 if (static_branch_unlikely(&userspace_irqchip_in_use)) b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 837 kvm_timer_sync_hwstate(vcpu); b103cc3f10c06f virt/kvm/arm/arm.c Christoffer Dall 2016-10-16 838 e6b673b741ea0d virt/kvm/arm/arm.c Dave Martin 2018-04-06 839 kvm_arch_vcpu_ctxsync_fp(vcpu); e6b673b741ea0d virt/kvm/arm/arm.c Dave Martin 2018-04-06 840 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 841 /* f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 842 * We may have taken a host interrupt in HYP mode (ie f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 843 * while executing the guest). This interrupt is still f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 844 * pending, as we haven't serviced it yet! f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 845 * f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 846 * We're now back in SVC mode, with interrupts f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 847 * disabled. Enabling the interrupts now will have f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 848 * the effect of taking the interrupt again, in SVC f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 849 * mode this time. f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 850 */ f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 851 local_irq_enable(); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 852 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 853 /* 6edaa5307f3f51 arch/arm/kvm/arm.c Paolo Bonzini 2016-06-15 854 * We do local_irq_enable() before calling guest_exit() so 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 855 * that if a timer interrupt hits while running the guest we 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 856 * account that tick as being spent in the guest. We enable 6edaa5307f3f51 arch/arm/kvm/arm.c Paolo Bonzini 2016-06-15 857 * preemption after calling guest_exit() so that if we get 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 858 * preempted we make sure ticks after that is not counted as 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 859 * guest time. 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 860 */ 6edaa5307f3f51 arch/arm/kvm/arm.c Paolo Bonzini 2016-06-15 @861 guest_exit(); b5905dc12ed425 arch/arm/kvm/arm.c Christoffer Dall 2015-08-30 862 trace_kvm_exit(ret, kvm_vcpu_trap_get_class(vcpu), *vcpu_pc(vcpu)); 1b3d546daf85ed arch/arm/kvm/arm.c Christoffer Dall 2015-05-28 863 3368bd809764d3 virt/kvm/arm/arm.c James Morse 2018-01-15 864 /* Exit types that need handling before we can be preempted */ 3368bd809764d3 virt/kvm/arm/arm.c James Morse 2018-01-15 865 handle_exit_early(vcpu, run, ret); 3368bd809764d3 virt/kvm/arm/arm.c James Morse 2018-01-15 866 abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 867 preempt_enable(); abdf58438356c7 arch/arm/kvm/arm.c Marc Zyngier 2015-06-08 868 f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 869 ret = handle_exit(vcpu, run, ret); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 870 } f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 871 d9e1397783765a arch/arm/kvm/arm.c Alexander Graf 2016-09-27 872 /* Tell userspace about in-kernel device output levels */ 3dbbdf78636e66 arch/arm/kvm/arm.c Christoffer Dall 2017-02-01 873 if (unlikely(!irqchip_in_kernel(vcpu->kvm))) { d9e1397783765a arch/arm/kvm/arm.c Alexander Graf 2016-09-27 874 kvm_timer_update_run(vcpu); 3dbbdf78636e66 arch/arm/kvm/arm.c Christoffer Dall 2017-02-01 875 kvm_pmu_update_run(vcpu); 3dbbdf78636e66 arch/arm/kvm/arm.c Christoffer Dall 2017-02-01 876 } d9e1397783765a arch/arm/kvm/arm.c Alexander Graf 2016-09-27 877 20b7035c66bacc virt/kvm/arm/arm.c Jan H. Schönherr 2017-11-24 878 kvm_sigset_deactivate(vcpu); 20b7035c66bacc virt/kvm/arm/arm.c Jan H. Schönherr 2017-11-24 879 accb757d798c9b virt/kvm/arm/arm.c Christoffer Dall 2017-12-04 880 vcpu_put(vcpu); f7ed45be3ba524 arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 881 return ret; 749cf76c5a363e arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 882 } 749cf76c5a363e arch/arm/kvm/arm.c Christoffer Dall 2013-01-20 883 :::::: The code at line 861 was first introduced by commit :::::: 6edaa5307f3f51e4e56dc4c63f68a69d88c6ddf5 KVM: remove kvm_guest_enter/exit wrappers :::::: TO: Paolo Bonzini :::::: CC: Paolo Bonzini --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation