From mboxrd@z Thu Jan 1 00:00:00 1970 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 smtp.subspace.kernel.org (Postfix) with ESMTPS id 04D9722126C for ; Wed, 11 Mar 2026 08:29:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773217770; cv=none; b=oAf9sIED/R3N9stusVkbs9m4YAIIW+M1AJgIp0EATEDet+CzbnQVvJrhN83G3l3VxVIqKPSWFGAL1sGttZdJUTuYSwf2j2GVFIdb/YZeXRst9GVMhiOOq5hEXvI9rJ2lgCShQKITT5Z8B3Phrq1gbdPbQcrCProfGnn5PsiTtFE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773217770; c=relaxed/simple; bh=JxlY+Q6YlArxRPFjIBcDy7cUCg1qCv5lcXgIRei49Ic=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s8nXyUTzeVTDH8YpXWluKrXvQfkKMhE9+d5FBAvHIkXpbTM9CkomOb4KqLsyJbGKc6neoLvjk6j5mez4kKb3hw/wLMr2iEIs0uT6+QYfGJWYKUjimcU9eedRYMaeDakQ+GgMYvIMelIs/Jxqe0peYTbER7VZdGRRSPOl6zxqM8s= 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=an2LkEO4; arc=none smtp.client-ip=209.85.221.51 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="an2LkEO4" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-439c5b40f60so6414308f8f.0 for ; Wed, 11 Mar 2026 01:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773217765; x=1773822565; 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=an2LkEO4S1N3+OWvHBcifBvgTseKfV1fMlF4UxxmM21HtqXm1kI1POSY47/PCg7xUe DEuS7MovnB5Y2h7fs1B+TxR6WB2UYerVkt+fzjzC9SrXuwfzCDYZg8NAWbSJIjrfbFL1 Z2qogedQHGla1GUQS3AJSRFfhYg6XqEiLtG5Kmr1XswJDLRXeQbPLJPYcO6hAhGzUkZB 0QZF6NgLJ4oMk8LQFnrShGP0ic2dHaB+MLgGAUCXdb0HVjRINbo6RfR8ZiEuUMG+8Vmo ewRlv7R4jY86mX24I+AHwDJOvlA2hT5hBIQUzPN0nGhZl2VMInm0oGoD+QUdi/ZT7iSb le2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773217765; x=1773822565; 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=Fv4OubUoVHErQvPMQsrY8rCufkkmC/ZEK/ABkOcaKxW/hwOqbwqeGbtFN7AhA657tA psTHu1S1OTKeqkX/cuQ0EsZ/31+jJpm/0eVMj7daNeYPQAky1O7ywpp602+1ewkOFerT gt8kA8LaO4Yc9XEz7sWN4e9Hb4CrAP3b8b9upsXMGD/yZwX6t25dvV7ymmiI5aJiPc1n yCaMjMBb6B6Q/SCLi5iyF0LdLWLZVUCVe72K/9nw+Xwqtf8b8zxNFIO05fu5lKcrTBUZ l86esIQ4DtFAql9e+qZW6Z5Lb5pItzA9aqCa12g9BIsa5Rw9qPUd7JHaWXQUZLhw/Teu O+BQ== X-Forwarded-Encrypted: i=1; AJvYcCVJPXy/E9/kmAFQ4H0uTWMj0qcTkQDvOerVuEODbOWzPB4HFFdcMkrMAVpYIlu9AEGgQGtg2Jz8fIwPpks=@vger.kernel.org X-Gm-Message-State: AOJu0YwdFA/gh4QcxPapelLpXUSL4FComBKnuYY3fUg1rPpOMnZzGkjg 9ZoqR9d8AWkuiffIaZo5vuObNS6wZFwFgLKrhyhwdcbQc0GM9dASGCNb X-Gm-Gg: ATEYQzxYdS1HxFw8tP/1UyoO1+65PETj+3MDUrMU9ZcjkYhoo95kZRUx0zcvGZ0QDm5 HYzURC9Tx77jJVEbQe1NXixkUvsjNBh3JW+kzznuYa+mRoKLlD2RRwESUPf7w1yA9buCEu9ke71 OQWLOgll/7HIKZ2mr45iqPHwgsYeqehoxRFHY1Y6OClkVVVI2VxRnqJV9Kl48dwvh2PfY/6XuWQ vZ4aVy5s+lsTx519hA8MyQAEr9iaL5NMWmV7GWjHY1eWIRZ2c1fN+7VPsNhoNanLQyPm+9qIEBg TkcAe8w8rM2SuZCVMJ4KSFPGBm5dnPpjf0Gv8oE/sngjf4GnOOa8cK/HuGeHzxHD4ePF6t3w96q QZn6fxbxyBTBkkvGk1Pp9ON3yITRTdpabOXT55hxHT52s9NhesUye0Kr02N4V7++Wo3ec6BsPjt waD9nTC5Duk4TpgpsVjEjf/z1ew+GFclZQMhzkrZtkw83lJfiILvamt1E2rjIEO7Xk9VSYhOlNH MUDpIb7b3/FymCvNA0bl+U3jctfKIJxJz+YbvOeGR5SvMOjhu/Xa0o= X-Received: by 2002:a5d:5d85:0:b0:439:cee7:714f with SMTP id ffacd0b85a97d-439f8415282mr3159751f8f.53.1773217764960; Wed, 11 Mar 2026 01:29:24 -0700 (PDT) Received: from fedora ([193.77.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439f8104515sm4553335f8f.0.2026.03.11.01.29.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 01:29:24 -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 v2 2/3] x86/segment: Remove unnecessary memory clobber from savesegment() Date: Wed, 11 Mar 2026 09:28:56 +0100 Message-ID: <20260311082915.205061-2-ubizjak@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260311082915.205061-1-ubizjak@gmail.com> References: <20260311082915.205061-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