08 Jul, 2019

6 commits


19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

06 May, 2019

1 commit


22 Dec, 2018

3 commits


02 Oct, 2018

6 commits

  • During module install, disable pretimeout if the requested timeout
    value is not greater than the minimal pretimeout value that is
    supported by hardware.

    This makes the module load handling of pretimeout consistent
    with the ioctl handling of pretimeout.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Bump version number to reflect recent bug fixes.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Add module parameter "timeout" as an alias to "soft_margin."
    This aligns hpwdt usage more closely with other WDT while
    retaining backwards compatibility.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Print module parameters when the driver is loaded.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • The hwpdt driver is overloaded for handling both the iLO
    watchdog and the explicit "Generate NMI to System" virutal
    button. Hence NMI handler needs to claim NMI resulting
    from the virutal button.

    Claim if iLO generated accommodating firmware that might
    set wrong bit.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • When the pretimeout is specified as a module parameter, the
    value should be reflected in hpwdt_dev.pretimeout. The default
    (on) case is correct. But, when disabling pretimeout, the value
    should be set to zero in hpwdt_dev.

    When compiling w/o CONFIG_HPWDT_NMI_DECODING defined, the pretimeout
    module parameter is ignored and the value internally will be 0.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

22 May, 2018

1 commit

  • On iLO5 going forward we want to return and not claim the NMI, if
    the NMI was NOT gnerated by the iLO as a result of the watchdog
    timing out or an explicit generate NMI.

    The sense of the test in is inverted and prevents hpwdt_pretimeout
    from claiming NMIs when it should.

    Signed-off-by: Jerry Hoemann
    Fixes: a042229a18ac ("watchdog: hpwdt: Update nmi_panic message.")
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

04 Mar, 2018

8 commits

  • Update driver version number to reflect changes.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Add a few dynamic debug messages to aid in module level debug.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Make whether or not the hpwdt watchdog delivers a pretimeout NMI
    programable by the user.

    The underlying iLO hardware is programmable as to whether or not
    a pre-timeout NMI is delivered to the system before the iLO resets
    the system. However, the iLO does not allow for programming the
    length of time that NMI is delivered before the system is reset.

    By watchdog API, in hpwdt_set_pretimeout a val == 0 disables the NMI.
    When val != 0, hpwdt_set_pretimeout will enable the pretimeout NMI
    provided the current timeout is greator than the HW specified
    pretimeout length. Otherwise an error is returned.

    In set_timeout, if the new timeout is
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • The intent of this parameter is unclear and it sets up a
    race between the reset of the system by ASR and crashdump.

    The length of time between receipt of the pretimeout NMI
    and the ASR reset of the system is fixed by hardware.

    Turning the parameter off doesn't necessairly prevent a crash dump.
    Also, having the ASR reset occur while the system is crash dumping
    doesn't imply that the dump was hung given the short duration
    between the NMI and the reset.

    This parameter is not a substitute for having a architected watchdog
    crashdump hang detection paridigm.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Modify prior change to not claim an NMI unless originated
    from iLO to apply only to iLO5 and later going forward.
    This restores hpwdt traditional behavior of calling panic
    if the NMI is NMI_IO_CHECK, NMI_SERR, or NMI_UNKNOWN for
    legacy hardware.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Follow Documentation/watchdog/convert_drivers_to_kernel_api.txt to
    convert hpwdt from legacy watchdog driver to use the watchdog core.

    Removed functions: hpwdt_open, hpwdt_release, hpwdt_write, hpwdt_ioctl
    Removed data structures: hpwdt_fops, hpwdt_miscdev, watchdog_device
    Modified functions: hpwdt_start, hpwdt_stop, hpwdt_ping, hpwdt_gettimeleft
    Added functions: hpwdt_settimeout
    Added structures: watchdog_device

    Update Kconfig file to show that hpwdt now selects WATCHDOG_CORE.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Include the nmistat in the nmi_panic message to give support
    an indication why the NMI was called (e.g. a timeout or generate
    nmi button.)

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     
  • Update Copyright and Module description to reflect branding changes.

    Signed-off-by: Jerry Hoemann
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

03 Mar, 2018

1 commit

  • Gen8 and prior Proliant systems supported the "CRU" interface
    to firmware. This interfaces allows linux to "call back" into firmware
    to source the cause of an NMI. This feature isn't fully utilized
    as the actual source of the NMI isn't printed, the driver only
    indicates that the source couldn't be determined when the call
    fails.

    With the advent of Gen9, iCRU replaces the CRU. The call back
    feature is no longer available in firmware. To be compatible and
    not attempt to call back into firmware on system not supporting CRU,
    the SMBIOS table is consulted to determine if it is safe to
    make the call back or not.

    This results in about half of the driver code being devoted
    to either making CRU calls or determing if it is safe to make
    CRU calls. As noted, the driver isn't really using the results of
    the CRU calls.

    Furthermore, as a consequence of the Spectre security issue, the
    BIOS/EFI calls are being wrapped into Spectre-disabling section.
    Removing the call back in hpwdt_pretimeout assists in this effort.

    As the CRU sourcing of the NMI isn't required for handling the
    NMI and there are security concerns with making the call back, remove
    the legacy (pre Gen9) NMI sourcing and the DMI code to determine if
    the system had the CRU interface.

    Signed-off-by: Jerry Hoemann
    Acked-by: Ingo Molnar
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

29 Dec, 2017

