lkml.org 
[lkml]   [2000]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectnetif_wake_queue() question
Please check my sanity here:

Jamal's softnet migration doc says that "If a device sets XOFF (due to a
call to netif_stop_queue(), it MUST call netif_wake_queue at some point
later".

Fair enough, but I believe this should generally happen within the Tx
completion ISR, not within the device's hard_start_xmit() method.
Correct?

If you call netif_wake_queue() within the hard_start_xmit() handler and
if you have another skb queued then your hard_start_xmit() handler will
be called again really soon by the softirq stuff (at the exit from the
next irq, syscall or exception handler), often before the current packet
has been sent. Your driver may well choke on this. Also correct?


If I'm sane then a number of existing drivers may not be. The following
drivers call netif_wake_queue() within their hard_start_xmit() and may
need looking at:

* 3c527.c
* cs89x0.c (my current problem)
* possibly eepro.c
* fmv18x.c
* ni5010.c
* ni52.c
* ni65.c
* skeleton.c (!)
* smc9194.c

and many others.


- akpm

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.036 / U:0.620 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site