Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp443527imu; Thu, 8 Nov 2018 10:26:49 -0800 (PST) X-Google-Smtp-Source: AJdET5ddzcxjXlhWukYOsa+SdB9iix9jZ9kKmZiyavueSQPyMyCnabDSeaIbJ97+xDJcvdy0zbn5 X-Received: by 2002:a63:4a4a:: with SMTP id j10-v6mr4783833pgl.0.1541701609326; Thu, 08 Nov 2018 10:26:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541701609; cv=none; d=google.com; s=arc-20160816; b=FTBHFJtCfghYVlbJpQZ0NgaIKwBufHFqhZ5MLKP42l5xsBAJ2rsRaM7P9Fv2w9ARHZ dZvuzfEHmFbVUjTNdb0fgd0EKl3W15gRVVWDBI3GDMmtHX82CcK6aoLfxQgJnNiq93ZM BAb1e+6aKxzWcaCLh6VTnOl6VO7S4OXYVY7TvVaa8h+EY2LszJbSw/dV7xw89RuZZlpM lwsMzJJs2KQnB5ynROpqkyA1ltr2mvWg78K/GTCYAwvmf5m9ykU3SfG9LE+cV8K+fDDP YGv6pZ2OY3aIIvJ1nnptIDFmgc9GCq8YUSsqgb8E15jMbd7q33ORNu0a9pEmCkkzZvIO T4Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=TeGvDy8RK7IinqtDIxQSvKmVvjX9FuurXn/IJ071UWM=; b=pxV3dojkw5pMJuQDnGv0Nz96fKjxRePZvHdHoTCnKqBfQ6FyvEsbo/8Q8cJ1ICSl6b gSRSA3DREFyjF5ubOq8y5oODw2R9uptY0SC4Y4KxKr5sYszxsw5uoz+G0EGdrS3gntkP bxFv5/LgFhPiO9CDTni2WU6VTiWn1jZRJa1sJQsdNUM0P7jMRr02Sa7W1OgRCSEXb1Wh lo+y1nGG29Ss2XiBH/lWfT9x7fGaYmkAgZGGDI2XvtoFU10QQu0xzERBscjIib4kHGnw jacA8cVAOkvYRg1Z1P8XTamwAaiB2L7HCxm4N3qwstYCFOmhSmBhO6/oDePyj6qGMxu0 kAKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2VfHeAqf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p10-v6si5195975pll.63.2018.11.08.10.26.33; Thu, 08 Nov 2018 10:26:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2VfHeAqf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727251AbeKIECW (ORCPT + 99 others); Thu, 8 Nov 2018 23:02:22 -0500 Received: from mail.kernel.org ([198.145.29.99]:54356 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726801AbeKIECW (ORCPT ); Thu, 8 Nov 2018 23:02:22 -0500 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D4F2C2089F for ; Thu, 8 Nov 2018 18:25:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541701537; bh=1btlQgstCpJizvq6kZHc76gmMfvapjxjFfB1YtKv9hc=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=2VfHeAqf4tFX+DYTLht0rE/yFHZSWTdDscN+eUuluGJQZWsVxLJImPu31/5CDLlJY Z5a7BKHEQl2U5UNa153jX14kxXDWNkGTdyhFgIe0dVr6pSKMy+uc/tL8w+6p4CP/qy NwBBwunfmBpETFlGkFeC5XcOajMQMEbEMzw4A7tk= Received: by mail-wr1-f51.google.com with SMTP id k15-v6so19331151wre.12 for ; Thu, 08 Nov 2018 10:25:36 -0800 (PST) X-Gm-Message-State: AGRZ1gL7TKzZTQu1FBdELQDZ5SQKOGsDha2t0WyAqQkwxFB+nNg//USz eMN3ydud9wo1tHgaSbMiNSCjDOU07ejyz4uLaUsPyg== X-Received: by 2002:adf:82c9:: with SMTP id 67-v6mr4882257wrc.131.1541701535293; Thu, 08 Nov 2018 10:25:35 -0800 (PST) MIME-Version: 1.0 References: <20181107194858.9380-1-bigeasy@linutronix.de> <20181107194858.9380-23-bigeasy@linutronix.de> In-Reply-To: <20181107194858.9380-23-bigeasy@linutronix.de> From: Andy Lutomirski Date: Thu, 8 Nov 2018 10:25:24 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 22/23] x86/fpu: Don't restore the FPU state directly from userland in __fpu__restore_sig() To: Sebastian Andrzej Siewior Cc: LKML , X86 ML , Andrew Lutomirski , Paolo Bonzini , Radim Krcmar , kvm list , "Jason A. Donenfeld" , Rik van Riel , Dave Hansen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 7, 2018 at 11:49 AM Sebastian Andrzej Siewior wrote: > > __fpu__restore_sig() restores the CPU's FPU state directly from > userland. If we restore registers on return to userland then we can't > load them directly from userland because a context switch/BH could > destroy them. > > Restore the FPU registers after they have been copied from userland. > __fpregs_changes_begin() ensures that they are not modified while beeing > worked on. TIF_NEED_FPU_LOAD is clreared we want to keep our state, not > the saved state. I'm conceptually okay with this change, but what happens if the registers that are copied into the kernel are garbage? We used to fail the restore and presumably kill the task. What happens now?