A VMware ESXi host experiences a Purple Screen of Death (PSOD), resulting in a host crash and system outage.
The issue is verified by reviewing the crash back-trace and panic message, which confirms a Page Fault Exception 14 occurs in the Cisco VIC Ethernet NIC driver (`nenic`) on PCI device `0000:62:00.0`.
Observed panic and back-trace logs:
VMware ESXi 8.0.3 [Releasebuild-25429389 x86_64]
#PF Exception 14 in world 2098103:0000:62:00.0 IP 0x4200352dc161 addr 0xbc0
Module(s) involved in panic: [nenic 2.0.17.0-1OEM.800.1.0.20613240 (External)]
0x453a5929bd70:[0x4200352dc161]CpuSchedWakeupWorldInt@vmkernel#nover+0xd stack: 0x3e8
0x453a5929bea0:[0x420035f1c901]enic_activate_dev@(nenic)#<None>+0xc76 stack: 0x4322836b3e20
0x453a5929bf40:[0x420035f1ef0b]enic_reset_helper@(nenic)#<None>+0xe0 stack: 0x453a5929f000
VMware ESXi 8.0.3
An invalid memory access occurs during the Cisco VIC Ethernet adapter device reset and activation process. The `nenic` driver attempts to reference a null or invalid memory pointer (`0xbc0`), triggering an unrecoverable page fault in the kernel space.
The crash backtrace shows that a kernel helper queue executes a reset routine (`enic_reset_helper`) on the `nenic` driver. During the subsequent device re-activation (`enic_activate_dev`), the driver attempts to wake up a scheduler world via `CpuSchedWakeupWorldInt` using an uninitialized pointer. Exception 14 page faults referencing the `nenic` module indicate memory access violations during network operations, which are often caused by driver/firmware version mismatches, reset failures, or queue timeouts (`vnic_dev_cmd2`) on Cisco VIC adapters.
1. Contact Cisco to investigate the Cisco VIC adapter hardware.
2. Check and update the firmware for the `nenic` driver to ensure it matches the recommended, compatible versions.
When the Cisco VIC adapter firmware and the `nenic` driver are at recommended versions, it resolves the underlying firmware communication violations and queue timeouts (`vnic_dev_cmd2`). This prevents the driver from attempting invalid memory dereferences during reset and activation sequences, thereby restoring host stability and preventing the PSOD.