Re: [RFC][PATCH 2/6] x86, nmi: create new NMI handler routines

Don Zickus
2011-08-22T15:22:08Z

On Mon, Aug 22, 2011 at 04:13:49PM +0200, Peter Zijlstra wrote:
> On Fri, 2011-08-19 at 16:37 -0400, Don Zickus wrote:
> > +int register_nmi_handler(unsigned int type, nmi_handler_t handler,
> > + unsigned long nmiflags, const char *devname)
> > +{
> > + struct nmiaction *action;
> > + int retval;
> > +
> > + if (!handler)
> > + return -EINVAL;
> > +
> > + action = kzalloc(sizeof(struct nmiaction), GFP_KERNEL);
> > + if (!action)
> > + return -ENOMEM;
> > +
> > + action->handler = handler;
> > + action->flags = nmiflags;
> > + action->name = devname;
>
> So you assume the string passed as devname remains stable..

yeah, I just kinda copied the irq stuff, thinking if it works there, it
should work here. It does seem odd, but I can change that to strncpy to
be safer.

>
>
> > +
> > + retval = __setup_nmi(type, action);
> > +
> > + if (retval)
> > + kfree(action);
> > +
> > + return retval;
> > +}
> > +EXPORT_SYMBOL(register_nmi_handler);
>
> Also, I'd use _GPL, the current register_die_notifier() is also.
> Preferably I'd not export NMI stuff at all.

Sure. Well there are a few drivers that want to register. Unless you
want to make a rule that all nmi handlers have to be built-in?

Cheers,
Don