From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BADBC5B555 for ; Mon, 2 Jun 2025 17:49:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 223476B0307; Mon, 2 Jun 2025 13:49:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FB516B0308; Mon, 2 Jun 2025 13:49:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1390F6B0309; Mon, 2 Jun 2025 13:49:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E92426B0307 for ; Mon, 2 Jun 2025 13:49:42 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 712F9120F37 for ; Mon, 2 Jun 2025 17:49:42 +0000 (UTC) X-FDA: 83511198204.08.C03C6FD Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf13.hostedemail.com (Postfix) with ESMTP id 087482000A for ; Mon, 2 Jun 2025 17:49:40 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ui9wChQJ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf13.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748886581; a=rsa-sha256; cv=none; b=5jttkzE3GidEvJRENAH51dBAbPILyzuXaOxHe7jq2I+tZA/7ZLFHkrlfW25wDCKWsz+mzi UCxAEYHEaKKrfwuvr6E7UUwvJkvOtA1W9WH8934Xxn9u3Ek1KwD4ju317WOE4RtmqHEPEk Dw8mtmQOe1UbT+RMb5JLX9qagECoK5Q= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ui9wChQJ; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf13.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748886581; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=OEBTDPeKQhfs5yuTjz0/ZXApgBP58RpWfgmdJDTLUo4=; b=2eJ9WCfV9uNDFvhfusnCMyOGwBWpYTOGkQhEsREwSRQMyvGPz8yNJoDGuWbNX8Xjeyfq/2 HmGYxUHmuhYTxfWrgcTr1wBZoKMOiULsBmym6y8CtTpGJ22lZkH2plMM/txIpdrNtvCPJA w64ZScuX73UHps31yPyFWtGRKFuoolw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id D5BCC43E21; Mon, 2 Jun 2025 17:49:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8255AC4CEEB; Mon, 2 Jun 2025 17:49:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748886579; bh=0pF7W5nDodLyDaDRsawbxvt9O7kgIx1eeXo1DFqCyWw=; h=From:To:Cc:Subject:Date:From; b=ui9wChQJsuGhH1mAQl2/0sJ87jasohaoM3541r34h0y3sGT6Bq9AvdgZ0MokOFlwS p6+gy+N6pIS2pisd96br6uqEzvbdPSPB6XnOQp9nlIrNLDJvP7ZpT4hAm1Z4+pF//T MC2KxfbvantAj+GeAn+IEU6N4Z9lIzSxQ7HdZpvPHLDTydDImWNMHYi4EJJ2Q5jb2l 0G1baoaCPCfmdKY0mm3dwfs5lPHD1MJHeUNVCgeQmZPm4XrsGi9VOYpMLHp0DplhN8 1i8LLUAlg8ba6kKs4nubmx1tXPn/Tm2Y9uQSXTdfNz5Nn1br5sKRZD4p9a0pcHKiqk FQrWGFgBq3r2A== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , "Liam R. Howlett" , David Hildenbrand , Jann Horn , Lorenzo Stoakes , Shakeel Butt , Vlastimil Babka , linux-kernel@vger.kernel.org, linux-mm@kvack.org, stable@kernel.org, Barry Song <21cnbao@gmail.com> Subject: [PATCH] mm/madvise: handle madvise_lock() failure during race unwinding Date: Mon, 2 Jun 2025 10:49:26 -0700 Message-Id: <20250602174926.1074-1-sj@kernel.org> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 087482000A X-Stat-Signature: qsssbow7hjhkti9br7f5xro7cj9x5j3p X-Rspam-User: X-HE-Tag: 1748886580-753705 X-HE-Meta: U2FsdGVkX18lLBiCmJdnt51hggm3boHVJn4xPMmY/zwzDGQXkHgdJismyT5UZN8IrRLlpcydgTKIUkIAkcv2NUxAZhx80PO3NpTGEoiw2SJPuZUO6J/b8jehNAVzPeA7dH268T48RMlyZd/5vdKH+qyStGbMXXTMtw573ut7K0/I/CL2/84JLB9I4+v6+PbuE/8Hx0fotcyzWij8wAt8C6J6X7c6ZJkFVWnz4ASTRiHvslEYeKwqf1wTuRSSUUuTv2i7iOoguw48NhpnLN+Hvfwn/B9Re/Rq3zRijDTNqgu6KSbBRVv1qLYYOwCmtQh7xbL6hMVF5IkngA1bUwW1nGM+Mp684LpGk4eXomUbcUWzOLcuyA5ba2M4oCdU11/M+9Lyr7tQJWeJhJwOHYDsrZrIYuV/mYtbkGnr2kuHjeqkLi7zaWRLChXmyuQE4J+jJIZhrL2rL6loVZlSf+ZppLA4Rrtd0VNFNeA5oUHh3Q8ViQ8U/khPKfQ1ox2jTzMV74dsGzlzQaRtU+wm406sY0IrjW99uEnCIlZ40q06Rp8p1esrK5nDmKgoW/HITKVKY+WV5EkLCUg/xzMezUUDrL+xBaxQYKzkXYJhaZWs+qLUgaFJGyMbuKLZpDYF15BrvrFZ/zsYddjlrkBwGjMUka/cXjhNlPe4Aj9zNNhQaRDXEdNOd3edLk1N2WGSvo6p75sOsYrdrs28K6G+uBvGUd4DxcnmwGaZbbYrXOYc3GYA6n1lf5otMk8i0lcghaIBWmFhWE8m/CSi4BuInv1q/DSSgGM3fh26DWydCHvDnntyfREpAg0aHAXNHsWzmVeu7USQGvhXc1cCQ1F6y9hg81ozXZ+og3SArWpdfGXV5H13rFGfSi3F4cEYu9V8jveyXsGFEFxrgJyx4FWYxsmvqMU0fidfjqdNM16VcXSfEj4WBSCPUFP4IXSykU1rxQGi3QU71ELXgDfNG5q85xy teuCC26S gJbmqP5i1ONyqSjU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: When unwinding race on -ERESTARTNOINTR handling of process_madvise(), madvise_lock() failure is ignored. Check the failure and abort remaining works in the case. Fixes: 4000e3d0a367 ("mm/madvise: remove redundant mmap_lock operations from process_madvise()") Cc: stable@kernel.org Reported-by: Barry Song <21cnbao@gmail.com> Closes: https://lore.kernel.org/CAGsJ_4xJXXO0G+4BizhohSZ4yDteziPw43_uF8nPXPWxUVChzw@mail.gmail.com Signed-off-by: SeongJae Park --- mm/madvise.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/madvise.c b/mm/madvise.c index 8433ac9b27e0..5f7a66a1617e 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1881,7 +1881,9 @@ static ssize_t vector_madvise(struct mm_struct *mm, struct iov_iter *iter, /* Drop and reacquire lock to unwind race. */ madvise_finish_tlb(&madv_behavior); madvise_unlock(mm, behavior); - madvise_lock(mm, behavior); + ret = madvise_lock(mm, behavior); + if (ret) + goto out; madvise_init_tlb(&madv_behavior, mm); continue; } @@ -1892,6 +1894,7 @@ static ssize_t vector_madvise(struct mm_struct *mm, struct iov_iter *iter, madvise_finish_tlb(&madv_behavior); madvise_unlock(mm, behavior); +out: ret = (total_len - iov_iter_count(iter)) ? : ret; return ret; base-commit: d85ea9175e4147e15ff6e3c0e02c6c447ef473c8 -- 2.39.5