From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 AAB513839A0 for ; Thu, 21 May 2026 16:22:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779380528; cv=none; b=WtW2IGTNsHgha0ZlTKlmJtkmogG3xUlzjlpjHipbcatCyOanPfBcgey1Lvzah75clzUuBwXyX0Hm6Yvho4G+0+WkyYIreo3TXiFji+X8zi+v3rzoRtZf9yX5Ighkez0xxxdGUja3ggjej5u8FyzwX/n2WTNmNGUoIjZ5A7YjUWM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779380528; c=relaxed/simple; bh=Hd8PpWWVRciJf9GqXEtCy1Hv49PKhz7O8e3vD9mIWz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BnVeYvZMHeJuB2ayGpnxB0/+IXs3m5i6YrQd5bUNTJGNvChtwSDz66KcD84A46MGsc+ufxa3dx5crS4u4t4bopFlJ+EIHq7QRAcAIzlUN0y33F8bjcqDwD6xIoQM8gUBfj9QEYdPQNR3MCSJelwGjQsLcDttYOCi8iJsegMpia8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d/l53IBf; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d/l53IBf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 059951F00A3B; Thu, 21 May 2026 16:22:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779380527; bh=vijgKaU0lPNHdbdrYG3yt4b6w/oPC8D35ILFYzM+gXA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=d/l53IBfQcd2seHBXKgpwkQaIxIQvK5L+KxBbNiQcTdAS1o2SxqEpiVaaKbTUNLhb rDQPADYmh5cOUHkLPD1TfK5YIpPPkAtNiPgq3GBkhXsDZ2q9IRNCgJ3d+Aj0dOZ2Mv RYWrL/BBczayfUQd4P0XeDYrXgLOB+p7yu+P7mX3XpaCHmaGTpZNq6MM6/DCjlG1th 6sh47ECU/wMJPH7KL54zr1QAl4IjqGNlqr0rPgcxhXyKwPFicdLg9HCdqg2utaNitZ HDzQCRvraMVB29FWjQPH1bpYuPOKAitRLzlae/dfRsvfMl5kfFugjoXnOzCnuvZKLW zQ1V6rxoUvesA== From: Lorenzo Stoakes To: Andrew Morton Cc: Arnd Bergmann , Greg Kroah-Hartman , David Hildenbrand , "Liam R . Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Jann Horn , Pedro Falcato , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/3] mm/vma: remove mmap_action->success_hook Date: Thu, 21 May 2026 17:21:53 +0100 Message-ID: <24b5ba4470961abd870d5fe7d180d3e295b6d9af.1779379804.git.ljs@kernel.org> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This hook was introduced to work around code that seemed to absolutely require access to a VMA pointer upon mmap(). However, providing this hook leaves a backdoor to drivers getting access to the very thing mmap_prepare eliminates - a pointer to the VMA. Let's solve this contradiction by removing it. The key intended user was hugetlb, however it seems that the best course now is to avoid allowing all drivers the ability to work around mmap_prepare, and find a different solution there. Signed-off-by: Lorenzo Stoakes --- include/linux/mm_types.h | 10 ---------- mm/util.c | 2 -- tools/testing/vma/include/dup.h | 10 ---------- 3 files changed, 22 deletions(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index a308e2c23b82..945c0a5386d6 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -843,16 +843,6 @@ struct mmap_action { }; enum mmap_action_type type; - /* - * If specified, this hook is invoked after the selected action has been - * successfully completed. Note that the VMA write lock still held. - * - * The absolute minimum ought to be done here. - * - * Returns 0 on success, or an error code. - */ - int (*success_hook)(const struct vm_area_struct *vma); - /* * If specified, this hook is invoked when an error occurred when * attempting the selected action. diff --git a/mm/util.c b/mm/util.c index 3cc949a0b7ed..1555aa1487b8 100644 --- a/mm/util.c +++ b/mm/util.c @@ -1396,8 +1396,6 @@ static int mmap_action_finish(struct vm_area_struct *vma, if (!err) err = call_vma_mapped(vma); - if (!err && action->success_hook) - err = action->success_hook(vma); /* do_munmap() might take rmap lock, so release if held. */ maybe_rmap_unlock_action(vma, action); diff --git a/tools/testing/vma/include/dup.h b/tools/testing/vma/include/dup.h index 9e0dfd3a85b0..bf67a80a8332 100644 --- a/tools/testing/vma/include/dup.h +++ b/tools/testing/vma/include/dup.h @@ -482,16 +482,6 @@ struct mmap_action { }; enum mmap_action_type type; - /* - * If specified, this hook is invoked after the selected action has been - * successfully completed. Note that the VMA write lock still held. - * - * The absolute minimum ought to be done here. - * - * Returns 0 on success, or an error code. - */ - int (*success_hook)(const struct vm_area_struct *vma); - /* * If specified, this hook is invoked when an error occurred when * attempting the selection action. -- 2.54.0