The patch titled swsusp: do not use memcpy for snapshotting memory has been added to the -mm tree. Its filename is swsusp-do-not-use-memcpy-for-snapshotting-memory.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: swsusp: do not use memcpy for snapshotting memory From: "Rafael J. Wysocki" <rjw@xxxxxxx> swsusp should not use memcpy for snapshotting memory, because on some architectures memcpy may increase preempt_count (i386 does this when CONFIG_X86_USE_3DNOW is set). Then, as a result, wrong value of preempt_count is stored in the image. Replace memcpy in copy_data_pages with an open-coded loop. Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> Acked-by: Pavel Machek <pavel@xxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- kernel/power/snapshot.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff -puN kernel/power/snapshot.c~swsusp-do-not-use-memcpy-for-snapshotting-memory kernel/power/snapshot.c --- a/kernel/power/snapshot.c~swsusp-do-not-use-memcpy-for-snapshotting-memory +++ a/kernel/power/snapshot.c @@ -227,11 +227,17 @@ static void copy_data_pages(struct pbe * for (zone_pfn = 0; zone_pfn < zone->spanned_pages; ++zone_pfn) { if (saveable(zone, &zone_pfn)) { struct page *page; + long *src, *dst; + int n; + page = pfn_to_page(zone_pfn + zone->zone_start_pfn); BUG_ON(!pbe); pbe->orig_address = (unsigned long)page_address(page); - /* copy_page is not usable for copying task structs. */ - memcpy((void *)pbe->address, (void *)pbe->orig_address, PAGE_SIZE); + /* copy_page and memcpy are not usable for copying task structs. */ + dst = (long *)pbe->address; + src = (long *)pbe->orig_address; + for (n = PAGE_SIZE / sizeof(long); n; n--) + *dst++ = *src++; pbe = pbe->next; } } _ Patches currently in -mm which might be from rjw@xxxxxxx are pm-define-pm_event_prethaw.patch pm-pci-and-ide-handle-pm_event_prethaw.patch pm-video-drivers-and-pm_event_prethaw.patch pm-usb-hcds-use-pm_event_prethaw.patch pm-usb-hcds-use-pm_event_prethaw-fix.patch pm-issue-pm_event_prethaw.patch swsusp-do-not-use-memcpy-for-snapshotting-memory.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html