}
 
 /**
- * s3c_pm_runcheck*() - helper to check a resource on restore.
+ * s3c_pm_runcheck() - helper to check a resource on restore.
  * @res: The resource to check
  * @vak: Pointer to list of CRC32 values to check.
  *
        void *save_at = phys_to_virt(s3c_sleep_save_phys);
        unsigned long addr;
        unsigned long left;
+       void *stkpage;
        void *ptr;
        u32 calc;
 
+       stkpage = (void *)((u32)&calc & ~PAGE_MASK);
+
        for (addr = res->start; addr < res->end;
             addr += CHECK_CHUNKSIZE) {
                left = res->end - addr;
 
                ptr = phys_to_virt(addr);
 
+               if (in_region(ptr, left, stkpage, 4096)) {
+                       S3C_PMDBG("skipping %08lx, has stack in\n", addr);
+                       goto skip_check;
+               }
+
                if (in_region(ptr, left, crcs, crc_size)) {
                        S3C_PMDBG("skipping %08lx, has crc block in\n", addr);
                        goto skip_check;