Skip to content

Commit

Permalink
[ARM] S3C: Avoid checking the task stackpage in pm-check
Browse files Browse the repository at this point in the history
When doing the CRC check of the memory, avoid checking
the page that our stack is residing in as this changes
during the execution of the suspend and resume.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
  • Loading branch information
Ben Dooks committed Mar 8, 2009
1 parent 67c2add commit 663a830
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion arch/arm/plat-s3c/pm-check.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ static inline int in_region(void *ptr, int size, void *what, size_t whatsz)
}

/**
* 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.
*
Expand All @@ -166,9 +166,12 @@ static u32 *s3c_pm_runcheck(struct resource *res, u32 *val)
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;
Expand All @@ -178,6 +181,11 @@ static u32 *s3c_pm_runcheck(struct resource *res, u32 *val)

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;
Expand Down

0 comments on commit 663a830

Please sign in to comment.