[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20241105133052.599b6b71ff547092c9c7aad7@linux-foundation.org>
Date: Tue, 5 Nov 2024 13:30:52 -0800
From: Andrew Morton <akpm@...ux-foundation.org>
To: Alan Stern <stern@...land.harvard.edu>
Cc: syzbot <syzbot+ccc0e1cfdb72b664f0d8@...kaller.appspotmail.com>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
pasha.tatashin@...een.com, syzkaller-bugs@...glegroups.com,
linux-usb@...r.kernel.org
Subject: Re: [syzbot] [mm?] kernel BUG in __page_table_check_zero (2)
On Tue, 5 Nov 2024 15:42:12 -0500 Alan Stern <stern@...land.harvard.edu> wrote:
> On Tue, Nov 05, 2024 at 11:02:36AM -0800, Andrew Morton wrote:
> > On Tue, 5 Nov 2024 11:39:59 -0500 Alan Stern <stern@...land.harvard.edu> wrote:
> >
> > > On Mon, Nov 04, 2024 at 08:00:07PM -0800, Andrew Morton wrote:
> > > > On Wed, 30 Oct 2024 21:54:22 -0700 syzbot <syzbot+ccc0e1cfdb72b664f0d8@...kaller.appspotmail.com> wrote:
> > > >
> > > > > Hello,
> > > > >
> > > > > syzbot found the following issue on:
> > > >
> > > > Thanks. I'm suspecting some USB issue - fault injection was used to
> > > > trigger a memory allocation failure and dec_usb_memory_use_count() ended
> > > > up freeing an in-use page. Could USB folks please have a look?
> > >
> > > Andrew, I'm not sure what to look for.
> >
> > Thanks for looking.
> >
> > > Can you read through
> > > usbdev_mmap() in drivers/usb/core/devio.c, along with the four short
> > > routines preceding it, and let us know if anything seems obviously
> > > wrong?
> >
> > All I see is lots of USB code which I don't understand ;) It seems odd
>
> Well, I wouldn't expect you to understand the USB-specific stuff. I was
> really asking about the memory-management calls and error handling.
>
> > that usbdev_mmap() calls dec_usb_memory_use_count() on some error
> > paths, but goes direct to usbfs_decrease_memory_usage() on others.
>
> The paths that call dec_usb_memory_use_count() are those on which a
> memory buffer has been allocated and needs to be deallocated. That
> routine then calls usbfs_decrease_memory_usage() as needed.
>
> > Did you try running the "C reproducer"?
>
> No, I haven't. I haven't had much time to work on this. In fact, I
> couldn't even tell exactly which call in dec_usb_memory_use_count()
> caused the fault; the line number listed in the bug report didn't match
> up with any obvious suspects in my copy of the kernel source. Was it
> the kfree(usbm) call?
Check out the sysbot commit first: 850925a8133c. Line 198 is the
hcd_buffer_free_pages() call.
hcd_buffer_free_pages() doesn't appear in the backtrace - a bunch of
things I'd expect to be present aren't there.
Powered by blists - more mailing lists