mirror of
https://github.com/reactos/reactos.git
synced 2025-05-08 11:24:14 +00:00
[NDIS]
- Always call MiniportISR if the interrupt is shared - Call MiniportHandleInterrupt even if MiniportInitialize is running - This commit and r66511 fix the Broadcom 57XX NIC (CORE-9295) svn path=/trunk/; revision=66512
This commit is contained in:
parent
44ccc12ac6
commit
23eb1ea1e7
1 changed files with 4 additions and 3 deletions
|
@ -71,7 +71,7 @@ BOOLEAN NTAPI ServiceRoutine(
|
||||||
NDIS_DbgPrint(MAX_TRACE, ("MiniportInitialize executing: %s\n", (Initializing ? "yes" : "no")));
|
NDIS_DbgPrint(MAX_TRACE, ("MiniportInitialize executing: %s\n", (Initializing ? "yes" : "no")));
|
||||||
|
|
||||||
/* MiniportISR is always called for interrupts during MiniportInitialize */
|
/* MiniportISR is always called for interrupts during MiniportInitialize */
|
||||||
if ((Initializing) || (NdisInterrupt->IsrRequested)) {
|
if ((Initializing) || (NdisInterrupt->IsrRequested) || (NdisInterrupt->SharedInterrupt)) {
|
||||||
NDIS_DbgPrint(MAX_TRACE, ("Calling MiniportISR\n"));
|
NDIS_DbgPrint(MAX_TRACE, ("Calling MiniportISR\n"));
|
||||||
(*NdisMiniportBlock->DriverHandle->MiniportCharacteristics.ISRHandler)(
|
(*NdisMiniportBlock->DriverHandle->MiniportCharacteristics.ISRHandler)(
|
||||||
&InterruptRecognized,
|
&InterruptRecognized,
|
||||||
|
@ -86,8 +86,9 @@ BOOLEAN NTAPI ServiceRoutine(
|
||||||
InterruptRecognized = TRUE;
|
InterruptRecognized = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* MiniportHandleInterrupt is never called for an interrupt during MiniportInitialize */
|
/* TODO: Figure out if we should call this or not if Initializing is true. It appears
|
||||||
if ((QueueMiniportHandleInterrupt) && (!Initializing))
|
* that calling it fixes some NICs, but documentation is contradictory on it. */
|
||||||
|
if (QueueMiniportHandleInterrupt)
|
||||||
{
|
{
|
||||||
NDIS_DbgPrint(MAX_TRACE, ("Queuing DPC.\n"));
|
NDIS_DbgPrint(MAX_TRACE, ("Queuing DPC.\n"));
|
||||||
KeInsertQueueDpc(&NdisInterrupt->InterruptDpc, NULL, NULL);
|
KeInsertQueueDpc(&NdisInterrupt->InterruptDpc, NULL, NULL);
|
||||||
|
|
Loading…
Reference in a new issue