Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2255474pxj; Sat, 22 May 2021 16:41:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyFtQrIE8TPXaCvrStWuTNi5XOE1j0HgpPqEeRE2jRi03XLBzLp5stx7IvSAB7nwQlZWC5K X-Received: by 2002:a05:6e02:1b06:: with SMTP id i6mr6149940ilv.139.1621726871022; Sat, 22 May 2021 16:41:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621726871; cv=none; d=google.com; s=arc-20160816; b=vEJ6ST/PRctnEG7LTEt+Di7Ib3n7EY46SHurLsy1bWde4URF2r8gn6twPELXbPpwkZ ww/QQvddkyges1Yc4DsF1TyUdswy2dPF+koLZsRnRZNqUBkaJZPzhBIjthFpth07Ek4N OWYNXFtMRYPKxo0N168rybshLp0DBRODAxaxHMjo386yAVw4HpLfGgLRGaKMPv2HLo+c Jz0WGFrFBSvf0XA/vcSWCahX+xYSv0/c6Pe+S7rQN6oiTyBtqGvncdAHvApohgcDGfmI zKWaDQhHEvqvYxHxgcZJZr9wX+42cxJyg1yaicSpclcLT3F2cF/qFhJFW4HL/0TrCb12 dANw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=rno4+UYV3mJMcBepT5/8pOWIevW5hu3KryEoSs1IUF0=; b=pQTB4yjvnAc6Z3xAYL44wUDhBXsotOJxMPcvEZQF8aTXhIcu61+I+bb3nr3L0EaPgx xV2/iU1h4o8S0ws3CN5kG4QnE/wK5+Xv0yr+fcKEgRQo0ILJW75gH0yt9mofDmAWQGZJ CACmqYVMS6WotTRs2SqOfUr+pl6g4A6E4O6jTkRSeLUqK9NgCIzV0kdIbSzcrzpJaNHE aYUpB56mBTq/E57wlkj6nEEgHp+dl2HiD0S3A6YsgDaoC6WWaEkRMAzz67gdWKpX6kBp hIqBZcMK0K3qmsvkEoU/KDqURq5ohVlxm/shO6n0DY5d/YIAwFiOTFKk1D9EvjmDWitu 1VJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=B+TwDyrW; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d8si9596415ilo.3.2021.05.22.16.40.57; Sat, 22 May 2021 16:41:11 -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=@kernel.org header.s=k20201202 header.b=B+TwDyrW; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231446AbhEVXlA (ORCPT + 99 others); Sat, 22 May 2021 19:41:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:58706 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231440AbhEVXk7 (ORCPT ); Sat, 22 May 2021 19:40:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EB873611AB for ; Sat, 22 May 2021 23:39:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1621726773; bh=zDjcQM82T3zWBFosGa25gfnhyhFFiGZ7lvxtB2YXTlI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=B+TwDyrWGdAjEvCjjmZ1r2ApPYlRVCsMUQTzIrMnFG9NNW22o0HCcvbabvN9ZmwzI hJpNC7YT1zc+wJP7BEcfl9DpfT9sWrDhD9IMV/uqVnhfK6UtolN4p/KsH8UnLRzf4R 8UrPti9HeYVeCFyXy8R7zrdLHuLp+1QNyKhU5fAtnD2Hy3trJIrxMSVkrTmofmZvFw cDdaLbPINEZ9qn0UQ0JyIphclHsqWkFK1v1KEoofR82jPoEvUA1G2HTg7xclExac6s xO+nceMPqnnXVXFFJYS7NI/qVyDOZ2kLadnfxKyM+bjxSVw7pqeX0axB4/wveF1Wnm DEnmPwPWrL3Tg== Received: by mail-ej1-f41.google.com with SMTP id l1so35999481ejb.6 for ; Sat, 22 May 2021 16:39:32 -0700 (PDT) X-Gm-Message-State: AOAM532x81YphxNknd9Q/CRB5ZOQe+BBMIe7xS8R2XXHJ4TA82GDfL70 7ANfcdOpB6FSZCUcn5KYihwauXMTBQuYnq5H2Tvw5w== X-Received: by 2002:a17:906:458:: with SMTP id e24mr17084955eja.199.1621726771411; Sat, 22 May 2021 16:39:31 -0700 (PDT) MIME-Version: 1.0 References: <20210521221211.29077-1-yu-cheng.yu@intel.com> <20210521221211.29077-25-yu-cheng.yu@intel.com> In-Reply-To: <20210521221211.29077-25-yu-cheng.yu@intel.com> From: Andy Lutomirski Date: Sat, 22 May 2021 16:39:19 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v27 24/31] x86/cet/shstk: Handle thread shadow stack To: Yu-cheng Yu Cc: X86 ML , "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , LKML , "open list:DOCUMENTATION" , Linux-MM , linux-arch , Linux API , Arnd Bergmann , Andy Lutomirski , Balbir Singh , Borislav Petkov , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , "H.J. Lu" , Jann Horn , Jonathan Corbet , Kees Cook , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , "Ravi V. Shankar" , Vedvyas Shanbhogue , Dave Martin , Weijiang Yang , Pengfei Xu , Haitao Huang Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 21, 2021 at 3:14 PM Yu-cheng Yu wrote: > diff --git a/arch/x86/kernel/shstk.c b/arch/x86/kernel/shstk.c > index 5ea2b494e9f9..8e5f772181b9 100644 > --- a/arch/x86/kernel/shstk.c > +++ b/arch/x86/kernel/shstk.c > @@ -71,6 +71,53 @@ int shstk_setup(void) > return 0; > } > > +int shstk_alloc_thread_stack(struct task_struct *tsk, unsigned long clone_flags, > + unsigned long stack_size) > +{ ... > + state = get_xsave_addr(&tsk->thread.fpu.state.xsave, XFEATURE_CET_USER); > + if (!state) > + return -EINVAL; > + The get_xsave_addr() API is horrible, and we already have one egregiously buggy instance in the kernel. Let's not add another dubious use case. If state == NULL, this means that CET_USER is in its init state. CET_USER in the init state should behave identically regardless of whether XINUSE[CET_USER] is set. Can you please adjust this code accordingly? Thanks, Andy