From nobody Sat Jul 25 15:51:13 2026 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 D272542378E for ; Thu, 16 Jul 2026 15:12:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784214734; cv=none; b=d622dXnaRAP/dZCeHj4cfWUMVehQvRInsUNMARZCiMcVGLJ1ofpAI5roJC90lPuf+TTQktWRDnm8I/G2fSSjsy43U1F06Ix5HfHMx2iMYEw8M85fOxAmE/n1iwX3TKBoAot0MEZRBMUbXZOjA0B5I+SVYHa6u601h36efKhamww= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784214734; c=relaxed/simple; bh=GLp+juEsDrHE2elzXTCgtE3pWsJmhXsNM8FsKwMAwIg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kWHW62N+IfWUqAYrGiVUs6jS7PpTGisqYbObKSg3UqxRZNveE7em0wAmfQpwekfErzgeTTEyiH9KSxeIHqGQ14KusuwzivV84MkvBF3Zy0EUmBaamrRCzpkvlZrnwhxQsTIU8rF/nCX6rFa1wYULyqzwVVsMJvEERaFRGhxmckM= 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=dHpSh/pZ; arc=none smtp.client-ip=209.85.218.48 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="dHpSh/pZ" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-c1691e4ec40so115225266b.3 for ; Thu, 16 Jul 2026 08:12:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784214731; x=1784819531; 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:content-type; bh=gG+g7cvO60t9OK2852iCKFbaTdC0A88G603w2VBtTG4=; b=dHpSh/pZNB8atMItYiZo+fDpuf1ZirdSMwAg403dTdmvn+AnqNlPZ8H/w4ekneM8xY c/sTs4xyR9BgvXdhyLcPk0h4GlnEK5AOkmIhI52684XFeHTZsjRag8LhvL9/LGsueKPg ntKjoPaaIZ3kpUfBu3xNLHmp7GD82m+DixW59YRqDdnQlW9FkWyY/yxvcZEU3wH0Aeiq q4c55i+IpS6EL1kEz7XoksEn2WYfsJRnri0xhAipJpfDXKpcrdsFtBu5iHxER0t0ahHV QZgfcwGoH/KK8FXUH8d2HWTguZqqQkJXeYwvEO7/UgllCjb5Fd0Yucjtc/jh1D0EBTTC a2dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784214731; x=1784819531; 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:content-type; bh=gG+g7cvO60t9OK2852iCKFbaTdC0A88G603w2VBtTG4=; b=bYeImbN5gfYh6wgGQjdIR0zrGnqpJeicINY0jfahtfxc0OGf7d/RSH2bPZ5aGqv0M/ 9KtOmrE7dyiU1gen7Z1f47u9AW3co4KVx7ZtkTsZWK94sbRSYS5F7Sb1qPia1FRXUfrM sIO+lsgx38xBOAiK0sOLwdOro+VdceuTbnbilysOS9soXi7cnElqgCJvdOgm4hsTdBk+ ul212T7mDwLsItNyhHhCBbxGImFM0KR/vCB3J1Tt5Ssb9cUOKsJTbNqLG2IU4Y25BQfz PWT/0M03VqO7vfFLvwELoHhsE606vl+pZ4q9SlQhc7g3UJNJAY2aMYJsw8o6OPhDe60X Tblg== X-Forwarded-Encrypted: i=1; AHgh+RqJK6cFbn0aijhws4D9z+t3kpq/1SMz3P2vz7qLf+JSIe0/t1Mp30jqcOXOLLiM/RZw9qPAhXxzR5IXla8=@vger.kernel.org X-Gm-Message-State: AOJu0YxJHXbw7mW6XiA04PV2adEypbyFiZYlbCaBbxbJSC7k4gUXDFxX DsNJIbcXBXeYtXwVVVqgSFHJSIQNS3xcloy4OUY0XgGeXAA8CXSgCXP/ X-Gm-Gg: AfdE7ckXufOc+8nIs/tmao+2y/PX88t5gaYuq2xvu8gdZlt82t8qFCcBUSBRVKyypWV U35lGihIat9gj7pnMxyP55l2jY1rA8uNI5iTn05ex65FT+JhNf5+7wwfniVLmKd76XVoMoG5nrn GYwj3+FdFh5D4Ml0KMFOlxhpfedXzj2aquvdmqq9OV3TxTtzjz7BiSbNUQk2a/iEmO8BbLLlaRW 3V0I/DHYHz+o2mY9DeuK1542OfamCAnQmzAbN7rPo805ql6o/U5YTSv5VsNbJAMVW6y0eZb2DlW Jb1an+gYSi32g6FkEBnkSJrUl0AFtQJvHTRIellPae1LyJq2pZCafRVlYzReHt4f8uYmP/wAXNe 74pG2nB7FQN6lT72vCKpczjo1ZTC5OQP+sRRHV8nW0smvUvevg4boGesA5rFc3d82NjTq93R4ko LrDGPUD3CDMawHxIpBRVxDjW8UxYiviY6GkoOFZRMnpjqgUvVSyWudSAKi3XvOrfW+6lrVqKz5b WULZg== X-Received: by 2002:a17:907:3f12:b0:c16:13c3:b1ef with SMTP id a640c23a62f3a-c1667a0cd22mr638712366b.24.1784214730734; Thu, 16 Jul 2026 08:12:10 -0700 (PDT) Received: from arch-piotr.tailb7ebba.ts.net (226.55.classcom.pl. [195.150.55.226]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c16871262casm236607466b.6.2026.07.16.08.12.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 08:12:10 -0700 (PDT) From: Piotr Zarycki To: kvm@vger.kernel.org, linux-kselftest@vger.kernel.org Cc: seanjc@google.com, vkuznets@redhat.com, shuah@kernel.org, linux-kernel@vger.kernel.org, Piotr Zarycki Subject: [PATCH v4] selftests: add swap() macro to kselftest.h Date: Thu, 16 Jul 2026 17:11:51 +0200 Message-ID: <20260716151151.697403-1-piotr.zarycki@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260528154003.3594107-1-piotr.zarycki@gmail.com> References: <20260528154003.3594107-1-piotr.zarycki@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: quoted-printable Content-Type: text/plain; charset="utf-8" Add swap() to tools/testing/selftests/kselftest.h with an #ifndef guard. Remove the local swap() definition from mm/uffd-stress.c; kselftest.h is already included via uffd-common.h, so the local definition is redundant. Use swap() in hyperv_tlb_flush.c to replace the open-coded PTE swap and remove the TODO comment. Signed-off-by: Piotr Zarycki --- Changes in v4: - Drop uffd-stress.c's local swap() entirely instead of guarding it; kselftest.h is already included via uffd-common.h. Changes in v3: - Add #ifndef guard to mm/uffd-stress.c to fix a redefinition warning; uffd-stress.c defines its own swap() without a guard, which conflicts when kselftest.h is included first via uffd-common.h. Changes in v2: - Move swap() from tools/include/linux/kernel.h to kselftest.h; kernel.h breaks perf (swap is used there as a function pointer call). tools/testing/selftests/kselftest.h | 4 ++++ tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c | 6 +----- tools/testing/selftests/mm/uffd-stress.c | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/= kselftest.h index 60838b61a2da..7f53751523d8 100644 --- a/tools/testing/selftests/kselftest.h +++ b/tools/testing/selftests/kselftest.h @@ -64,6 +64,10 @@ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) #endif =20 +#ifndef swap +#define swap(a, b) do { typeof(a) __tmp =3D (a); (a) =3D (b); (b) =3D __t= mp; } while (0) +#endif + #if defined(__i386__) || defined(__x86_64__) /* arch */ /* * gcc cpuid.h provides __cpuid_count() since v4.4. diff --git a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c b/tools/tes= ting/selftests/kvm/x86/hyperv_tlb_flush.c index 15ee8b7bfc11..514d41f00714 100644 --- a/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c +++ b/tools/testing/selftests/kvm/x86/hyperv_tlb_flush.c @@ -131,14 +131,10 @@ static void set_expected_val(void *addr, u64 val, int= vcpu_id) =20 /* * Update PTEs swapping two test pages. - * TODO: use swap()/xchg() when these are provided. */ static void swap_two_test_pages(gpa_t pte_gva1, gpa_t pte_gva2) { - u64 tmp =3D *(u64 *)pte_gva1; - - *(u64 *)pte_gva1 =3D *(u64 *)pte_gva2; - *(u64 *)pte_gva2 =3D tmp; + swap(*(u64 *)pte_gva1, *(u64 *)pte_gva2); } =20 /* diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selft= ests/mm/uffd-stress.c index 700fbaa18d44..3a85a29203f4 100644 --- a/tools/testing/selftests/mm/uffd-stress.c +++ b/tools/testing/selftests/mm/uffd-stress.c @@ -56,8 +56,6 @@ static uffd_global_test_opts_t *gopts; static char *zeropage; pthread_attr_t attr; =20 -#define swap(a, b) \ - do { __auto_type __tmp =3D (a); (a) =3D (b); (b) =3D __tmp; } while (0) =20 const char *examples =3D "# Run anonymous memory test on 100MiB region with 99999 bounces:\n" --=20 2.55.0