lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 11 Jan 2020 13:28:01 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Alex Shi <alex.shi@...ux.alibaba.com>
Cc:     kbuild-all@...ts.01.org, Paolo Bonzini <pbonzini@...hat.com>,
        Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...nel.org>,
        Frederic Weisbecker <frederic@...nel.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] KVM: remove unused guest_enter/exit

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 <lkp@...el.com>

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 <pbonzini@...hat.com>
:::::: CC: Paolo Bonzini <pbonzini@...hat.com>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (32260 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