Re: [PATCH 6/8] x86: use flush_tlb_others to implement flush_tlb_all

Jeremy Fitzhardinge
2009-05-08T15:50:12Z

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