Interrupt satisfaction problem

Hi,

I have kernel mini streaming driver for PCI card which ISR routine.
As far as I know interrupts on PCI are level-trigger so to avoid infinite loop of ISR calling, a device has to be informed that interrupt is completed. In my case it is done by clearing some flag in device mapped memory space. When application (Graph Editor) is terminated regular way everything is OK, when however system is shutting down in some moment everything blocks as if ISR was calling in loop on DIRQL level. It happens only when driver streams data Where is the difference comparing to regular application termination ? And maybe problem lays somewhere else, not in ISR and interrupt ? Anyway my question is: how to diagnose the problem ?

Best Regards
Dariusz Dziara

Check why your card is not deasserting #INTA. My best guess is your
driver didn’t correctly ack/clear the interrupt.

Calvin Guan

NetXtreme NTX Miniport

Broadcom Corporation

Connecting Everything(r)


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dariusz Dziara
Sent: Wednesday, March 29, 2006 5:49 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Interrupt satisfaction problem

Hi,

I have kernel mini streaming driver for PCI card which ISR routine.

As far as I know interrupts on PCI are level-trigger so to avoid
infinite loop of ISR calling, a device has to be informed that interrupt
is completed. In my case it is done by clearing some flag in device
mapped memory space. When application (Graph Editor) is terminated
regular way everything is OK, when however system is shutting down in
some moment everything blocks as if ISR was calling in loop on DIRQL
level. It happens only when driver streams data Where is the difference
comparing to regular application termination ? And maybe problem lays
somewhere else, not in ISR and interrupt ? Anyway my question is: how to
diagnose the problem ?

Best Regards

Dariusz Dziara


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer