Messages in this thread | | | Date | Fri, 08 May 2009 08:49:54 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [PATCH 6/8] x86: use flush_tlb_others to implement flush_tlb_all |
| |
Ian Campbell wrote: > On Thu, 2009-05-07 at 13:25 -0700, Jeremy Fitzhardinge wrote: > >> From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> >> >> Use the flush_tlb_others() call to implement flush_tlb_all(). >> > > This causes: > BUG: spinlock bad magic on CPU#0, swapper/0 > lock: c05b7588, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0 > Pid: 0, comm: swapper Not tainted 2.6.30-rc3-x86_32p-xen0-tip-01797-g3db7847 #1054 > Call Trace: > [<c023e656>] spin_bug+0x96/0xf0 > [<c023e90f>] _raw_spin_lock+0x6f/0x150 >
Ah, right. I had another change (somewhere around here) to explicitly initialize the tlb flush code from the normal early init code, rather than make it implicit via initcall. Otherwise we have an unknown point at which we're allowed to start using global flushes, which is a bit flakey.
J
| |