From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F378037DEB0 for ; Wed, 1 Apr 2026 08:58:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775033935; cv=none; b=XPzlZ4Q2sIL1xTwkp/rbjLOFuYEpOFS7nW2wRlBp/lpCW+LAd801VndaRIpDfkb/f40x3nwuzPl0GY22hodzxy/rgGQ/PC0RQ5ix726HrCcv7M5kNhGDdRYlERUMyyevsoCKfuo+kRkPgNpEUr9ZJdEWjnPcu0o1APAxMmN27PQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775033935; c=relaxed/simple; bh=PPdjeddpFjnBT2zbpNq19PZSPH5de4eWWisRZibE6EM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CNosSc1PS/pdcqQB+wee1N4RXRiUslXfasGwkajouWOriwpoIiszjgc//6yu8NiPtHOaKoqFGeZC5UuOnHuhQM2bhg0OBsToXMUtPxE1P85SdY8ObXrLPxVtjrJhXD7N/f/ar3kgXNbjDPJaLo7zxYvHuhWWHk0jerLCaHcPJeY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sbQv6W8J; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sbQv6W8J" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-483487335c2so70635145e9.2 for ; Wed, 01 Apr 2026 01:58:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775033932; x=1775638732; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=W5qglsCoLsHxN9TEbPZdSHaLUC1QtUeSBxxkCWokqUU=; b=sbQv6W8JsIJYV3b2jb68fnbLUEKRBOa3tuH/BBEXj4rInLTjOvCJLfZML0Y36pdVi+ XTpplrsvC3XD7DDtrP5zcESYQIeNK6VOnYMlr0uDPN61OZMLgbIVPsQDOKTI1H7rNWE8 fV5OBsVqWJOjidRB9bugq3/FAQxohSTsuVNaK96UXSp1ISe/rsROmaTAZ82rinfHv9qn lHYDg7kak+9hyVMXVZR9xCMdQQ9VG8Zxoxtw1OS1OaGI3Wi3kiEoLo9CHwsYHRkTc8Eo Xv8ag/JKEok27EFp3ClLE35T5E/cMBB+j2BGixJs98tEGHFF1Lel4M6a12gtesGJeFHn PuWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775033932; x=1775638732; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=W5qglsCoLsHxN9TEbPZdSHaLUC1QtUeSBxxkCWokqUU=; b=EbQNKQ2kcFgs5n9C00zYyT+4H+sfsTk0MOZE2Nz2dJu2A54KNsHSFJeIHs92I/GTHT ki4dtmZv+77qBu0bNmXPb938NRSL6+OEI5+E9G33gA1mYFc1LiaGpoTReAe6wnT8UEkT axPvW7mHHgy7ewcs5c4CHpendrjuUqQskvYXUVovUi02kynRNpJeAjPvmiDWv8aTY4Ks Yg47Le/1CqakZ8UXHQ7tz3tyEjR+7WNectRZrmKLtiUL7j67sDJveWwKQZsyYFR6s2N8 o6h3a81B1GYRTGMin6wDZGb9yu9EmeC+6UcoOjXa6P2UA5BdG1I/uCApOL2D7UgKdHEx G4Qw== X-Forwarded-Encrypted: i=1; AJvYcCUeh0JK9OKkK7c9sEKExuiybbZBCA96s2zmpd8w9uOCzA7EanS6kZ6eaIMjPH2mBsGOs9np48B8WiXSBGo=@vger.kernel.org X-Gm-Message-State: AOJu0Yyhh1EaOxsH9NEsFqQrRyUe8GLtG2O352MzuXwlTSeXivRiovhx +UxLmdgO+AOixr9dVedqgUjcCFNGZCEB2qDSDVMzyU80yFZ+sG7cI+db X-Gm-Gg: ATEYQzxGBC4Y3Uc5U8BH3zOHI+EwuOloPG4Y3CbEdAvK5C3jI13EHZ+A3co9c0ngkto cHnuQxd9ymE1T/Wwuol8NMiCT6S67yqUaTnghN2HwKHXHjDI86opFiKBdhGyMcFLKX/P6W1lsEA KDwMaz/ln4wYHnq0x/4TVhEGgwyT8U56Q3+BnN3qJw17cwpRd3lLGZnd8vSKXOGcaBkjKrtH6nu /YAV5mQ72Lid/i9+6rDt/1NiHxehYqoJuaA3Y43SJGI3tuRHhp3s1QwiT1/j05kfo976THvAEQv lFbFwWtj5G3xpT1TOwHxKuAASp2FeC0LnVT8NyxvibM3zRCb0iKHLtDmd4HMy+VIfilOiwkiHFm xhcukiH8ldfexnhvDSMI5OkKRK4dZi/JF/Zu0mMF9qSNdP/ADaocyiT5MlEPUmJ28PnF5db1hrw cAAsmpUyuQ5yGRXLDG71/jlCXP/3Sx8NS5AP8SV5KbavlyK6fN4tnLe/CTij9/eDg4GDKeuegHJ SCTmU2OPqOAxG5Pvtb/nFn8HWA2xIPsG3iRZ3UDR2Bi X-Received: by 2002:a05:600c:810a:b0:485:3812:36f6 with SMTP id 5b1f17b1804b1-4888359db64mr43650695e9.21.1775033932218; Wed, 01 Apr 2026 01:58:52 -0700 (PDT) Received: from fedora ([193.77.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e829c43sm92309035e9.5.2026.04.01.01.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 01:58:51 -0700 (PDT) From: Uros Bizjak To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Uros Bizjak , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Subject: [PATCH -tip v2 2/3] x86/process: Use savesegment_mem16() when saving segment selectors Date: Wed, 1 Apr 2026 10:58:11 +0200 Message-ID: <20260401085832.285121-2-ubizjak@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401085832.285121-1-ubizjak@gmail.com> References: <20260401085832.285121-1-ubizjak@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Switch segment save sites in copy_thread() and save_fsgs() from savesegment() to the newly introduced savesegment_mem16() helper. These call sites only store the segment selector into a u16 field and do not require the value in a general-purpose register. Using savesegment_mem16() avoids the unnecessary register intermediate and better matches the intended use. The generated code is improved from, e.g.: 34f: 8c c0 mov %es,%eax 351: 66 89 83 08 0c 00 00 mov %ax,0xc08(%rbx) to a single direct store: 34f: 8c 83 08 0c 00 00 mov %es,0xc08(%rbx) This is a mechanical follow-up to the introduction of savesegment_mem16(), with no functional change. Signed-off-by: Uros Bizjak Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Dave Hansen Cc: "H. Peter Anvin" --- arch/x86/kernel/process.c | 4 ++-- arch/x86/kernel/process_64.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 4c718f8adc59..f7a38345980c 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -197,8 +197,8 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args) p->thread.gsindex = current->thread.gsindex; p->thread.gsbase = current->thread.gsbase; - savesegment(es, p->thread.es); - savesegment(ds, p->thread.ds); + savesegment_mem16(es, p->thread.es); + savesegment_mem16(ds, p->thread.ds); if (p->mm && (clone_flags & (CLONE_VM | CLONE_VFORK)) == CLONE_VM) set_bit(MM_CONTEXT_LOCK_LAM, &p->mm->context.flags); diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index b85e715ebb30..619b46f9bcba 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -275,8 +275,8 @@ static __always_inline void save_base_legacy(struct task_struct *prev_p, static __always_inline void save_fsgs(struct task_struct *task) { - savesegment(fs, task->thread.fsindex); - savesegment(gs, task->thread.gsindex); + savesegment_mem16(fs, task->thread.fsindex); + savesegment_mem16(gs, task->thread.gsindex); if (static_cpu_has(X86_FEATURE_FSGSBASE)) { /* * If FSGSBASE is enabled, we can't make any useful guesses -- 2.53.0