BUG: PCI Device Fails After Suspend/Resume on Windows 95 OSR2

ID: Q196121

The information in this article applies to:

SYMPTOMS

Under Windows 95 OSR2, following a suspend/resume sequence, a PCI device may fail to work properly. Examining the device in Device Manager shows that the device has been disabled in hardware, displaying error code 29.

CAUSE

This problem is caused by a rebalance bug in Windows 95 OSR2. During the process of arbitrating device IRQ resources, Configuration Manager will perform a rebalance if it determines that there are insufficient system IRQs available to satisfy device requirements. A rebalance commonly results in multiple PCI interrupts being combined and routed to one system IRQ. The bug, however, can result in a rebalanced PCI IRQ Holder having a NULL devnode. During the suspend process, Configuration Manager tries to remove resources for PCI devices but fails if a device's IRQ Holder has a NULL devnode, resulting in that PCI device being marked with CM_PROB_HARDWARE_DISABLED (error code 29).

RESOLUTION

As a workaround, reducing device IRQ requirements in the system can prevent the IRQ rebalance, and this bug, from occurring. Leaving at least one system IRQ unused prevents this problem.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was fixed in Windows 98.

MORE INFORMATION

Due to the nature of PCI interrupts and IRQ routing, this bug may or may not be evident on a given system based on a number of variables including PCI slot design (how the PCI interrupts are routed between slots), PCI card interrupt usage, and system IRQ availability.

Additional query words:

Keywords          : kbDDK kbWinOS95bug kbWinOS98fix 
Version           : WINDOWS:5
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbfix

Last Reviewed: December 2, 1998