From nobody Sun Feb 8 12:36:56 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E94CEEB64DD for ; Fri, 21 Jul 2023 16:11:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230445AbjGUQLG (ORCPT ); Fri, 21 Jul 2023 12:11:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231463AbjGUQKw (ORCPT ); Fri, 21 Jul 2023 12:10:52 -0400 Received: from mail-yw1-x112f.google.com (mail-yw1-x112f.google.com [IPv6:2607:f8b0:4864:20::112f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BA4830E3 for ; Fri, 21 Jul 2023 09:10:47 -0700 (PDT) Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-57712d00cc1so23278667b3.3 for ; Fri, 21 Jul 2023 09:10:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689955845; x=1690560645; 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=zxkycSrtZLZVeXZKUZ3rCjnmJ8chLKLmrvSzsZapgiI=; b=GvLsqNkhErKyb8uFLMrn4qKmg1ICEZ9/esxS4P/Py0iIeSW7WkpRr9VqGIFl1e/jub cCNuzBKaVinBIfXZSILW32IohpfiEFdpWj3N28TdvwLcngvqZE4jKAVy5XqNqqhiXztG IY2ODWi93TUF9+a+StZ8k+Xkz+m+aoqMkqe3tn1kIDXvVkDANKEmfhdo+1hdd95lBA7j 7xyIEZEaN2OnoFsbC77KPwu+dWRv+Qi1Qvj9dEVBBlyklIxaSCGmRtS/AX5HBfyu0ueN bkLLOEKuCIk4hrB+xKsu2cmBPFAiGFtNI9TrEiWpLRC2dr67X/3g8jxswsyYh93sti4g NiLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689955845; x=1690560645; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zxkycSrtZLZVeXZKUZ3rCjnmJ8chLKLmrvSzsZapgiI=; b=YNXI/guidzRkV2dvwgkiz4g7OE0FMH2niXz4DuKBZbjmbpsFxa7YbRQ3D4Dg9E6ls/ njWVdfqBNeFphFk958ODQ1XtlSiN0AoU5ZjKU7lEZQ4+QUTKVfAoW1O235v/cxPA7O2B tTQhyUvM3XyhRqDD4QR1sdTYFbVbVxCOh2OVdY2V8EzynMfi6lGK05rn/4dDFKkm2dJf NBZQ1KsP+ctTYSz07mjT9qKDZTbkhlFjmUzu3Wt1OX1w4sjl+C9nH+4vNgaAgy4v96Tt uSHRrVAFHzeSe/+GBOIDOVb6d8zHZ0yWsG81AiAYx3kHhImEDCsAsHxBvzyTAzpu90IS G3VQ== X-Gm-Message-State: ABy/qLbCJQRD834cDcheu5F2j9rwMmRh222XQW4QJ1uA0pE0I0sD3xEn Yg1anyKLgjq1YLlHdpd/8WUG55TwnQ== X-Google-Smtp-Source: APBJJlHEt7lS54ZpbMhVafN7d6SHseBebzRLgVo4bmzbHBmUa/9KBujZgXW1iRUZ+F5swNWxzb+pIQ== X-Received: by 2002:a25:2f8e:0:b0:ce8:cd8d:f0db with SMTP id v136-20020a252f8e000000b00ce8cd8df0dbmr1940050ybv.28.1689955845563; Fri, 21 Jul 2023 09:10:45 -0700 (PDT) Received: from citadel.. (047-026-243-217.res.spectrum.com. [47.26.243.217]) by smtp.gmail.com with ESMTPSA id c16-20020ac87d90000000b004054fbf9273sm311286qtd.80.2023.07.21.09.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jul 2023 09:10:44 -0700 (PDT) From: Brian Gerst To: linux-kernel@vger.kernel.org, x86@kernel.org Cc: Thomas Gleixner , Borislav Petkov , "H . Peter Anvin" , Andy Lutomirski , =?UTF-8?q?Mika=20Penttil=C3=A4?= , Brian Gerst Subject: [PATCH v2 4/6] x86/entry/32: Convert do_fast_syscall_32() to bool return type Date: Fri, 21 Jul 2023 12:10:15 -0400 Message-ID: <20230721161018.50214-5-brgerst@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230721161018.50214-1-brgerst@gmail.com> References: <20230721161018.50214-1-brgerst@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Signed-off-by: Brian Gerst --- arch/x86/entry/common.c | 10 +++++----- arch/x86/entry/entry_32.S | 2 +- arch/x86/entry/entry_64_compat.S | 2 +- arch/x86/include/asm/syscall.h | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index cccdd18c8304..5b3594457af3 100644 --- a/arch/x86/entry/common.c +++ b/arch/x86/entry/common.c @@ -220,8 +220,8 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs= *regs) return true; } =20 -/* Returns 0 to return using IRET or 1 to return using SYSEXIT/SYSRETL. */ -__visible noinstr long do_fast_syscall_32(struct pt_regs *regs) +/* Returns true to return using SYSEXIT/SYSRETL, or false to use IRET */ +__visible noinstr bool do_fast_syscall_32(struct pt_regs *regs) { /* * Called using the internal vDSO SYSENTER/SYSCALL32 calling @@ -239,7 +239,7 @@ __visible noinstr long do_fast_syscall_32(struct pt_reg= s *regs) =20 /* Invoke the syscall. If it failed, keep it simple: use IRET. */ if (!__do_fast_syscall_32(regs)) - return 0; + return false; =20 #ifdef CONFIG_X86_64 /* @@ -272,8 +272,8 @@ __visible noinstr long do_fast_syscall_32(struct pt_reg= s *regs) #endif } =20 -/* Returns 0 to return using IRET or 1 to return using SYSEXIT/SYSRETL. */ -__visible noinstr long do_SYSENTER_32(struct pt_regs *regs) +/* Returns true to return using SYSEXIT/SYSRETL, or false to use IRET */ +__visible noinstr bool do_SYSENTER_32(struct pt_regs *regs) { /* SYSENTER loses RSP, but the vDSO saved it in RBP. */ regs->sp =3D regs->bp; diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S index 6e6af42e044a..c73047bf9f4b 100644 --- a/arch/x86/entry/entry_32.S +++ b/arch/x86/entry/entry_32.S @@ -837,7 +837,7 @@ SYM_FUNC_START(entry_SYSENTER_32) =20 movl %esp, %eax call do_SYSENTER_32 - testl %eax, %eax + testb %al, %al jz .Lsyscall_32_done =20 STACKLEAK_ERASE diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_com= pat.S index b16272395f1a..27c05d08558a 100644 --- a/arch/x86/entry/entry_64_compat.S +++ b/arch/x86/entry/entry_64_compat.S @@ -212,7 +212,7 @@ SYM_INNER_LABEL(entry_SYSCALL_compat_after_hwframe, SYM= _L_GLOBAL) =20 sysret32_from_system_call: /* XEN PV guests always use IRET path */ - ALTERNATIVE "testl %eax, %eax; jz swapgs_restore_regs_and_return_to_userm= ode", \ + ALTERNATIVE "testb %al, %al; jz swapgs_restore_regs_and_return_to_usermod= e", \ "jmp swapgs_restore_regs_and_return_to_usermode", X86_FEATURE_XENPV =20 /* diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index be6c5515e0b9..f44e2f9ab65d 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h @@ -131,7 +131,7 @@ bool do_syscall_64(struct pt_regs *regs, int nr); #endif /* CONFIG_X86_32 */ =20 void do_int80_syscall_32(struct pt_regs *regs); -long do_fast_syscall_32(struct pt_regs *regs); -long do_SYSENTER_32(struct pt_regs *regs); +bool do_fast_syscall_32(struct pt_regs *regs); +bool do_SYSENTER_32(struct pt_regs *regs); =20 #endif /* _ASM_X86_SYSCALL_H */ --=20 2.41.0