From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.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 B9ACC308F26 for ; Thu, 23 Jul 2026 06:59:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784789984; cv=none; b=O/0Yn1Mo/1NpdJSg1xnaheqtvebZaVH/lpDOMYpDoL4Ma3Pdxsy3zBTslpBVdC4dFO+W142m96F9XVdQ1hu5KxomYwjf7fzPP29mVWHEXufIQJZznSQz3luZVUHSNKu7erQLbqXXEf+4lyIOLuLyHIRLjDpXmTsNWvEL7g1+XJQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784789984; c=relaxed/simple; bh=Yem6L3W9pePFEYgWTdgOun9o+GdTYxcjAv9PyTI6v0k=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=enLCKn3xSvb5vpRoy7SKYjCcQnT5XNx/5DGnffuckAJ+cYVW71H7IN+c2+hsBlkKfg1u8j+TE1GM81MTp9XW61/giySL9M03Dr3R2pvc3rt2XwPVWQvFJF3RgoydOmSQcafW1WBlOcwFboXMyN3TZlAIbb4Y/fJwbyQ9vGtdCkI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=TFJXS1gL; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="TFJXS1gL" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-49554ebb87dso3025965e9.3 for ; Wed, 22 Jul 2026 23:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1784789981; x=1785394781; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=xjAZiGXpd0CSGVgZfcdRxovUfmNvf7gTbYTIde+ER0I=; b=TFJXS1gLCM9NFXebCrMpMh0xOY/Fyh1ZjLkEErHoPR77cr2NnLgVedefMsecCOzfbV GcUOFoo0aN6cXaBzFPpzDmFMJ+f9RNQWAVfGbp/FJ++c69KpSutduWcUQpV6IPmgFML8 GB5Ooj4WxGscWDrmEMbfdXIJsIniHWN+ezqkkVVmx5Kfx2EBlhfVKCK8I14cKvoqyy/W YPfQexBo9X37qp5K0H0TcB1xIBomAqbrOhm8SlTMvytjqeR90Rk1tjHfvKqwBJkZU+vm td/CDIygVs3NyH4jJ3a3TzfbuRZwQI1cMxvF59YvBcJQePgdBy4zFmHOUwrZXeamDNSe nzYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784789981; x=1785394781; h=content-transfer-encoding:content-type:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xjAZiGXpd0CSGVgZfcdRxovUfmNvf7gTbYTIde+ER0I=; b=qpkBeXIVqgUCLX+CIYIYh1ZAHaT76YVzz9fN2LXVslOQTBIqr4JT0Lc7Cjd0NYMu8k jg/R7CWQJB1aBbz1OoMnwk8rkM23EnSOMbk0h093gpfYoM4X+YNO9ZflsUDNs1QHAVE7 BbL2LU7+1625RGqtJWQPm7JwD/1r1dvTE+eJn6H+2M7gLh9gNfAiVSRHuhjht5g5FX5/ Iv7w0Q+h/nlzv+HlYTrB0zTqKt7R4IC0f3/IWcr1G2SPlKrcOEF5hk74uIzxxFcEXYcJ 1qjKU1MQgRWPcAjqwa1yNrm+eOX7YQGRYF2ZrkVWlT3Ex9vfQEESSrqyymgSd8CXvX9v 2oGQ== X-Forwarded-Encrypted: i=1; AHgh+RoNcBgb6a7RU5BvwtltmW1KHIDD6pRxOE/dEHCCFvdpU9LgdnzLYS509iMZ8GMswoFwyIiQk6gRbNozsBA=@vger.kernel.org X-Gm-Message-State: AOJu0YzTo0xex3hOdJsMYHaP6uR470L57WsBqRsJAOmMm6jouRtVD+1Q KagI6kgGJ5Ke4/qYOI7q1LOXywfRAbPqjeLW2YjGqA0xnTWo5TdG+VbyEfEGxKJANxSmGnxGHGc ftv5dDg== X-Gm-Gg: AR+sD13HXhK+mmtR/EgEKYbJpPPdUc25Hz9qzdwJb6gmk52GIs/vJhvbWiSRlCmZzgt cUceeXdF+nHB61pU4IBFE7l+BDLPUGb7hl/Xr8Jnd8G9BeLwuYK4YctqPR4EvoTLO2OxyFmVQ7e BFRno6A9EhifSnDCKPCVK8wxu5KF013mmzfv4kWfZC3ND6ICFmYJVou9dWDfU7iyycLs7rmNPSl rdEPIPXDirAmaGLUOO0WjAQA8NPJiDDYTUfM+RqhlxXom+2IwfRddCtMG3+U1AlAHkb7ukvYvsX T6MiK01k/30TI9yzSiK+fQI7nZQPooVafm1yI9uj56dhThDsIb7S6StrjwpXiltKK/rA7jzBKhH 6C2vs1OZ8pZTkf6obgKW6AgN44qdHwN4DKnK+Opvfq5Mbfb/VQb2sMLFo1qY/z1keFzqqMiMGZv 5uWJT4MemizvxFyrn7dFOlLcIv874YQicLWGKXrrjkYNbuSPwJy6cpyX4XEc0akXZJJA== X-Received: by 2002:a05:600c:6012:b0:495:4d2d:82f2 with SMTP id 5b1f17b1804b1-49573d0eb3emr12449405e9.26.1784789980946; Wed, 22 Jul 2026 23:59:40 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4956a6354a3sm198616985e9.10.2026.07.22.23.59.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Jul 2026 23:59:40 -0700 (PDT) Message-ID: <4daed8ac-b533-436f-9f86-6d297b87abbb@suse.com> Date: Thu, 23 Jul 2026 08:59:39 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 2/5] x86/asm: add volatile, clobbers and zero-length check in inline memcmp To: "H. Peter Anvin" , Mauricio Faria de Oliveira Cc: Thomas Gleixner , Ingo Molnar , Dave Hansen , x86@kernel.org, Juergen Gross , Alexey Dobriyan , Boris Ostrovsky , kernel-dev@igalia.com, linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org, Borislav Petkov References: <20260721-pvh-kasan-inline-v7-0-38979a50cef0@igalia.com> <20260721-pvh-kasan-inline-v7-2-38979a50cef0@igalia.com> <20260722170334.GCamD35gwrCng30WH1@fat_crate.local> <0F3A1121-208F-4F71-8C88-BEAE7CB50E75@zytor.com> Content-Language: en-US From: Jan Beulich Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <0F3A1121-208F-4F71-8C88-BEAE7CB50E75@zytor.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 22.07.2026 20:45, H. Peter Anvin wrote: > On July 22, 2026 10:03:34 AM PDT, Borislav Petkov wrote: >> hpa in To:. >> >> On Tue, Jul 21, 2026 at 12:56:43PM -0300, Mauricio Faria de Oliveira wrote: >>> Add the volatile qualifier and clobbers parameter to prevent bugs with >>> instruction reordering and optimization. >>> >>> Also check the zero-length case, as the 'repe' prefix does not run the >>> 'cmpsb' instruction if the 'count' register is zero, which doesn't set >> >> Please use capital letters for insns: REPE, CMPSB and you don't need to put >> words in '' - it reads fine without them. >> >>> the condition-code/zero flag, so the result is based on a stale flag. >>> >>> Those are pre-existing issues found by Sashiko. >>> >>> Link: https://sashiko.dev/#/patchset/20260701-pvh-kasan-inline-v6-0-ba99045dfa9f%40igalia.com >>> Signed-off-by: Mauricio Faria de Oliveira >>> --- >>> arch/x86/include/asm/shared/string.h | 8 ++++++-- >>> 1 file changed, 6 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/x86/include/asm/shared/string.h b/arch/x86/include/asm/shared/string.h >>> index 02b92927553f7b8e1c87e6122bbaa70439e57ea7..166274e44f3cb49e3dccab3cdac281d67aef5d44 100644 >>> --- a/arch/x86/include/asm/shared/string.h >>> +++ b/arch/x86/include/asm/shared/string.h >>> @@ -11,8 +11,12 @@ static __always_inline int __inline_memcmp(const void *s1, const void *s2, size_ >>> { >>> bool diff; >>> >>> - asm("repe cmpsb" >>> - : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len)); >>> + if (len == 0) >>> + return 0; >>> + >>> + asm volatile("repe cmpsb" >>> + : "=@ccnz" (diff), "+D" (s1), "+S" (s2), "+c" (len) >>> + : : "cc", "memory"); >>> >>> return diff; >>> } >> >> So this is a fix which should probably go to stable, I think. Going back into >> git history, it points to >> >> 62bd0337d0c4 ("Top header file for new x86 setup code") >> >>from 2007. And we have carried it this way through the years and who knows >> what hit this or not. So please make this the first patch in your set - you >> can even send it separately so that I can get route it through stable. >> >> Then you can base the rest ontop. >> >> Thx. >> > > Also, this is silly. Instead of adding a whole separate test, just do "test %3,%3" before the repe to set ZF and let the REPE skip. Besides this, isn't the function effectively returning bool wrong anyway? This way you can use it for equal / not-equal comparisons, but not for sorting and alike. Jan