• James Ketrenos's avatar
    [PATCH] ipw2200: stop netdev queue if h/w doesn't have space for new packets · f697014a
    James Ketrenos authored
    The patch roll back the change we made to support for the ability to
    start/stop independent Tx queues within a single net device in order to
    support 802.11e QoS. We need to be able to indicate to the upper layers
    that packets of a given priority can not be sent any more without halting
    transmission of all packets, and without rescheduling high priority packets
    down to the next priority level.
    
    So we return NETDEV_TX_BUSY in this case and rely on the stack would
    take care of rescheduling... which it apparently does immediately and
    consumes the CPU. This caused the ksoftirqd kernel thread consuming almost
    all the CPU...
    
    To put the code back to the way it was before we made these changes we
    put the call netif_queue_stop back in ipw_tx_skb.  This effectively
    disables multiple priority based transmit queues for 802.11e, but given
    that its broken anyway...
    Signed-off-by: default avatarJames Ketrenos <jketreno@linux.intel.com>
    Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    f697014a
ipw2200.c 303 KB