From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 74A1513D51C for ; Sun, 15 Mar 2026 18:59:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773601147; cv=none; b=m9Pkc20EEqttrpEyVoiLjlAeEquJ2kL9xCL+VuvgMvIf5goCdV0FLuXOIjuq4+Gx9w7obZjpe7a0q3Qr051/2eJtWbdpxp40Z76YEnsSsvTglgr+38oWsHYPMryGWlCE+T7Z27SdlTtUwWinK42IZ8vCgV2w8A0K4cURWqKPlmI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773601147; c=relaxed/simple; bh=JxlY+Q6YlArxRPFjIBcDy7cUCg1qCv5lcXgIRei49Ic=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FQuzr9bhIcEzzm7q1vL5XZChITCyMnnXNC9P2DnV+wqSMPT/bkoP6y9vBgczwL177nT7NOzuM9k0+cFHAaahv7kBZOImD4IaXXUn/7KrYstc4IiIhONZ0KZOzV2nd9RkDImPrIB5cZB5aGpLA9uUnphwmEME7M+Jgmx3ijyi1CY= 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=FEjSJM4H; arc=none smtp.client-ip=209.85.221.53 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="FEjSJM4H" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-439cd6b0aedso2953621f8f.1 for ; Sun, 15 Mar 2026 11:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773601145; x=1774205945; 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=CAyX6GXYtg7Rn3FHKIXBbFd5m2ihGyjftaZK5jVFt/A=; b=FEjSJM4HWyM3R03hWbhL9SaSdR0WsiCcXzbhZwRXzNxb7h/QjRUqgKsBqj+S8h6R06 y3XVslvcXyTeThnN60xBiqARaex9jmd6gm/Kn/LM+xKvxqEtzbcOwIxAsxVfOICOy+lI ChAAkQNakHKix3cNNCTz+UPQDbdL4WIiXRgOYhiCNmCom/BYmJMfhcu/UJ/y30PeHyzh UsaSPYZr4gGFnjQ0toUqGr6fAO3+/xeyayMAwfjvGjbVt6PZ/pcyGzMg4rhRMN0QE2Fd nmbSkwOC7DWd2m4yqVtjePfnIJ2vd+4Vey+y2O/6UG1DZr6Hpc5T5NTB3l9NBROdu4ix 6rog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773601145; x=1774205945; 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=CAyX6GXYtg7Rn3FHKIXBbFd5m2ihGyjftaZK5jVFt/A=; b=SVqneRFVD5jdvg2ZD6+oz+5Q5gd1T2tJIg/aHL7bEXYTPl78HzLq3qlvW467fk3W43 cXmyKzghzfbbczxX76NeCoMRuTCZFdzj0sWcngyoQVd63prJJJrczhDMGp/Wx6vgJLWq pqOFch2z6mY4CP10Wth4QkU1aVw/mantPBzcL72OrhhwGargThxKEC70X2XfYFyOqv5O LBQ909ovxcwRcAs9GsMPV/foOzoFY9blkT8ThiBwvZh9NnQBSQLLPip6eYMDr73fMw+l V38FOjkdTet4yl3WZ5Cd9buVHL70NnP42DyoUaWAySybhfghnb1a86oWCqkon9gZGSnO lmXw== X-Forwarded-Encrypted: i=1; AJvYcCU357XZNnlv4gYsywruHpGOQ3arHVF+R7jC9YDTCYGkmwpkEDJlZwQbM3Qcc5S/Hk6JJznlY9jlQdc/xrY=@vger.kernel.org X-Gm-Message-State: AOJu0YyhojNR9J99GeqltkPFybqbIGnNWh/z7fzqnsk03/147EmS8jp1 asOHmxwoqGwhGmgYrh7sorRz9UWz0Zu6/pO5gwelaGg7w+WA++VstohJ X-Gm-Gg: ATEYQzzuhm5xFsjIAPPCrt1cSgJKl5F+isk5VJ+gIUCOjUceAs1Ep6N8R6PfT3Kxcl+ EBz+rQEQ6xL3uiVXGKAUdxCuofg+9574Fuj7S4BZGXdeRnWUaDKcGoOkd2WibrDj+QMUonlIrSt xgQUdFPTBnbfxQs0fEh1pRqQu6gYQcLammXKOLt6DLkTXWAcCgU3E1ilvFS0Dh2cNK0vHzNwV/1 djSsP1jJw3CI5Chv0KTiJGE11qtxYicJOHcHoTsNleXe17qEhwpjOOFUVgblVuQ7VquS5a9+OuP EGR39PisrszN5VxvYxXIc2659NfLuIjUocAgTLMb2HeTKhFOAUMvV1xNi6457ZV+qFGtOAs4eTZ gNFOTyB6tLzjXPVaSWwXgb2trG/5a9/MH9rOP+gC5tsGsO2iDt7t7egmE+uoD6lPo7bKg5lG8pm 4uSPRd8HM09NvddEPwFPjyKHn6h6fgCYyRw2E0Y4G2SjNrVoJHvLauvrEpMhUpmQ1IQUdZHjfR3 zrizVGWKgpAlwFwqtYCtNLzwIaaZY3ZHUR0YG9iAw7S X-Received: by 2002:a05:6000:2385:b0:439:c550:d920 with SMTP id ffacd0b85a97d-43a04dcbae3mr19266194f8f.47.1773601144691; Sun, 15 Mar 2026 11:59:04 -0700 (PDT) Received: from fedora ([46.248.82.114]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe1a76e5sm34881965f8f.12.2026.03.15.11.59.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Mar 2026 11:59:03 -0700 (PDT) From: Uros Bizjak To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Uros Bizjak , "Peter Zijlstra (Intel)" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Subject: [PATCH -tip v4 2/4] x86/segment: Remove unnecessary memory clobber from savesegment() Date: Sun, 15 Mar 2026 19:51:43 +0100 Message-ID: <20260315185248.16615-2-ubizjak@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260315185248.16615-1-ubizjak@gmail.com> References: <20260315185248.16615-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 The savesegment() macro uses inline assembly to copy a segment register into a general-purpose register: movl %seg, reg This instruction does not access memory, yet the inline asm currently declares a "memory" clobber, which unnecessarily acts as a compiler barrier and may inhibit optimization. Remove the "memory" clobber and mark the asm as `asm volatile` instead. Segment register loads in the kernel are implemented using `asm volatile`, so the compiler will not schedule segment register reads before those loads. Using `asm volatile` preserves the intended ordering with other segment register operations without imposing an unnecessary global memory barrier. No functional change intended. Signed-off-by: Uros Bizjak Acked-by: "Peter Zijlstra (Intel)" Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Dave Hansen Cc: "H. Peter Anvin" --- arch/x86/include/asm/segment.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h index 9f5be2bbd291..3fe3a310844c 100644 --- a/arch/x86/include/asm/segment.h +++ b/arch/x86/include/asm/segment.h @@ -348,7 +348,7 @@ static inline void __loadsegment_fs(unsigned short value) * Save a segment register away: */ #define savesegment(seg, value) \ - asm("movl %%" #seg ",%k0" : "=r" (value) : : "memory") + asm volatile("movl %%" #seg ",%k0" : "=r" (value)) #endif /* !__ASSEMBLER__ */ #endif /* __KERNEL__ */ -- 2.53.0