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 96917C71159 for ; Tue, 17 Jun 2025 02:24:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 383DB6B0092; Mon, 16 Jun 2025 22:24:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 35C7B6B0093; Mon, 16 Jun 2025 22:24:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 272226B0095; Mon, 16 Jun 2025 22:24:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 1948D6B0092 for ; Mon, 16 Jun 2025 22:24:41 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B3A421215AB for ; Tue, 17 Jun 2025 02:24:40 +0000 (UTC) X-FDA: 83563299120.06.E6DB227 Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) by imf11.hostedemail.com (Postfix) with ESMTP id CFEF14000B for ; Tue, 17 Jun 2025 02:24:38 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=cyh94bvR; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.46 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750127078; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+llR/BNeUIRrMxKZBOnCg+cMH1nIiPL149ZGVZhcg8g=; b=ZeunVsvuXEqxAG81RV7ZSoHVLwpoyY22JKs2JjFpFAIc+4UJhvVSQ58R/Gt5OFQ1gfmNQi isl+qgpZYY9Xvt0sZSk05INnRd7PVYx9cez+CnzYmCqmRT1XOHeCmUrmiTOpJHgcSB5+2+ lm1Utb+7RxHqrqYoMcb0AsRqfuyT/jk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750127078; a=rsa-sha256; cv=none; b=dzF26zOWEpRZ6dx+ZvJZdLOfTa1HKZXqhYQjF0hkMMz+wpbIRV5g//ktDtnoiIa3WFbIf6 /z0B+jDQagMDpXP/VW1f4qP4vv36Nyo/lO6GewKPDkb6TGet9wZ6Y6crfK88td97QqThJ8 lJjI7z/YZN/8tbeR1sXLbQfHU+ZeVXI= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=cyh94bvR; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.46 as permitted sender) smtp.mailfrom=21cnbao@gmail.com Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-87f25076697so594594241.2 for ; Mon, 16 Jun 2025 19:24:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750127078; x=1750731878; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+llR/BNeUIRrMxKZBOnCg+cMH1nIiPL149ZGVZhcg8g=; b=cyh94bvRd3scN1uhAC1OLfJl+eFwFF1sQ7i3rL7pUQ7GjKTw9BNo9cuiLdfQ01eihJ 3Uy8ZZWeZx7ft0kP30AT7UIRRS1NFdaDIfjoaRYXdjz9AMUMbqLMuVETWvN4ULACv6iO IBBthx4Zzq99qGYJz3R0lda/MkL5ZRkIJtUDXZj2hyIuMnBdfpW/mjZQmagSBgJttmIx +2ZGKBhcpJMUOKHgSWY9IXVV67FyQUa9LJu3kZBF5Lib7zPManqutX/sfnDunQieZrWP rihgxWZcMJfUu5bXqTtNsML9JEsuxuQKVkgxhc0JduBnXA5cb/nTEdovV64qRhCt5gXH tZcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750127078; x=1750731878; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+llR/BNeUIRrMxKZBOnCg+cMH1nIiPL149ZGVZhcg8g=; b=Sj6WAuJxkcJi4BQ4Pn/XZB/jGVTIDWw+wDtmdOGbWn2IboeoEvARpkLXVfPiB7wN0i /K9OLQsDOom8MbwYSEBAD14pvNtn/b89u3lVeGMXOU3AHfrGdPWWVvgnJvl9ta0IybiR 7op0opyYGp23sbUWpxm80gw76ghUxLvYScVbWUxAy0N8H9tyfyMCWpGEgW0K7tomYVIV TaIZARwOvEfKnNTx39EMYMHCGMciUJjvMtQyYhwpNiEj9ymcOqXLD8nEXJFH595w6D7J OkHj4jlXF4Di2y3ifN5cmatQ+0CDyGzDh/uqUEqbDEN6wGEMxLiUjJSXluBKVTgfhZ32 gkWg== X-Forwarded-Encrypted: i=1; AJvYcCWg2y/fu5AQM2wly65VteVZMpJ2CUgMoGeKSZeKOUCr3EdCmEuliOtyEOqUxCaq0xoHOjidW+6K+Q==@kvack.org X-Gm-Message-State: AOJu0Yzp5If9nDwfclVXE1JikLnofcRSabHWV6pCXxuQRuCf0vP6Tl/y OxCWdlrKQuVN58Mi2F0lUbWyhkQZMcWd36/qTcqCi3y+YZfMQo6iKJdpk0cYRZip9ezZBlWTSKW cJ6mULMNgRPr+DmEaioAxc6tj8V4aWkU= X-Gm-Gg: ASbGncs6R2nksb+0vsDOXgS5lh6Or4h5IJ0K140DeddjZ+T07Qr+h/0oVCfLDbL7zD8 EgcWd521JQmTweyBy3V1k0UyVQl65MraGkMDqQCwwUgP1WL8D7ZJsaiETQbh7owtw0DiIweJX/4 Rq969b7sVNHtBxr75osZA7QC43afc117/baGCAH9W28WM= X-Google-Smtp-Source: AGHT+IE2VeznKeUrIu2MJN9HXLxRlTuuDWOcp0+vOijEMkVUfR6r5zGEunSgQftsDFRXYDkmxG9TKuqWxzTqERNtcKw= X-Received: by 2002:a05:6102:5092:b0:4cb:5d6c:9946 with SMTP id ada2fe7eead31-4e7f638b30amr7401833137.10.1750127077791; Mon, 16 Jun 2025 19:24:37 -0700 (PDT) MIME-Version: 1.0 References: <20250617020544.57305-1-lance.yang@linux.dev> In-Reply-To: <20250617020544.57305-1-lance.yang@linux.dev> From: Barry Song <21cnbao@gmail.com> Date: Tue, 17 Jun 2025 14:24:26 +1200 X-Gm-Features: AX0GCFvJjZPoKykRyQX5q5xkTcKG4T0FMe-9XbIqCKfJjs45uTXohqzDxqgwEqY Message-ID: Subject: Re: [PATCH 1/1] mm/madvise: initialize prev pointer in madvise_walk_vmas To: Lance Yang Cc: akpm@linux-foundation.org, david@redhat.com, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, lorenzo.stoakes@oracle.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Lance Yang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: CFEF14000B X-Stat-Signature: mm4irwnagswef3kd7mzn8q4mw5uimop8 X-Rspam-User: X-HE-Tag: 1750127078-814290 X-HE-Meta: U2FsdGVkX19BwKicyObtpQtZgevmWapm8iGuGyDEkOT5vjUODhZtjbfWOdFnjFQ/0zYnJaSz2G0+L6ax5OfN3MgzSJFRm1Wko6fOukx5KUJNEhFu4T+AHWDNtnFcQhYTDYx4g1/gm2uf3x1e6fygZLw4QDFhUUvNmE833sOng76vkbV8bX/dH3YQzcXq5Y2mKZFlNZRtCp38twQn289cHziAvAXw/7HGtfoGtnf3DBWxQh5sLTJwQlfWxbI4eAkFf8x6MFHaLLAk359merc6Yli2mRAWZJbntdLWZKlThA0R5X/KZDsMl2s3dQ1egmR0myfHm6FdbOcPOVWSWc1Uzvw9TfD3pjm3UeLNervfRjprqOdyw9rRCkpx6nlV0jrKpo8MGhGgw6AH25V4yp3t+gyjZbsFxbnNPbZJUUh4rbbvwPPC6VHwqcEQp/4pSpdiB2MXGwyRdP+hVYsgl4EXqD4/3trqvDAv8pZqvKL+pgTY7ysTjXJs+FvcuGx9jhow7tZP7dv+R+52wQ+PjOjxQTMnfFlf8awbL+z1dCgMFgJrifUKr/45Y9nR/ZkAw8P4ToMAddQQkKpQpwlw2FhMAcruAp7F62HKp9u/JqBD4f68UyjimvlsbJ2sUDIeOemhfpxunZin4CwWt6rV2+BLF9eT/Ek7gIJgy6YlfpGt/k7uxUeJDVF8Xe0PTJ+riaz884PO92EGjOHULvpYmznSk602oGbHvg4sOcr+6zw2ccR0qaYMMRgC0aAWl9Xs51UosDT8d3+yatSaCmCCN1c40yOy01lalwkHZPU8MMul8P2o+6KArqDQenzhaqso/bWnz2OoxODBCbyr36bjbDyxbV5mfxd8ip1shvS8u3BO+K3XvywE9szuGXteeyqC+FGHLx4o0pB0uXfwEx0UE4bYgtZ7SAJ15gGZKFimGctBx4W5lmmpr0CNW9bA1+R121k5jfpSf4AZLhGsp8hjcH1 5qEEx+Dk XZOblqEZPQ37VTLbVlcxF4JGSXP9+cbK/xLOYvhVtK704QXbrxDNtAMp4KiR+VAoWXzG0gIHiefA++zUnzcAvm5+VJXSA6A8GKJ/z3gDLxZBsoU8DUTVY+iHZX2iwOy5Zb8j8IqlxOICvH23EJWUBD39pPPkK+bak7UZ0NOBZRdJylaWZxZYLiZdVvVz5m7JTnj9E3RCCnaTNiGqwB8Q6FKAPAXjb35B0wo91JTEqwYRZn3MSODZKV76ONfFiUpKZeU0gypxB2MPLKxE8q7L4YLam5JrD1I0QAF7pw8Ia5rbp3LUrTSw98umB+YNboKJ9pnNeNgKGQwJWhTc8s4aQ9LfIWAx/WecL9/u8tguNxL8KaS4Wc0C38SUv0zY78MjTyrm4Gj16H9H4CGI= 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: On Tue, Jun 17, 2025 at 2:05=E2=80=AFPM Lance Yang wr= ote: > > From: Lance Yang > > The prev pointer was uninitialized, which could lead to undefined behavio= r > where its address is taken and passed to the visit() callback without bei= ng > assigned a value. > > Initializing it to NULL makes the code safer and prevents potential bugs > if a future callback function attempts to read from it. Is there any read-before-write case here? I haven't found one. It also looks like we're assuming that *prev =3D=3D NULL implies a specific condition: *prev =3D NULL; /* tell sys_madvise we drop mmap_lock */ *prev =3D NULL; /* mmap_lock has been dropped, prev is stale */ > > Signed-off-by: Lance Yang > --- > mm/madvise.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/madvise.c b/mm/madvise.c > index 267d8e4adf31..c87325000303 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -1536,10 +1536,10 @@ int madvise_walk_vmas(struct mm_struct *mm, unsig= ned long start, > struct vm_area_struct **prev, unsigned= long start, > unsigned long end, void *arg)) > { > + struct vm_area_struct *prev =3D NULL; > struct vm_area_struct *vma; > - struct vm_area_struct *prev; > - unsigned long tmp; > int unmapped_error =3D 0; > + unsigned long tmp; > int error; > > /* > -- > 2.49.0 > Thanks Barry