Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp8366296rwi; Tue, 25 Oct 2022 06:00:46 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6JSGWJNbpNeZ8epFcFY9/9EJm8zsdLqbp7abLWp7sFtMZkUXfXQZME8SS6pAnob4u1tOtQ X-Received: by 2002:a05:6a00:1a44:b0:528:6af7:ff4a with SMTP id h4-20020a056a001a4400b005286af7ff4amr39023058pfv.78.1666702846000; Tue, 25 Oct 2022 06:00:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666702845; cv=none; d=google.com; s=arc-20160816; b=MTq8IC2Vvu8Crk6qj01dzU7Fo8XTUBLwL3YGBhP8Mo/72D44ZazbEp2iCsKvsOxPaW NB/OgzsLvjLbvDtgZ0V/uRGLreQVgRjDbALVl8ZGZYDPu/1zM3lZDXXxfrplvEUaGCjv 77CcP480SkbDIzvGhmvNacp1UNnbIXjPXw2Pwl/UNnv1f4RCG16empd+kmidKe3CmW6g qsSBnp2NUuFHmgES/7PuSz3kHMQgp8yWuYEbfTWwZRdE3sWigvm0Hf0PcsaNZ+ze5wwC fyMNcsnILhrrTalfL9cPazisZSYNkW6HzVei1NIvFcEgvfa9MAkhj1ID06JUDHA6dPi+ wGDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Hjv4lWsvg+hFAXBQVxvDxYwhYVqBj8cP/nEGapoZ4V4=; b=pL9FjXg4+c0A2JNnEHmUbWh9yuMpivjhliSxEWgrrH1iNTck41VAw3I18j601p/+I7 vKkJ4m7ZtvRDXfF87Rp387qDKdW08CGRb319GCuGxTsvP0cr7A2cUlATStnu+CN/ji5E pXVpqtjXEK6c5+uyksvikVKwGroCOReYccKTl+hNdkM7d3SliJv9tt7N4oy5mEXnWlWU zh7fTKb6tew/OGPSY++sF81aojnpxzc9mQ1Yj/9q6xaD41e9bgL4XwoTdDYscSox9qRo he/2QQjHtJElHLiIMPKMHu+Gc/91P/S74dHSb9G9ItKIFgzXGPCD3LNJAGeb4plUHz1f x3rQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CcmFGvBt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a1-20020a637f01000000b004276c7b2253si2843901pgd.584.2022.10.25.06.00.31; Tue, 25 Oct 2022 06:00:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CcmFGvBt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232148AbiJYMo1 (ORCPT + 99 others); Tue, 25 Oct 2022 08:44:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40814 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232235AbiJYMnq (ORCPT ); Tue, 25 Oct 2022 08:43:46 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A39C718F93B for ; Tue, 25 Oct 2022 05:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666701788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Hjv4lWsvg+hFAXBQVxvDxYwhYVqBj8cP/nEGapoZ4V4=; b=CcmFGvBtA6m7OcmKFaWHx2famfOkMWlBDilEpzlwyNkPXCxqp4VjKutUrsVRs363HAaemw nabhie3FFp7b3xuMGh9JCQ9hZKKiArM0IRgxIFMHn8dlOmO35q5stBBRJIiJiozLvD76Dw whrrIeVEyGT4Verck05bra1R3p6U4XI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-417-nfn2UCqLM1K6Lyga9TBEwg-1; Tue, 25 Oct 2022 08:43:05 -0400 X-MC-Unique: nfn2UCqLM1K6Lyga9TBEwg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6F1AC101AA47; Tue, 25 Oct 2022 12:43:04 +0000 (UTC) Received: from amdlaptop.tlv.redhat.com (dhcp-4-238.tlv.redhat.com [10.35.4.238]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1505A20290A2; Tue, 25 Oct 2022 12:43:00 +0000 (UTC) From: Maxim Levitsky To: kvm@vger.kernel.org Cc: Paolo Bonzini , Yang Zhong , linux-kselftest@vger.kernel.org, Kees Cook , Borislav Petkov , Guang Zeng , Wanpeng Li , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Maxim Levitsky , Joerg Roedel , linux-kernel@vger.kernel.org, Wei Wang , Jim Mattson , Dave Hansen , Sean Christopherson , Vitaly Kuznetsov , x86@kernel.org, Shuah Khan Subject: [PATCH v4 10/23] KVM: x86: emulator: em_sysexit should update ctxt->mode Date: Tue, 25 Oct 2022 15:42:10 +0300 Message-Id: <20221025124223.227577-11-mlevitsk@redhat.com> In-Reply-To: <20221025124223.227577-1-mlevitsk@redhat.com> References: <20221025124223.227577-1-mlevitsk@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SYSEXIT is one of the instructions that can change the processor mode, thus ctxt->mode should be updated after it. Note that this is likely a benign bug, because the only problematic mode change is from 32 bit to 64 bit which can lead to truncation of RIP, and it is not possible to do with sysexit, since sysexit running in 32 bit mode will be limited to 32 bit version. Signed-off-by: Maxim Levitsky --- arch/x86/kvm/emulate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 671f7e5871ff70..e23c984d6aae09 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -2525,6 +2525,7 @@ static int em_sysexit(struct x86_emulate_ctxt *ctxt) ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS); ctxt->_eip = rdx; + ctxt->mode = usermode; *reg_write(ctxt, VCPU_REGS_RSP) = rcx; return X86EMUL_CONTINUE; -- 2.34.3