From nobody Sat Jun 13 02:03:58 2026 Received: from mail-wr1-f73.google.com (mail-wr1-f73.google.com [209.85.221.73]) (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 01161373BE7 for ; Mon, 11 May 2026 11:38:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778499484; cv=none; b=B1hO5zaz58VLJTWIDd0WPDJsp65tCjVEm8OolGmUfk2fidZo9EyQCiswXmi9RuB8K3JCivfRg5LZkT+K+fWnWdQumWoagCmqGlFjapA/NdjXqlrSBpMX9C5ED4+JzJsguVyUjaFQ3ou5PIah5z1jfoRCgV5gMg+Iu0W4C879YVA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778499484; c=relaxed/simple; bh=eaY6TK+Qpe+lIaRuB6hMveOfH0bKxY7FKAgnCBah25M=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=VaRcx5NzFqxmJ17/K6d9QY+VKauXps9MsicviLm/mvOBejECN1SiYWZwf+boijW4hOYC/XAf9mRMbMPtQwgpCFRKJG37qJnWY7DTveyaN+0qlXN303l11SEX/zOhGyX1E76IM0MqSkIzGgv/1qpnwDD72UXYKjqwZgU9hTIac1E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--tabba.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=dYrKEV2v; arc=none smtp.client-ip=209.85.221.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--tabba.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="dYrKEV2v" Received: by mail-wr1-f73.google.com with SMTP id ffacd0b85a97d-447f2ce5556so2650626f8f.2 for ; Mon, 11 May 2026 04:38:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778499481; x=1779104281; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=kzm1887tbi5TpLOTPTV8msNtv3UBrK/MPRsLv3+5U+k=; b=dYrKEV2v14rwfKI8jnlPESyjvvZnNDJuuwiuTtWx6Qi2At/wOwN5BKKiOs68Md6+uk owjbQWjws9pu7TAB3TKlbGZ78WtJ0D5/IfQTx0CGDflYQckwBEBvLRnWVduqcG73SsBD npe0ROPc1RTK5ZmwgTu/fYiUBKzccjDgsDN+yrMzAdzGmr8vNuRbkFPQDaMVJYPJo1TI br8NP8BCqt+SFWa7MxvcetbeRxLuwUVMLG7Zepmy8CFQv3aUH0THWxCRO1Y+YQHPgzA6 e2Ga/T6OB4dgdXHtq+l0VNbLvv5tYCzatl9GbZnwi2jXRMhZXLPPEkIMSFwV+QOCB/1r XxQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778499481; x=1779104281; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kzm1887tbi5TpLOTPTV8msNtv3UBrK/MPRsLv3+5U+k=; b=EjLwyUh9sTvZ9euTwae1llw7bfF6tdia1ET5ky7ArvpifljyaeMWETQS9u+DQiQujk xGaZddxGpoWU+2MUASd9LG4ds/1K0Qe6ln5YMJwMNlMSnMXGNFRQmjEwvuvX98r67Hla 9Pe3gb3KND1/QoSKrDJt6kuugnhUdJhK+vkegO7U6/gw3bq0WIq8CKA19MEzlRz9oKEd l95/gS+ZITxpVUJbMmdD0If5asyQzwCcYepHRB/TFFY4zWz0OZ9DY58vV6SxB8aFi2A2 SLIDjaYg6PDVYq67bqs8XcO/e7au9di2DYHEQp8CZiuwuoK5UmZqQOonBxw+egyyXPA3 kM8g== X-Forwarded-Encrypted: i=1; AFNElJ9ybOM5h9AvsuWd/NxI2IhMFgs0O20PZ3cyQlqYFEia+NFBff8pUh74xwCo7KoqzHIxTXRsWLP7+1cKEEQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyW7lcoacTVaG8LQa+wH/HswcC5uhTH7YpwmG/a0Pri8oElqq0s aj+/Z6SATFrNiMymePL2fVRkZ80NOCo6fpCo4N7E6MM2nH8Ms+RFRbv4c/1SgvHr09hpO10I1fo 0Sg== X-Received: from wmfq17.prod.google.com ([2002:a05:600c:2e51:b0:48a:5970:2007]) (user=tabba job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:3055:b0:488:ac01:72de with SMTP id 5b1f17b1804b1-48e51e0bc2fmr222188565e9.5.1778499481339; Mon, 11 May 2026 04:38:01 -0700 (PDT) Date: Mon, 11 May 2026 12:37:58 +0100 In-Reply-To: <20260511113759.610924-1-tabba@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260511113759.610924-1-tabba@google.com> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog Message-ID: <20260511113759.610924-2-tabba@google.com> Subject: [PATCH 1/2] KVM: selftests: Fix MADV_COLLAPSE build failure on older toolchains From: Fuad Tabba To: Paolo Bonzini , Sean Christopherson , Shuah Khan Cc: Marc Zyngier , Oliver Upton , Will Deacon , Ackerley Tng , David Matlack , kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" guest_memfd_test.c uses MADV_COLLAPSE unconditionally, but the constant was only exposed in glibc 2.37. Distros still on older glibc (e.g. Debian Bookworm, glibc 2.36) cannot build the test. Add a compile-time fallback that defines MADV_COLLAPSE to its kernel-ABI value when the libc header does not, matching the established selftest pattern for sometimes-missing libc constants (see selftests/bpf/uprobe_multi.c, selftests/mm/hugetlb-soft-offline.c). Fixes: 9830209b4ae8 ("KVM: selftests: Test MADV_COLLAPSE on guest_memfd") Signed-off-by: Fuad Tabba --- tools/testing/selftests/kvm/guest_memfd_test.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/testing/selftests/kvm/guest_memfd_test.c b/tools/testing= /selftests/kvm/guest_memfd_test.c index d6528c6f5e03..45990ae5f1e5 100644 --- a/tools/testing/selftests/kvm/guest_memfd_test.c +++ b/tools/testing/selftests/kvm/guest_memfd_test.c @@ -23,6 +23,10 @@ #include "test_util.h" #include "ucall_common.h" =20 +#ifndef MADV_COLLAPSE +#define MADV_COLLAPSE 25 +#endif + static size_t page_size; =20 static void test_file_read_write(int fd, size_t total_size) --=20 2.54.0.563.g4f69b47b94-goog From nobody Sat Jun 13 02:03:58 2026 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 C1C61374E71 for ; Mon, 11 May 2026 11:38:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778499485; cv=none; b=F78Xh7OWphQOrnjGkwNi/trwSXYNQNPKEpUgGEC2A20rfhZQw+a0H7r0AuWi7ou3QBYWnXIKACZUSYW7VjYTbZiB+CdzHZX9JO4n+UZwZIbLtKMEggBOVn5EpiTJP+V/MPl4QQDmUIaCRU2gj2+R+j3GBS268a2x0dDkhMcThYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778499485; c=relaxed/simple; bh=EOWmfLNuS8z2erR5IqiGNX4TFSQ82cXVDTp98cptEII=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=clwZWjjT9Kfd8qHj7UtpM/bOE9iCUaKfGH9HymIPVo8cYKzls0dpBuXagtLe2GZ1H0Yk2MBgkAgTRXGi2ImxIRJpvKftKb95DXR6HwVy7ChtFuUWRG00kCBJBzH0LEg0AJ/8sSEvs7IIS34VPsjO/idpH9BNaZ+EvshxPO93fvw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--tabba.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jgo+LHj4; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--tabba.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jgo+LHj4" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-48d0677b5f7so24032885e9.1 for ; Mon, 11 May 2026 04:38:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778499482; x=1779104282; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=135gcqRF2uJesg3YaRFV8E4Vlot8XdxjYp/uZeTNldQ=; b=jgo+LHj4sdm92JVUYbyWHxWDVAQ1yBt/SftnMUx2G5PRVgDd3wYvbjXAe/N/7KAQby K6r8c4jYShhJ1HmTr9S/s/smwcQP1P1xnM4QZxw+KuF2/Z6bAGk6MaRXWRbn3hcKprul sONiacZkl/BEYYWxf9au5RPzcvUB9p3kVPjIVPEz2uXrQWff8RidgtK0rZrs5C3p4olr xR1k/m3auNgoq9XaZt+YqNeGEH/y4Lwl82nE+SWEJdrccXbc2uKib5/Xz4E11v+LQc/K k3g/CW9X6cLhjB5dqkGMjZFWiPu4VYrAt1b8tddROV68W6ZA6nNu5etnQajKmTNT2tT3 zdBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778499482; x=1779104282; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=135gcqRF2uJesg3YaRFV8E4Vlot8XdxjYp/uZeTNldQ=; b=d+qNK4f8LIcy5tvepzrI9v0134uYv5Eaxjh44xls3z8mtyD7/+dFmkL18agWLnaIse L8FoPJOfKfEJ+3BnxXxRHEtz4Sz/mWk0riHSLr67o3ijnrJDBbC2kErDn5eNBxJCvyEH CijXeK7xDQy6SF+fjDZEIf84DWITPOe2k+sumB+G8GhbzpZS64nvln46VN73M5TQ/V9i UW/ZeV7Hz+YY7TwEhcVoi3Bl81BjA3zhr7+DzM9G1IJLMGNfl8fSoJD0OaGla4UlRBNk HzHhz5/WWLRtaRigbfjOpq2QkYdGUOI8xgKbXeGVZ2uFCPGr6LB3w76muaNEIPQtIN+T qpYw== X-Forwarded-Encrypted: i=1; AFNElJ+/WEsTCAODZfCWjyIuEAel++WEdwQWp5a5ZkfKwqsejzEpn9IX0aI4MSR/7/EJpTFnnwQYT9d+Z9kMJ2s=@vger.kernel.org X-Gm-Message-State: AOJu0YxQcIyHVjCWassJ1lY+Z7rIa5hCvb9o4P4BLq7Vzt+UQGBWYJ6h yYkKfrzlYuy7J4xJ+7g7gOPtH9WlN70JYpEDvjBY0KysA3T+CuKZTd33LjGyNy2i/iX1h/NqVsP hcw== X-Received: from wmor7.prod.google.com ([2002:a05:600c:4587:b0:488:a6d9:e91a]) (user=tabba job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:a305:b0:488:8bdd:cfcc with SMTP id 5b1f17b1804b1-48e51dd6025mr266717105e9.0.1778499482188; Mon, 11 May 2026 04:38:02 -0700 (PDT) Date: Mon, 11 May 2026 12:37:59 +0100 In-Reply-To: <20260511113759.610924-1-tabba@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260511113759.610924-1-tabba@google.com> X-Mailer: git-send-email 2.54.0.563.g4f69b47b94-goog Message-ID: <20260511113759.610924-3-tabba@google.com> Subject: [PATCH 2/2] KVM: selftests: Fix FD double-close in kvm_vm_release() From: Fuad Tabba To: Paolo Bonzini , Sean Christopherson , Shuah Khan Cc: Marc Zyngier , Oliver Upton , Will Deacon , Ackerley Tng , David Matlack , kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" kvm_vm_release() closes vmp->fd and vmp->kvm_fd unconditionally, and kvm_vm_free() calls kvm_vm_release() at teardown. A test that calls kvm_vm_release() and then kvm_vm_free() without a vm_recreate_with_one_vcpu() in between double-closes both FDs. Since kvm_close() asserts on close() failure, the second close trips TEST_ASSERT and aborts the test, or, if the FD was recycled, silently closes an unrelated file. Guard the two closes in kvm_vm_release() by checking each FD against -1 and resetting it to -1 after closing, matching the existing kvm_stats_release() idiom. Existing in-tree callers all pass through vm_recreate_with_one_vcpu() before teardown, so they reassign the FDs and do not hit the bug today. Fixes: fa3899add105 ("kvm: selftests: add basic test for state save and res= tore") Signed-off-by: Fuad Tabba --- tools/testing/selftests/kvm/lib/kvm_util.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index 2a76eca7029d..e44223714fd4 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -793,8 +793,14 @@ void kvm_vm_release(struct kvm_vm *vmp) list_for_each_entry_safe(vcpu, tmp, &vmp->vcpus, list) vm_vcpu_rm(vmp, vcpu); =20 - kvm_close(vmp->fd); - kvm_close(vmp->kvm_fd); + if (vmp->fd >=3D 0) { + kvm_close(vmp->fd); + vmp->fd =3D -1; + } + if (vmp->kvm_fd >=3D 0) { + kvm_close(vmp->kvm_fd); + vmp->kvm_fd =3D -1; + } =20 /* Free cached stats metadata and close FD */ kvm_stats_release(&vmp->stats); --=20 2.54.0.563.g4f69b47b94-goog