Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4547157pxj; Wed, 12 May 2021 07:58:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwDGzgwVjws+ll5QhxG3nVU2Ai9uGpBKXxHjf13Nrn1a47wZ7LXXhGPRfGbVr3n3OVfmFgn X-Received: by 2002:a05:6402:354b:: with SMTP id f11mr44923445edd.139.1620831495687; Wed, 12 May 2021 07:58:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620831495; cv=none; d=google.com; s=arc-20160816; b=oi6cgJsmLqrt1/7WUk44aHYOW3A5byEx6zyBKOw/tz6AvB2R3KynaJnhNkjSElcI3R +zHD+nfhze1C/EAvtLokSGZf6MGYr7sofUdf4wq0cmcF+ZP0L9YDuHSZAHpWuw6gHP6t KIAJ2LNBFGpkc1tOMh7whm/j9EVz3mUIPSLEhCyz3PqrmOf+gEpjqVXjaR76+7QTm9p+ X/FkBRlhuawiVPQdomD9GGAsSTtu/qBhTbGzKBu4i8HVO8kFU7A+U5UXQ97Tg4yOiW+0 8cKIuMd5Ng45sPlsAzKQ5qxEb8fVoXWZ+NkDMhjNjKzuSCNNnGHDIEWVK3DC4f0gRmTA /5EQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZtvCeozwXK+vkl029MYpMuwiKEZ/q4M3vcZ7gFhzdzk=; b=XS+Wl8jyptA4B3CuD7qF19Cbzgxj2ooOcnEjM9GOP1tWBCR8uDWqMWXPcfvkSg7cg6 To8z8LFktE7KdjU7svA+yNt1YTCan5CQfRMuDTMvRr+6Di5xzDk/WmLbVSOglhBZ0G0j oJnZsr/xqKqDv8c3D75fxwnXRMSGcoryt3IOVWhIxe9aTPsOFFSqlkMBrzK7ShthArZE 2mdm4PGxRkZn13MYO+7ICWK6mADhA5Ib2yA0bpVMN52lDTGpoctE3AY8kGvQTaBJBOvz YSHVV/3sl7dLoZxu42uVGyOXka4ML2uP0pfjle5rQwoSDvV6yzuXdSYnBFyNtVlrkH1y HLTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=pONPMjVP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t26si204192eju.184.2021.05.12.07.57.51; Wed, 12 May 2021 07:58:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=pONPMjVP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231946AbhELO50 (ORCPT + 99 others); Wed, 12 May 2021 10:57:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:46814 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231655AbhELOzt (ORCPT ); Wed, 12 May 2021 10:55:49 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5B53D61434; Wed, 12 May 2021 14:54:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831280; bh=LOouKKu5cGs/WnsPvYMWKnVaY+/vLLimGTpJ5r1JbJw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pONPMjVPThRvkSL131hGdWEB/7Z5O5QEgDLkGqUXz21VjMN8m525i1LDE+HR6obgd 7STmW6QwjnQmvC1hHg9o5lAW0LXbtZxmo47SM8MQzRz4+bcOehWTJekswj5h6f8Bq4 M9ARrG/CkihTymPr40IbWwJfyXpPBEDMYd9HUBU8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Heiko Carstens , Christian Borntraeger , David Hildenbrand , Janosch Frank , Cornelia Huck Subject: [PATCH 5.4 057/244] KVM: s390: fix guarded storage control register handling Date: Wed, 12 May 2021 16:47:08 +0200 Message-Id: <20210512144744.869185241@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heiko Carstens commit 44bada28219031f9e8e86b84460606efa57b871e upstream. store_regs_fmt2() has an ordering problem: first the guarded storage facility is enabled on the local cpu, then preemption disabled, and then the STGSC (store guarded storage controls) instruction is executed. If the process gets scheduled away between enabling the guarded storage facility and before preemption is disabled, this might lead to a special operation exception and therefore kernel crash as soon as the process is scheduled back and the STGSC instruction is executed. Fixes: 4e0b1ab72b8a ("KVM: s390: gs support for kvm guests") Signed-off-by: Heiko Carstens Reviewed-by: Christian Borntraeger Reviewed-by: David Hildenbrand Reviewed-by: Janosch Frank Reviewed-by: Cornelia Huck Cc: # 4.12 Link: https://lore.kernel.org/r/20210415080127.1061275-1-hca@linux.ibm.com Signed-off-by: Christian Borntraeger Signed-off-by: Greg Kroah-Hartman --- arch/s390/kvm/kvm-s390.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -3980,16 +3980,16 @@ static void store_regs(struct kvm_vcpu * current->thread.fpu.fpc = vcpu->arch.host_fpregs.fpc; current->thread.fpu.regs = vcpu->arch.host_fpregs.regs; if (MACHINE_HAS_GS) { + preempt_disable(); __ctl_set_bit(2, 4); if (vcpu->arch.gs_enabled) save_gs_cb(current->thread.gs_cb); - preempt_disable(); current->thread.gs_cb = vcpu->arch.host_gscb; restore_gs_cb(vcpu->arch.host_gscb); - preempt_enable(); if (!vcpu->arch.host_gscb) __ctl_clear_bit(2, 4); vcpu->arch.host_gscb = NULL; + preempt_enable(); } /* SIE will save etoken directly into SDNX and therefore kvm_run */ }