On 12/19/2013 01:10 PM, Christoph Lameter wrote: > On Thu, 19 Dec 2013, David Daney wrote: > >>> 16:07:58.244398747 -0600 >>> @@ -43,7 +43,7 @@ DECLARE_PER_CPU(struct mips_fpu_emulator >>> #define MIPS_FPU_EMU_INC_STATS(M) \ >>> do { >>> \ >>> preempt_disable(); \ >>> - __local_inc(&__get_cpu_var(fpuemustats).M); \ >>> + __this_cpu_inc(fpuemustats.M); \ >>> preempt_enable(); \ >>> } while (0) >>> >> >> Something seems to be incorrect in this bit. > > Hrmm.. yes this is a local_t so the this_cpu_inc would not work unless > fpuemustats is defined differently. > See the attached patch. Feel free to include it as part of your patch set. I tested it on a 64-bit OCTEON system. I think it will work on 32-bit systems as well. > Use > > __local_inc(this_cpu_ptr(fpuemustats.M); > No, I couldn't get various incantations of that to work either. > instead until then. >