2 commits

  • The new hpwdt_my_nmi() function is used conditionally, which produces
    a harmless warning in some configurations:

    drivers/watchdog/hpwdt.c:478:12: error: 'hpwdt_my_nmi' defined but not used [-Werror=unused-function]

    This moves it inside of the #ifdef that protects its caller, to silence
    the warning.

    Fixes: 621174a92851 ("watchdog: hpwdt: Check source of NMI")
    Signed-off-by: Arnd Bergmann
    Reviewed-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Arnd Bergmann
     
  • Do not claim the NMI (i.e. return NMI_DONE) if the source of
    the NMI isn't the iLO watchdog or debug.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

17 Dec, 2017

1 commit

  • This corrects:
    commit cce78da76601 ("watchdog: hpwdt: Add check for UEFI bits")

    The test on HPE SMBIOS extension type 219 record "Misc Features"
    bits for UEFI support is incorrect. The definition of the Misc Features
    bits in the HPE SMBIOS OEM Extensions specification (and related
    firmware) was changed to use a different pair of bits to
    represent UEFI supported. Howerver, a corresponding change
    to Linux was missed.

    Current code/platform work because the iCRU test is working.
    But purpose of cce78da766 is to ensure correct functionality
    on future systems where iCRU isn't supported.

    Signed-off-by: Jerry Hoemann
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Jerry Hoemann
     

09 May, 2017

1 commit


03 Oct, 2016

1 commit

  • iLO5 will offer the same watchdog timer as previous generations, but the
    PCI subsystem vendor ID will be PCI_VENDOR_ID_HP_3PAR (0x1590) instead of
    PCI_VENDOR_ID_HP (0x103c). Add 0x1590 to the whitelist and be more
    specific when ignoring the 103c,1979 device.

    Signed-off-by: Brian Boylston
    Reviewed-by: Guenter Roeck
    Signed-off-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Brian Boylston
     

23 Mar, 2016

1 commit

  • Commit 1717f2096b54 ("panic, x86: Fix re-entrance problem due to panic
    on NMI") introduced nmi_panic() which prevents concurrent and recursive
    execution of panic(). It also saves registers for the crash dump on x86
    by later commit 58c5661f2144 ("panic, x86: Allow CPUs to save registers
    even if looping in NMI context").

    hpwdt driver can call panic() from NMI handler, so replace it with
    nmi_panic(). Also, do some cleanups.

    Signed-off-by: Hidehiro Kawai
    Acked-by: Guenter Roeck
    Cc: Thomas Mingarelli
    Cc: Wim Van Sebroeck
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidehiro Kawai
     

25 Feb, 2016

1 commit

  • Fix the following build failure:

    drivers/watchdog/hpwdt.c:359:5: error: expected ‘)’ before ‘FRAME_BEGIN’

    which occurs because hpwdt.c relied on indirect inclusion to get asm/frame.h
    definitions - but some (mostly randconfig) configs did not provide that.

    Include explicitly.

    Cc: Josh Poimboeuf
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Arnaldo Carvalho de Melo
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Chris J Arges
    Cc: Denys Vlasenko
    Cc: Guenter Roeck
    Cc: H. Peter Anvin
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Wim Van Sebroeck
    Cc: linux-watchdog@vger.kernel.org
    Cc: live-patching@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

24 Feb, 2016

1 commit

  • asminline_call() is a callable non-leaf function which doesn't honor
    CONFIG_FRAME_POINTER, which can result in bad stack traces.

    Create a stack frame when CONFIG_FRAME_POINTER is enabled.

    Signed-off-by: Josh Poimboeuf
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Arnaldo Carvalho de Melo
    Cc: Bernd Petrovitsch
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Chris J Arges
    Cc: Denys Vlasenko
    Cc: Guenter Roeck
    Cc: H. Peter Anvin
    Cc: Jiri Slaby
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Namhyung Kim
    Cc: Pedro Alves
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Wim Van Sebroeck
    Cc: linux-watchdog@vger.kernel.org
    Cc: live-patching@vger.kernel.org
    Link: http://lkml.kernel.org/r/60de3cfb6f16d413bfb923036cc87fec132df735.1453405861.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     

29 Dec, 2015

1 commit


22 Jun, 2015

1 commit


18 Feb, 2015

1 commit

  • allow_kdump was enabled as default since following commit.

    commit a089361cf5f1d6a5295aa5385238bd044998e1e9,
    watchdog: hpwdt: Unregister NMI events on exit.

    But the initialization message was not modified.
    So it still shows

    HP Watchdog Timer Driver: NMI decoding initialized,
    allow kernel dump: ON (default = 0/OFF)
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Masanari Iida
     

31 Mar, 2014

1 commit

  • None of these files are actually using any __init type directives
    and hence don't need to include . Most are just a
    left over from __devinit and __cpuinit removal, or simply due to
    code getting copied from one driver to the next.

    Signed-off-by: Paul Gortmaker
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck
    Cc: linux-watchdog@vger.kernel.org

    Paul Gortmaker
     

29 Jan, 2014

1 commit

  • This patch is being submitted to output a general string when the panic comes
    in that informs the user of the possible places to look for the source of the
    NMI. Because various systems log the message in different places this would
    give a single display of where to go look instead of code that acts on all
    these different server names or IDs.

    Signed-off-by: Thomas Mingarelli
    Signed-off-by: Wim Van Sebroeck

    Thomas Mingarelli