powerpc/fsl-booke: Fix synchronization bug w/local tlb invalidates
The implemetation of _tlbil_pid() on Freescale Book-E cores needs
an msync & isync after we flash invalidate the TLBs. This was causing
the following oops reported by Sebastian Andrzej Siewior:
VFS: Mounted root (nfs filesystem) readonly.
Freeing unused kernel memory: 148k init
BUG: sleeping function called from invalid context at /home/bigeasy/git/linux-2.6-powerpc/mm/mmap.c:234
in_atomic():1, irqs_disabled():0
Call Trace:
[
df189df0] [
c0007160] show_stack+0x48/0x148 (unreliable)
[
df189e30] [
c0029480] __might_sleep+0xf0/0x100
[
df189e40] [
c0070ac0] remove_vma+0x28/0x98
[
df189e50] [
c0070c1c] exit_mmap+0xec/0x128
[
df189e80] [
c002d2f4] mmput+0x54/0xec
[
df189ea0] [
c0030b6c] exit_mm+0x10c/0x120
[
df189ed0] [
c003288c] do_exit+0x1ac/0x6e8
[
df189f20] [
c0032e48] do_group_exit+0x80/0xac
[
df189f40] [
c000e9dc] ret_from_syscall+0x0/0x3c
BUG: scheduling while atomic: udevd/956/0x10000002
Modules linked in:
Call Trace:
[
df189df0] [
c0007160] show_stack+0x48/0x148 (unreliable)
[
df189e30] [
c002ac88] __schedule_bug+0x58/0x6c
[
df189e40] [
c023e6cc] schedule+0xa8/0x4a8
[
df189e90] [
c002ad6c] __cond_resched+0x38/0x64
[
df189ea0] [
c023ebc8] _cond_resched+0x3c/0x58
[
df189eb0] [
c0030e70] put_files_struct+0x90/0xec
[
df189ed0] [
c00328a8] do_exit+0x1c8/0x6e8
[
df189f20] [
c0032e48] do_group_exit+0x80/0xac
[
df189f40] [
c000e9dc] ret_from_syscall+0x0/0x3c
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>