[lkml]   [2011]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [V3][PATCH 3/6] x86, nmi: wire up NMI handlers to new routines
    On 08/25/2011 11:45 AM, Don Zickus wrote:
    > diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
    > index 3302586..3dcab56 100644
    > --- a/drivers/char/ipmi/ipmi_watchdog.c
    > +++ b/drivers/char/ipmi/ipmi_watchdog.c
    > @@ -1077,17 +1077,8 @@ static void ipmi_unregister_watchdog(int ipmi_intf)
    > #ifdef HAVE_DIE_NMI
    > static int
    > -ipmi_nmi(struct notifier_block *self, unsigned long val, void *data)
    > +ipmi_nmi(unsigned int val, struct pt_regs *regs)
    > {
    > - struct die_args *args = data;
    > -
    > - if (val != DIE_NMIUNKNOWN)
    > - return NOTIFY_OK;
    > -
    > - /* Hack, if it's a memory or I/O error, ignore it. */
    > - if (args->err& 0xc0)
    > - return NOTIFY_OK;
    > -
    > /*
    > * If we get here, it's an NMI that's not a memory or I/O
    > * error. We can't truly tell if it's from IPMI or not
    From the comment above, this will not actually work for the IPMI
    watchdog. The only way to tell if an NMI is from the IPMI controller is
    to send a message to the IPMI controller and wait for the response. Not
    an option in an NMI handler. So the IPMI watchdog driver relied on it
    being last, and if nothing else handled the NMI, then it must have been
    from the IPMI controller.

    This is stupid, I know, but that's the way it works in IPMI. If we
    decide to do what you are suggesting we will have to disable this
    function in the IPMI watchdog driver or we need some way to say "if
    nothing else handled the NMI, call this."


     \ /
      Last update: 2011-09-06 19:23    [W:0.022 / U:34.868 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site