OSDN Git Service

powerpc/mpc85xx: invalidate TLB after hibernation resume
authorDongsheng Wang <dongsheng.wang@freescale.com>
Tue, 14 May 2013 08:05:56 +0000 (16:05 +0800)
committerScott Wood <scottwood@freescale.com>
Tue, 30 Jul 2013 20:50:08 +0000 (15:50 -0500)
commite00c9a0c2ef8aacb2e63121fcce69687c8d932ca
tree9c50f5ff50e3ae980dcb3a4d292b68e2566bc9b5
parentf8dc6eb757c3351e282678528d052f7a4c0e44c9
powerpc/mpc85xx: invalidate TLB after hibernation resume

This problem belongs to the core synchronization issues.
The cpu1 already updated spin_table values, but bootcore cannot get
this value in time.

After bootcpu hibiernation restore the pages. we are now running
with the kernel data of the old kernel fully restored. if we reset
the non-bootcpus that will be reset cache(tlb), the non-bootcpus
will get new address(map virtual and physical address spaces).
but bootcpu tlb cache still use boot kernel data, so we need to
invalidate the bootcpu tlb cache make it to get new main memory data.

log:
Enabling non-boot CPUs ...
smp_85xx_kick_cpu: timeout waiting for core 1 to reset
smp: failed starting cpu 1 (rc -2)
Error taking CPU1 up: -2

Signed-off-by: Wang Dongsheng <dongsheng.wang@freescale.com>
Reviewed-by: Anton Vorontsov <anton@enomsg.org>
[scottwood@freescale.com: reworded code comment for clarity]
Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/kernel/swsusp_booke.S