Re: [RFC][PATCH] swsusp: do not use higher order memory allocations on suspend

From: Pavel Machek (pavel_at_suse.cz)
Date: 01/31/05

  • Next message: Marcelo Tosatti: "Re: 2.4.29, e100 and a WOL packet causes keventd going mad"
    Date:	Mon, 31 Jan 2005 19:20:55 +0100
    To: "Rafael J. Wysocki" <rjw@sisk.pl>
    
    

    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;
            }

                                                                    Pavel

    -- 
    People were complaining that M$ turns users into beta-testers...
    ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Marcelo Tosatti: "Re: 2.4.29, e100 and a WOL packet causes keventd going mad"

    Relevant Pages