Re: [External] Re: [PATCH] hugetlbfs: check dir in trace_hugetlbfs_alloc_inode

From: 朱晓辉
Date: Sun Jan 12 2025 - 22:33:06 EST


Got it, thanks

> From: "Hongbo Li"<lihongbo22@xxxxxxxxxx>
> Date:  Mon, Jan 13, 2025, 11:29
> Subject:  [External] Re: [PATCH] hugetlbfs: check dir in trace_hugetlbfs_alloc_inode
> To: "zhuxiaohui"<zhuxiaohui400@xxxxxxxxx>, <muchun.song@xxxxxxxxx>, <rostedt@xxxxxxxxxxx>, <mhiramat@xxxxxxxxxx>, <linux-mm@xxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>, <linux-trace-kernel@xxxxxxxxxxxxxxx>
> Cc: "Xiaohui Zhu"<zhuxiaohui.400@xxxxxxxxxxxxx>
> On 2025/1/13 11:07, zhuxiaohui wrote:

> > From: Xiaohui Zhu <zhuxiaohui.400@xxxxxxxxxxxxx>

>

> > Anonymous huge page has no corresponding directory inode,

> > which cause a null pointer crash when access dir with the stack

>

> >    trace_hugetlbfs_alloc_inode

> >    hugetlbfs_get_inode

> >    hugetlb_file_setup

> >    ksys_mmap_pgoff

>

> > Signed-off-by: Xiaohui Zhu <zhuxiaohui.400@xxxxxxxxxxxxx>

> > ---

> >   include/trace/events/hugetlbfs.h | 4 +++-

> >   1 file changed, 3 insertions(+), 1 deletion(-)

>

> > diff --git a/include/trace/events/hugetlbfs.h b/include/trace/events/hugetlbfs.h

> > index 8331c904a9ba..5daa52053edc 100644

> > --- a/include/trace/events/hugetlbfs.h

> > +++ b/include/trace/events/hugetlbfs.h

> > @@ -23,7 +23,9 @@ TRACE_EVENT(hugetlbfs_alloc_inode,

> >           TP_fast_assign(

> >                   __entry->dev                = inode->i_sb->s_dev;

> >                   __entry->ino                = inode->i_ino;

> > -                __entry->dir                = dir->i_ino;

> > +                __entry->dir                = 0;

> > +                if (dir)

> > +                        __entry->dir        = dir->i_ino;

> It has been fixed in [1] by Muchun.

> Thanks,

> Hongbo

> 
> [1] 

> https://lore.kernel.org/lkml/20250106033118.4640-1-songmuchun@xxxxxxxxxxxxx/T/

> >                   __entry->mode                = mode;

> >           ),

> >
>