From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from stravinsky.debian.org (stravinsky.debian.org [82.195.75.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC3B541B8F7 for ; Mon, 10 Aug 2026 16:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=82.195.75.108 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786379306; cv=none; b=VKMcJ5MKt9IVESECGbs4gMCfT2bMtb2bIqEGc9Y5aOujIZdnQ5H9FmnDdjKHMrVvffXh0XCjnU2u5EYe0pw8onNyKC+8WfRe50pXG+DUxaZ0R+Mhxc+Ow8tT6COSfQrhwLRHqYqFyRiHaKVQ016GN47LBgpS1nu3+xhjbVBUExU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786379306; c=relaxed/simple; bh=0eADPU9A+Bin6aphy+90if2YapwKINa2j/tvvdSh++4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TgL1qNWCnLJaHB/X9XyVeTZI4xz75pM+G7ddsmECtC+9AhCgtdEQ3mTLNOrDSWifTeVlXpmcHfo+Pui0F30u83uPV6f8nlUmf+ieEmHE0yChV+yicCZ+LMfm1+1db2jY0ULGAPalk7OGlMw3cNy3TZOqna4d/BJJjBP4d9Trako= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=debian.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b=P8Bf3oH0; arc=none smtp.client-ip=82.195.75.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=debian.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=debian.org header.i=@debian.org header.b="P8Bf3oH0" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; s=smtpauto.stravinsky; h=X-Debian-User:Cc:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description; bh=QfzutoXq/QhHceqFzC7g3Uo92nX5QF8uEfbvCV0Qpnk=; b=P8Bf3oH0xACrqWSVqO4gaIQoH6 oWVLgg5NGpmJ+zmFnkycvZlswPi7MCSTJVwXsb76e9db+GwB3J5/UxQAR3evm5U+tHZyBrg18xAHU q8OfPEG7pGXppy/7Bs5bDlSf5DX2h0QJULjB857W6mTg2ewYMkpy1L9a4Cy/obFHaMdDAJEjKbxbT nD2OaKygZ6Uj8wWDrPdcuxpjevu1LdshG2CNWDn+R9MI1pKtVB+hobU0PsTfQ8Nx8IB4UwinjILHw o3aWUM84DpCYRaaMPMbvKHkpAzJ7dSmmKDb/66YUsCAZZUr3jV/NqYcKf0xYjrAPKziTZoWy6JTNd eUFRe++Q==; Received: from authenticated-user by stravinsky.debian.org with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) (envelope-from ) id 1wtSr6-002ufm-2w; Mon, 10 Aug 2026 16:28:05 +0000 From: Breno Leitao Date: Mon, 10 Aug 2026 09:26:51 -0700 Subject: [PATCH 3/3] mm: fail the fault on a malformed swap entry instead of retrying it Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260810-swap-v1-3-375ef0767206@debian.org> References: <20260810-swap-v1-0-375ef0767206@debian.org> In-Reply-To: <20260810-swap-v1-0-375ef0767206@debian.org> To: Andrew Morton , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Barry Song , Youngjun Park , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Jann Horn , Pedro Falcato , Hugh Dickins , Baolin Wang , Peter Xu , Johannes Weiner , Yosry Ahmed , Chengming Zhou Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com, Breno Leitao X-Mailer: b4 0.16-dev-f8e9d X-Developer-Signature: v=1; a=openpgp-sha256; l=989; i=leitao@debian.org; h=from:subject:message-id; bh=0eADPU9A+Bin6aphy+90if2YapwKINa2j/tvvdSh++4=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBqefvpGtHBBh+N6jpzTsBrdYBNmMXi5BcUh3JQQ lHLipIx1UqJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCann76QAKCRA1o5Of/Hh3 bXmiD/9LikOkeDPB49YFIg2IhmzZtXvnNr0DB8lO72WHE1E21H4aVITrHKKdxdxMglgwsd9T2GW QeSKLxSfxsUo95+eCNcHn7StmJbcLjhV9i9zS/qrzpeSMRWlGOhjGJxE3K6LsVno69+3MqSKHXT 8PzHFA/Xn2wUy94vxKXcYAaIsPCqUi+w84pOKYcMKIBfPcaHsm8FXRs2vJdaysU9nsR5Oxg39fN IlEKlObmPKCUHo/ylEKtjyUI6s775g7PCE4oNGDMnczXryYgr77zMJpYzvAF1sWIUph2js4AbDk /UzbhIJPoiDYipq0rlokHYMhhyFSzl2tZ0+cCn5+5vsmXILZvwtBbkvZMX9grBRlhG376hPZTXk NMOBCeu7ZXOQXdxZuUTYHLuJ7Jbdw+KMDh2WzNp28kXzCd5dZwKxh6t78TPFIJF+f1OxjFxEYnw iwNmbBMiA+D/yt6eUfDgxtLib2UuyA3HU9caVBHXEqAaFYRZHKtZK39IRg6FgClcfhDGa3EsM0f N6Clgnwb5OhBxMHU+QUuU8dpW9q4f2FrAQg/hnZ7GHRoxSFj+i6VknaTFC/R1AvSiMLsnJ7VqBw vvS7Eg2QesgK1EkKytzUygFS/K397+yPNVXMfXvOdH2ghcKN3kF7NbiYRvgamOfsOb1/37WGpj1 php6GfsLKC1SmpA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D X-Debian-User: leitao do_swap_page() returns 0 when get_swap_device() fails, which the fault handler reads as "handled". For an entry that can never become valid the retry takes the same fault again, so the thread spins until it is killed. Return VM_FAULT_SIGBUS for a malformed entry, as the sibling arm already does for an unrecognised non-swap entry. A NULL return still means swapoff, which is still worth retrying. Signed-off-by: Breno Leitao --- mm/memory.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/memory.c b/mm/memory.c index 4238778b66c42..2842cd976f1d3 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4957,6 +4957,9 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) /* Prevent swapoff from happening to us. */ si = get_swap_device(entry); if (IS_ERR_OR_NULL(si)) { + /* A malformed entry never becomes valid, so don't retry it. */ + if (IS_ERR(si)) + ret = VM_FAULT_SIGBUS; si = NULL; goto out; } -- 2.53.0-Meta