On 11/08/23(Fri) 20:41, Mark Kettenis wrote:
> > Date: Fri, 11 Aug 2023 20:12:19 +0200
> > From: Martin Pieuchot <[email protected]>
> >
> > Here's a simple diff to add some more sanity checks in uvm_pagelookup().
> >
> > Nothing fancy, it helps documenting the flags and reduce the difference
> > with NetBSD. This is part of my on-going work on UVM.
> >
> > ok?
>
> NetBSD really has that extra blank line after the return?
No. It's my mistake.
> > Index: uvm/uvm_page.c
> > ===================================================================
> > RCS file: /cvs/src/sys/uvm/uvm_page.c,v
> > retrieving revision 1.172
> > diff -u -p -r1.172 uvm_page.c
> > --- uvm/uvm_page.c 13 May 2023 09:24:59 -0000 1.172
> > +++ uvm/uvm_page.c 11 Aug 2023 17:55:43 -0000
> > @@ -1219,10 +1219,16 @@ struct vm_page *
> > uvm_pagelookup(struct uvm_object *obj, voff_t off)
> > {
> > /* XXX if stack is too much, handroll */
> > - struct vm_page pg;
> > + struct vm_page p, *pg;
> > +
> > + p.offset = off;
> > + pg = RBT_FIND(uvm_objtree, &obj->memt, &p);
> > +
> > + KASSERT(pg == NULL || obj->uo_npages != 0);
> > + KASSERT(pg == NULL || (pg->pg_flags & PG_RELEASED) == 0 ||
> > + (pg->pg_flags & PG_BUSY) != 0);
> > + return (pg);
> >
> > - pg.offset = off;
> > - return RBT_FIND(uvm_objtree, &obj->memt, &pg);
> > }
> >
> > /*
> >
> >