On Thu, 2010-01-21 at 10:16 -0800, Luis R. Rodriguez wrote: > On Thu, Jan 21, 2010 at 1:44 AM, Johannes Berg > <johannes@xxxxxxxxxxxxxxxx> wrote: > > On Wed, 2010-01-20 at 21:55 -0500, Luis R. Rodriguez wrote: > > > >> @@ -287,7 +287,13 @@ > >> > >> rcu_read_lock(); > >> list_for_each_entry_rcu(sdata, &local->interfaces, list) > >> +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) > >> netif_tx_wake_queue(netdev_get_tx_queue(sdata->dev, queue)); > >> +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)) > >> + netif_start_subqueue(sdata->dev, queue); > >> +#else > >> + netif_wake_queue(sdata->dev); > >> +#endif > > > > That's incorrect, you need to check for all hardware queues being awake. > > Can you elaborate? I'm not following. Well something like stopped = 0; for (i = 0; i < hw_queues; i++) if (queue_stop_reason[i]) stopped++; if (stopped == 0) netif_wake_queue() johannes
Attachment:
signature.asc
Description: This is a digitally signed message part