#ifdef CONFIG_X86_64
       #include <asm/pgalloc.h>
       #include <asm/proto.h>
-     -#include <asm/pda.h>
       #else
       #include <asm/processor-flags.h>
- -----#include <asm/arch_hooks.h>
+ +++++#include <asm/setup.h>
       #include <asm/traps.h>
       
       #include "cpu/mcheck/mce.h"
       }
       #endif /* CONFIG_MATH_EMULATION */
       
      -dotraplinkage void __kprobes do_device_not_available(struct pt_regs regs)
      +dotraplinkage void __kprobes
-      do_device_not_available(struct pt_regs *regs, long error)
+     +do_device_not_available(struct pt_regs *regs, long error_code)
       {
       #ifdef CONFIG_X86_32
        if (read_cr0() & X86_CR0_EM) {
      -         conditional_sti(®s);
+               struct math_emu_info info = { };
+      
-               math_emulate(0);
      +         conditional_sti(regs);
      -         info.regs = ®s;
+      
+     +         info.regs = regs;
+               math_emulate(&info);
        } else {
                math_state_restore(); /* interrupts still off */
      -         conditional_sti(®s);
      +         conditional_sti(regs);
        }
       #else
        math_state_restore();
 
       
       static cycle_t read_real_cycles(void)
       {
- -     return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
+ +     cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
 -  --- return ret >= clocksource_vmi.cycle_last ?
 -  ---         ret : clocksource_vmi.cycle_last;
+++ +++ return max(ret, clocksource_vmi.cycle_last);
       }
       
       static struct clocksource clocksource_vmi = {