spin_unlock_irqrestore(&desc->lock, flags);
        synchronize_rcu();
 -      return (n);
  }
 -
 -int register_nmi_handler(unsigned int type, nmi_handler_t handler,
 -                      unsigned long nmiflags, const char *devname)
 -{
 -      struct nmiaction *action;
 -      int retval = -ENOMEM;
 -
 -      if (!handler)
 -              return -EINVAL;
 -
 -      action = kzalloc(sizeof(struct nmiaction), GFP_KERNEL);
 -      if (!action)
 -              goto fail_action;
 -
 -      action->handler = handler;
 -      action->flags = nmiflags;
 -      action->name = kstrndup(devname, NMI_MAX_NAMELEN, GFP_KERNEL);
 -      if (!action->name)
 -              goto fail_action_name;
 -
 -      retval = __setup_nmi(type, action);
 -
 -      if (retval)
 -              goto fail_setup_nmi;
 -
 -      return retval;
 -
 -fail_setup_nmi:
 -      kfree(action->name);
 -fail_action_name:
 -      kfree(action);
 -fail_action:  
 -
 -      return retval;
 -}
 -EXPORT_SYMBOL_GPL(register_nmi_handler);
 -
 -void unregister_nmi_handler(unsigned int type, const char *name)
 -{
 -      struct nmiaction *a;
 -
 -      a = __free_nmi(type, name);
 -      if (a) {
 -              kfree(a->name);
 -              kfree(a);
 -      }
 -}
 -
  EXPORT_SYMBOL_GPL(unregister_nmi_handler);
  
- static notrace __kprobes void
+ static __kprobes void
  pci_serr_error(unsigned char reason, struct pt_regs *regs)
  {
 +      /* check to see if anyone registered against these types of errors */
 +      if (nmi_handle(NMI_SERR, regs, false))
 +              return;
 +
        pr_emerg("NMI: PCI system error (SERR) for reason %02x on CPU %d.\n",
                 reason, smp_processor_id());