Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp5529460rdb; Wed, 13 Dec 2023 11:10:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IEvZPE528Vew4vsmhT+thGYG4K78uyvU2d1snRhsVLlWxUDHgMa7qxtQSMVyBEd4L/Bjok5 X-Received: by 2002:a17:90a:6d65:b0:28a:fd9d:a550 with SMTP id z92-20020a17090a6d6500b0028afd9da550mr500554pjj.86.1702494649607; Wed, 13 Dec 2023 11:10:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702494649; cv=none; d=google.com; s=arc-20160816; b=0T41zrQDo6yc5Aql8nPXrXDM/8kK9evJbA7r/KvuKwXXO07Vwz2yaQNIpYIIn4y+ms 1kdP/Wemg8/cw4ErUeBg0Oqn6pAtuK7NG0R6xAinExPAl/RYSW2DFhivQ6cP6OO6xA8y R3a9EgjQyxKvRfCuV3xsPvGK4OQW9sMb5XQPGlRbH2S9VDg3YjQaHSYhPX6KpPZAyCOM kEvY5Zh8Fu3AbaIuPg36QNZhGynZgLG4YjGhrQy3V20e3/BW5tMbLd+GJSe0dfBJ/Eoo Jy0BYT2y96fG/1acC6Lmj2zn7X+D0v4tvQ6iB0xjYWXE/QqxG8wDo24lZESQCiEzkyQi BxZg== 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=He9LIJAXXmTz6FKO62nb4k03pMOPRlKulCfOI/ivCO4=; fh=OeqABZGhkWuMQua3HfO6T/DfmgPwdiEhScz9hFdobNs=; b=mr/wxWIAwGOnr3Prs0JP660bEtAlJHuA9y7qtOFJj86qmsJ+xjD0q5fHEzBwtZLwXz YcVCQnL67Wtqcmc8lJcqaUJUqELbBttChWHmittwjyFvwPaUnvR4H5g1cegLVifbJ6Pv YkB5jdzmTDw4s2i8F1+ZvY3Tq9bmF8GL4uizS4Y6/vtqLOprgtz14zk1c9q18Yr0N3Ai F+MwUeZxVuqhhsTHw40dX/E1C478XUg4WGPW40xbro9itbgBHpQGmdAY7pO6nS0T9b/Z wx95YOrhSx/IGmang0Vfeef6GVj4k3FMvkdWCwnFbm7fdM6jJ33wf8K8San7luW3lVZr sH2Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=GcY8a3jc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 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 groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id x11-20020a17090a8a8b00b0028a84e29ca4si5984973pjn.159.2023.12.13.11.10.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 11:10:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=google header.b=GcY8a3jc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id F12A780774AB; Wed, 13 Dec 2023 11:10:09 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1442025AbjLMTJt (ORCPT + 99 others); Wed, 13 Dec 2023 14:09:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235496AbjLMTJb (ORCPT ); Wed, 13 Dec 2023 14:09:31 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 987DCD47 for ; Wed, 13 Dec 2023 11:08:47 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-a1e2ded3d9fso883710066b.0 for ; Wed, 13 Dec 2023 11:08:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1702494526; x=1703099326; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=He9LIJAXXmTz6FKO62nb4k03pMOPRlKulCfOI/ivCO4=; b=GcY8a3jcWLRDkmiECsPLq4SKLDvQ4EKscmhi/h/Pm7YnInF2EVrJ9maBQmPt7IgpXc fve9O2crDKqIeu7K/yIy8GD4DCDF3RvMsd5nI3wxAsD2FPWpXb4E6jbVTrUJWDk5Mx3Y Qd7TH1vWVbYbuTKZewA0Axg8Aq1vADFKpjMws= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702494526; x=1703099326; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=He9LIJAXXmTz6FKO62nb4k03pMOPRlKulCfOI/ivCO4=; b=lG6Xaf7B5hDNpo9NZ96B6JE2uC5j2HBXyYBCZBVpUKxO/4wvWU744Jv4C3Mslx7uKP XYRdFI0xuX3NKBrG16fAT/unck+E00J1eb1O83kawKVTVx4b8Z6orEEvxbBnsF7E4+b0 0hNmdhCL65itsRQkfAPDXoygrTTEUvs/6al03b+H2xmkjrDmEsh5sQ0bzLm5NUxV2cih zNMGqOpI4z9XXu3DmVebFotsw/Pp5Vq7UVMmO7/La9+jHyaA4neB/nLV3hU9K3IDDwWf RKku0lu0NxJzJVkIEyeLMQAL4oQgGWD4XZfWkzFeqYMZdUUW6/cfhwPqndcQHhw6c7+R 6Phw== X-Gm-Message-State: AOJu0Yyavw5hnBTTlYWm6K7eJt1SkkdiqgDHg0fAPUAIpX2oJp5dZKIG ccy2KESRazG05R3GvyTWrDg7NZZLQm1qxQJMLc1wFAic X-Received: by 2002:a17:906:934e:b0:a19:a19b:789d with SMTP id p14-20020a170906934e00b00a19a19b789dmr3753248ejw.96.1702494525868; Wed, 13 Dec 2023 11:08:45 -0800 (PST) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com. [209.85.128.42]) by smtp.gmail.com with ESMTPSA id sk13-20020a170906630d00b00a1d232b39b3sm8345663ejc.145.2023.12.13.11.08.45 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Dec 2023 11:08:45 -0800 (PST) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-40c256ffdbcso74723695e9.2 for ; Wed, 13 Dec 2023 11:08:45 -0800 (PST) X-Received: by 2002:a05:600c:993:b0:40b:5e21:d356 with SMTP id w19-20020a05600c099300b0040b5e21d356mr4369668wmp.95.1702494524867; Wed, 13 Dec 2023 11:08:44 -0800 (PST) MIME-Version: 1.0 References: <20231213163443.70490-1-brgerst@gmail.com> <20231213163443.70490-2-brgerst@gmail.com> In-Reply-To: From: Linus Torvalds Date: Wed, 13 Dec 2023 11:08:27 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/3] x86: Move TSS and LDT to end of the GDT To: Brian Gerst Cc: linux-kernel@vger.kernel.org, x86@kernel.org, Ingo Molnar , Thomas Gleixner , Borislav Petkov , "H . Peter Anvin" , Peter Zijlstra Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Wed, 13 Dec 2023 11:10:10 -0800 (PST) On Wed, 13 Dec 2023 at 10:51, Linus Torvalds wrote: > > We have GDT_ENTRY_PERCPU for example, which is a kernel-only segment. > It also happens to be 32-bit only, it doesn't matter for the thing > you're trying to fix, but that valid_user_selector() thing is then > used on x86-32 too. > > So the ESPFIX and per-cpu segments are kernel-only, but then the VDSO > getcpu one is a user segment. > > And the PnP and APM BIOS segments are similarly kernel-only. Final (?) note: when looking at this, I have to say that our GDT_ENTRY_INIT() and GDT_ENTRY() macros are horrendous. I know exactly *why* they are horrendous, with all the history of passing in raw flags values, etc, and you can most certainly see that whole thing in the GDT_ENTRY() macro. It's used in assembly code in a couple of cases too. But then you look at GDT_ENTRY_INIT(), and it turns that illegible "flags" value into (slightly more) legible S/DPL/etc values. So it literally makes people use those odd "this is how this is encoded" values even when the code actually wants to use a structure definition that has the flags split out. I guess it's much too much work to really fix things, but maybe we could at least add #defines and comments for the special values. So instead of GDT_ENTRY_INIT(0xc093, 0, 0xfffff) we could maybe have #define GDT_ENTRY_FLAGS(type,s,dpl,p,avl,l,d,g) \ ((type) | (s)<<4) | \ (dpl) << 5) | .... and have #defines for those 0xc093 values (with comments), so that we'd have GDT_ENTRY_INIT(KERNEL_DATA_FLAGS, 0, 0xffff) instead of a magic 0xc093 number. This would require some nit-picky "read all those values and know the crazy descriptor table layout" thing. Maybe somebody has a serious case of insomnia and boredom? Linus