• Ben Hutchings's avatar
    sfc: Remove ancient support for nesting of TX stop · c04bfc6b
    Ben Hutchings authored
    Long before this driver went into mainline, it had support for
    multiple TX queues per port, with lockless TX enabled.  Since Linux
    did not know anything of this, filling up any hardware TX queue would
    stop the core TX queue and multiple hardware TX queues could fill up
    before the scheduler reacted.  Thus it was necessary to keep a count
    of how many TX queues were stopped and to wake the core TX queue only
    when all had free space again.
    
    The driver also previously (ab)used the per-hardware-queue stopped
    flag as a counter to deal with various things that can inhibit TX, but
    it no longer does that.
    
    Remove the per-channel tx_stop_count, tx_stop_lock and
    per-hardware-queue stopped count and just use the networking core
    queue state directly.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    c04bfc6b
tx.c 30.9 KB