static inline void free_image_page(void *addr, int clear_nosave_free) { ClearPageNosave(virt_to_page(addr)); if (clear_nosave_free) ClearPageNosaveFree(virt_to_page(addr)); free_page((unsigned long)addr); }
void free_checksum_pages(void) { while (pages_allocated) { unsigned long next = *((unsigned long *) page_list); ClearPageNosave(virt_to_page(page_list)); toi_free_page(15, (unsigned long) page_list); page_list = next; pages_allocated--; } }
static void free_image_pages(void) { struct pbe * p; int i; for (i = 0, p = pagedir_save; i < pmdisk_pages; i++, p++) { ClearPageNosave(virt_to_page(p->address)); free_page(p->address); } }
void free_pagedir(struct pbe *pblist) { struct pbe *pbe; while (pblist) { pbe = (pblist + PB_PAGE_SKIP)->next; ClearPageNosave(virt_to_page(pblist)); ClearPageNosaveFree(virt_to_page(pblist)); free_page((unsigned long)pblist); pblist = pbe; } }
static void free_image_pages(void) { struct pbe * p; for_each_pbe(p, pagedir_save) { if (p->address) { ClearPageNosave(virt_to_page(p->address)); free_page(p->address); p->address = 0; } } }
static void free_image_pages(void) { struct pbe * p; int i; p = pagedir_save; for (i = 0, p = pagedir_save; i < nr_copy_pages; i++, p++) { if (p->address) { ClearPageNosave(virt_to_page(p->address)); free_page(p->address); p->address = 0; } } }
void swsusp_free(void) { struct zone *zone; unsigned long zone_pfn; for_each_zone(zone) { for (zone_pfn = 0; zone_pfn < zone->spanned_pages; ++zone_pfn) if (pfn_valid(zone_pfn + zone->zone_start_pfn)) { struct page *page; page = pfn_to_page(zone_pfn + zone->zone_start_pfn); if (PageNosave(page) && PageNosaveFree(page)) { ClearPageNosave(page); ClearPageNosaveFree(page); free_page((long) page_address(page)); } } } }
void swsusp_free(void) { struct zone *zone; unsigned long pfn, max_zone_pfn; for_each_zone(zone) { max_zone_pfn = zone->zone_start_pfn + zone->spanned_pages; for (pfn = zone->zone_start_pfn; pfn < max_zone_pfn; pfn++) if (pfn_valid(pfn)) { struct page *page = pfn_to_page(pfn); if (PageNosave(page) && PageNosaveFree(page)) { ClearPageNosave(page); ClearPageNosaveFree(page); free_page((long) page_address(page)); } } } nr_copy_pages = 0; nr_meta_pages = 0; restore_pblist = NULL; buffer = NULL; }