From patchwork Tue Nov 14 16:12:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 165012 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:a59:b0:164:83eb:24d7 with SMTP id 25csp2031983rwb; Tue, 14 Nov 2023 08:13:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IG/eekEo9RMapvJb1Up/MCr9QWYPcjWcSOVSyhlMAAx9NA2zDIvbaBSG84ZGagyGAVscPmm X-Received: by 2002:a05:6808:1a08:b0:3af:9851:4d32 with SMTP id bk8-20020a0568081a0800b003af98514d32mr13943996oib.7.1699978384515; Tue, 14 Nov 2023 08:13:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699978384; cv=none; d=google.com; s=arc-20160816; b=YvwAq+t6lhPKEdtCI8tITwFY8GYxTguloUsUHMW9qJWPlIZx7Sg0yLUKn+DS9v6ABo S5awi/wZ2EYTl9kc2l/FAuedw6mgsXUcqmKRXuxZLJWbAVIyCFTvRDuP+F8dUIqoPSuB /T6/lMeGqUgtln/Ne0KPEULj56LdkEdYQ8qkNZEoPdWgChC/7hpCAH5vvCa/At25bvU0 4nw6Ao7BGWU+fVz0oOHco2MwtPtuNcKe6AQSn6qrtXk6IqlruNzPfl1M7oySvsqaEIR1 yZHkmpGpOWhN3VNSJavcXZfN9KQp0rP+j+IpIEeMXi56FZTRxq2/Q/IXu3sHQ5XE8oBZ 3Zdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=1lJaslXnMkKNGe8kNkSR81TKcfbPuYkx4sjlNhJ0HDw=; fh=TV3zhL0WT+fcxAYrM5ythikZ1c2r3/qEL1+SrYsElW0=; b=uccS/SVMrOuxkrO/VWl/ZZvk4Tf/uugix72wOi8heahPsJyjnOpEOaf2mkEtSrltJV L1QOpARmTJURQFDzKlIwrWCov9FxNJWpoR+KY4PDH42zYEM3eNvIMI6THjFbOOLHApOp jhe2zc6ry20jy0YFSsFD0wDB9ek6cGaj/apw7Ie1MojHZVvrhg+7WUxche8PjueW0rYg GXQOp7soo6agq2UlOVM1QwdY/7Svog4PNSIaeIjyUZygW82kpgUPWmfZqEVVg6aYrsPc lE8Eq4OVS36eTM8b8fOIpk+t3QOok7CrH2SpCQEP1uqBMhpdww0rBSyF8u5LBlydNIZR viSw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XNqJckzz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id 14-20020a630b0e000000b00565ead2509asi7854800pgl.199.2023.11.14.08.12.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Nov 2023 08:13:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XNqJckzz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 3024B8037AB2; Tue, 14 Nov 2023 08:12:57 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233786AbjKNQMn (ORCPT + 29 others); Tue, 14 Nov 2023 11:12:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233320AbjKNQMm (ORCPT ); Tue, 14 Nov 2023 11:12:42 -0500 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CAFFFE for ; Tue, 14 Nov 2023 08:12:39 -0800 (PST) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4083f61322fso45338515e9.1 for ; Tue, 14 Nov 2023 08:12:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699978357; x=1700583157; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=1lJaslXnMkKNGe8kNkSR81TKcfbPuYkx4sjlNhJ0HDw=; b=XNqJckzzHheIgR8t3xXZK7/mcuAR6Imaj5mbWUGmpOGrkADvkWsNVlJWd9Rl/KPuVj B9hSyMSQUhuuONubMweE2t3kD1z/AX3fXM5VyZgbJNiPEaKvA/FY5GTcBMFskOIomhOh F0hKIfKdMsXCHGFDHU0+6qWFiogzW0kSpKrp6RMI6J8cniFt6aKBZeo+WsHgpjNy6dMI utWp8nb14XnG99dwSSTYOYVuQwwJTLQ3IaqO4nQjvjLZRN/xwMmjrKQE5xjx/5NEHZ7e mkf+v0Z5wJ47yxCtb9XKSaBfGbiCi68287JSTb8SWrVO8WdDnnaa2/lTmQTVLt3TlnIX of3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699978357; x=1700583157; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1lJaslXnMkKNGe8kNkSR81TKcfbPuYkx4sjlNhJ0HDw=; b=fNjlGPd42pP5ytp1H06IBsy1RoeF68iP6DBkw7cGudQzqSXCgybl1HlxBFi8Eq8d/v 6YVcqOD7IelPxGyZMvRJImRURC8swEH0WESnCUnQ2ZIJzHfQVeTgWp6PJXuHVWXNw/T/ C81SL84Qe++0OaL0nWJj9tyzDqD8uDe0m1iBGKEfj7bDxhi8a2BjynbIaPktK61xmqmo 5VnSI1E6mzKdsTYmD/G1vsF0jscM5891ZXCjOyFZDKynPg4/2UHHtxdddwqP+zg7yQkF RxJQ9S6iBjDiMTwx5kga3kn+tcIbK/Tr+pXlYGfAU+vhNLIrJR0sDrkDCpCp+Bpr5sG3 jn/Q== X-Gm-Message-State: AOJu0YxbHPUs/Po6URIbHiJ8vGn3pdKl1QjBST0P4m+lq0ZweoPYhKRN 8YfqIxlZIwYnCqKcFGFKLSs= X-Received: by 2002:a05:600c:4f8e:b0:40a:3e41:7dd8 with SMTP id n14-20020a05600c4f8e00b0040a3e417dd8mr7451120wmq.13.1699978357319; Tue, 14 Nov 2023 08:12:37 -0800 (PST) Received: from localhost.localdomain ([46.248.82.114]) by smtp.gmail.com with ESMTPSA id fk11-20020a05600c0ccb00b003feea62440bsm12052427wmb.43.2023.11.14.08.12.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Nov 2023 08:12:37 -0800 (PST) From: Uros Bizjak To: kexec@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Uros Bizjak , Eric Biederman Subject: [PATCH] kexec: Use atomic_try_cmpxchg in crash_kexec Date: Tue, 14 Nov 2023 17:12:01 +0100 Message-ID: <20231114161228.108516-1-ubizjak@gmail.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 14 Nov 2023 08:12:57 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1782556534832500456 X-GMAIL-MSGID: 1782556534832500456 Use atomic_try_cmpxchg instead of cmpxchg (*ptr, old, new) == old in crash_kexec(). x86 CMPXCHG instruction returns success in ZF flag, so this change saves a compare after cmpxchg. No functional change intended. Cc: Eric Biederman Signed-off-by: Uros Bizjak Acked-by: Baoquan He --- kernel/kexec_core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index be5642a4ec49..bc4c096ab1f3 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -1063,9 +1063,10 @@ __bpf_kfunc void crash_kexec(struct pt_regs *regs) * panic(). Otherwise parallel calls of panic() and crash_kexec() * may stop each other. To exclude them, we use panic_cpu here too. */ + old_cpu = PANIC_CPU_INVALID; this_cpu = raw_smp_processor_id(); - old_cpu = atomic_cmpxchg(&panic_cpu, PANIC_CPU_INVALID, this_cpu); - if (old_cpu == PANIC_CPU_INVALID) { + + if (atomic_try_cmpxchg(&panic_cpu, &old_cpu, this_cpu)) { /* This is the 1st CPU which comes here, so go ahead. */ __crash_kexec(regs);