On Monday, 31 of January 2005 19:20, Pavel Machek wrote:
> Hi!
> 
> > > static inline void free_pagedir(struct pbe *pblist)
> > > {
> > >         struct pbe *pbe;
> > > 
> > >         while (pblist) {
> > >                 pbe = pblist + PB_PAGE_SKIP;
> > >                 pblist = pbe->next;
> > >                 free_page((unsigned long)pbe);
> > >         }
> > >         pr_debug("free_pagedir(): done\n");
> > > }
> > > 
> > > Should not you free_page(pblist) instead? This passes address in
> > > middle of page to free_page, that seems wrong.
> > 
> > Certainly.  It should be something like that:
> > 
> > while (pblist) {
> >     pbe = pblist;
> >     pblist = (pbe + PB_PAGE_SKIP)->next;
> >     free_page((unsigned long)pbe);
> > }
> 
> Hmm, I see, my "fix" leaks one page of memory during each
> suspend... I've fixed it properly now and will eventually propagete it
> back.
> 
> This should be right..
> 
>         while (pblist) {
>                 pbe = (pblist + PB_PAGE_SKIP)->next;
>                 free_page((unsigned long)pblist);
>                 pblist = pbe;
>         }

Sure it is.

Greets,
RJW


-- 
- Would you tell me, please, which way I ought to go from here?
- That depends a good deal on where you want to get to.
                -- Lewis Carroll "Alice's Adventures in Wonderland"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to