From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55524C433B4 for ; Wed, 7 Apr 2021 22:34:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 33B8F61177 for ; Wed, 7 Apr 2021 22:34:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230406AbhDGWeU (ORCPT ); Wed, 7 Apr 2021 18:34:20 -0400 Received: from mga05.intel.com ([192.55.52.43]:54951 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230434AbhDGWeF (ORCPT ); Wed, 7 Apr 2021 18:34:05 -0400 IronPort-SDR: 5cJ0b9BzuTVS1YI9WIZq17o4eRdgFxTDdMooIhMSTrzCsLam+EC+ig2IBErTvv5mCub+fuNKrc FnFUoLNa6+Cw== X-IronPort-AV: E=McAfee;i="6000,8403,9947"; a="278676049" X-IronPort-AV: E=Sophos;i="5.82,204,1613462400"; d="scan'208";a="278676049" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2021 15:33:56 -0700 IronPort-SDR: 4iJMAUMSANQfJy7Pa5idU1SyvEFEHAa92U8m8YGVr7KcKRpFSjkQH/SuyPd/AT+jyKyH8S2IgH LnlcANTIYkjQ== X-IronPort-AV: E=Sophos;i="5.82,204,1613462400"; d="scan'208";a="449359997" Received: from tkokeray-mobl.amr.corp.intel.com (HELO khuang2-desk.gar.corp.intel.com) ([10.254.113.100]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2021 15:33:52 -0700 Date: Thu, 8 Apr 2021 10:33:49 +1200 From: Kai Huang To: Sean Christopherson Cc: kvm@vger.kernel.org, linux-sgx@vger.kernel.org, pbonzini@redhat.com, bp@alien8.de, jarkko@kernel.org, dave.hansen@intel.com, luto@kernel.org, rick.p.edgecombe@intel.com, haitao.huang@intel.com Subject: Re: [PATCH v4 06/11] KVM: VMX: Frame in ENCLS handler for SGX virtualization Message-Id: <20210408103349.c98c3adc94efa66ca048ce2c@intel.com> In-Reply-To: References: <4be4b49f63a6c66911683d0f093ca5ef0d3996d5.1617825858.git.kai.huang@intel.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-sgx@vger.kernel.org On Wed, 7 Apr 2021 22:16:59 +0000 Sean Christopherson wrote: > On Thu, Apr 08, 2021, Kai Huang wrote: > > +int handle_encls(struct kvm_vcpu *vcpu) > > +{ > > + u32 leaf = (u32)vcpu->arch.regs[VCPU_REGS_RAX]; > > Please use kvm_rax_read(), I've been trying to discourage direct access to the > array. Which is ironic because I'm 100% certain I'm to blame for this. :-) Sure. But I think still, we should convert it to (u32) explicitly, so: u32 leaf = (u32)kvm_rax_read(vcpu); ? > > > + > > + if (!encls_leaf_enabled_in_guest(vcpu, leaf)) { > > + kvm_queue_exception(vcpu, UD_VECTOR); > > + } else if (!sgx_enabled_in_guest_bios(vcpu)) { > > + kvm_inject_gp(vcpu, 0); > > + } else { > > + WARN(1, "KVM: unexpected exit on ENCLS[%u]", leaf); > > + vcpu->run->exit_reason = KVM_EXIT_UNKNOWN; > > + vcpu->run->hw.hardware_exit_reason = EXIT_REASON_ENCLS; > > + return 0; > > + } > > + return 1; > > +}