/* * NMI Handler
*/ staticint hpwdt_pretimeout(unsignedint ulReason, struct pt_regs *regs)
{ unsignedint mynmi = hpwdt_my_nmi(); staticchar panic_msg[] = "00: An NMI occurred. Depending on your system the reason " "for the NMI is logged in any one of the following resources:\n" "1. Integrated Management Log (IML)\n" "2. OA Syslog\n" "3. OA Forward Progress Log\n" "4. iLO Event Log";
if (ulReason == NMI_UNKNOWN && !mynmi) return NMI_DONE;
if (kdumptimeout < 0)
hpwdt_stop(); elseif (kdumptimeout == 0)
; else { unsignedint val = max((unsignedint)kdumptimeout, hpwdt_dev.timeout);
hpwdt_ping_ticks(SECS_TO_TICKS(val));
}
staticint hpwdt_init_one(struct pci_dev *dev, conststruct pci_device_id *ent)
{ int retval;
/* * First let's find out if we are on an iLO2+ server. We will * not run on a legacy ASM box. * So we only support the G5 ProLiant servers and higher.
*/ if (dev->subsystem_vendor != PCI_VENDOR_ID_HP &&
dev->subsystem_vendor != PCI_VENDOR_ID_HP_3PAR) {
dev_warn(&dev->dev, "This server does not have an iLO2+ ASIC.\n"); return -ENODEV;
}
if (pci_match_id(hpwdt_blacklist, dev)) {
dev_dbg(&dev->dev, "Not supported on this device\n"); return -ENODEV;
}
if (pci_enable_device(dev)) {
dev_warn(&dev->dev, "Not possible to enable PCI Device: 0x%x:0x%x.\n",
ent->vendor, ent->device); return -ENODEV;
}
pci_mem_addr = pci_iomap(dev, 1, 0x80); if (!pci_mem_addr) {
dev_warn(&dev->dev, "Unable to detect the iLO2+ server memory.\n");
retval = -ENOMEM; goto error_pci_iomap;
}
hpwdt_nmistat = pci_mem_addr + 0x6e;
hpwdt_timer_reg = pci_mem_addr + 0x70;
hpwdt_timer_con = pci_mem_addr + 0x72;
/* Have the core update running timer until user space is ready */ if (hpwdt_hw_is_running()) {
dev_info(&dev->dev, "timer is running\n");
set_bit(WDOG_HW_RUNNING, &hpwdt_dev.status);
}
module_param(soft_margin, int, 0);
MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds");
module_param_named(timeout, soft_margin, int, 0);
MODULE_PARM_DESC(timeout, "Alias of soft_margin");
module_param(nowayout, bool, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
module_param(kdumptimeout, int, 0444);
MODULE_PARM_DESC(kdumptimeout, "Timeout applied for crash kernel transition in seconds");
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-04-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.