Re: [PATCH 1/4]: Spidernet stop queue when queue is full

From: Arnd Bergmann
Date: Tue Oct 03 2006 - 18:20:30 EST


On Tuesday 03 October 2006 22:57, Linas Vepstas wrote:
> +       if ((chain->head->next == chain->tail->prev) ||
> +          (spider_net_get_descr_status(descr) != SPIDER_NET_DESCR_NOT_IN_USE)) {
>                 result = NETDEV_TX_LOCKED;
>                 goto out;
>         }

...

>  out:
> -       netif_wake_queue(netdev);
> +       card->netdev_stats.tx_dropped++;
> +       netif_stop_queue(netdev);
>         return result;
>  }

Hmm, this looks a little strange to me. I would assume that we should not
stop the queue when the device is locked, but only when it is busy.

I would assume though that the fix is to return NETDEV_TX_BUSY instead
of NETDEV_TX_LOCKED in the case above, while the netif_stop_queue()
is correct here.

Arnd <><
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/