I agree that this causes our ISR to be called where no useful work will
be done -- netif_rx_schedule_prep() will fail till netif_poll_enable is
called.
However, there should not be any adverse side effects due to this.
Will fix this in the next release.
Ganesh.
>-----Original Message-----
>From: Chilakala, Mallikarjuna
>Sent: Tuesday, February 15, 2005 2:32 PM
>To: Venkatesan, Ganesh
>Subject: FW: [PATCH net-drivers-2.6 2/10] e1000: use
>netif_poll_{enable|disable}
>
>
>
>-----Original Message-----
>From: Francois Romieu [mailto:romieu@xxxxxxxxxxxxx]
>Sent: Tuesday, February 15, 2005 2:06 PM
>To: Chilakala, Mallikarjuna
>Cc: jgarzik@xxxxxxxxx; netdev
>Subject: Re: [PATCH net-drivers-2.6 2/10] e1000: use
>netif_poll_{enable|disable}
>
>Malli Chilakala <mallikarjuna.chilakala@xxxxxxxxx> :
>[...]
>> diff -up net-drivers-2.6/drivers/net/e1000/e1000_main.c net-drivers-
>2.6/drivers/net/e1000.new/e1000_main.c
>> --- net-drivers-2.6/drivers/net/e1000/e1000_main.c 2005-02-01
>23:10:24.989105880 -0800
>> +++ net-drivers-2.6/drivers/net/e1000.new/e1000_main.c
2005-02-01
>23:10:26.709844288 -0800
>> @@ -308,6 +308,9 @@ e1000_up(struct e1000_adapter *adapter)
>> mod_timer(&adapter->watchdog_timer, jiffies);
>> e1000_irq_enable(adapter);
>>
>> +#ifdef CONFIG_E1000_NAPI
>> + netif_poll_enable(netdev);
>> +#endif
>> return 0;
>> }
>>
>
>It leaves a small(*) window where the irq handler will do nothing with
>the events it receives. If netif_poll_enable() is issued before
>e1000_irq_enable(), the problem disappears.
>
>[*] Assuming CONFIG_PREEMPT=n
>
>--
>Ueimor
|