]> git.hungrycats.org Git - linux/commit
[netdrvr e1000] tx_lock
authorScott Feldman <scott.feldman@intel.com>
Tue, 3 Feb 2004 22:05:56 +0000 (17:05 -0500)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 3 Feb 2004 22:05:56 +0000 (17:05 -0500)
commit7ce9e1913d4ae45a907e4eda1891893f0adb4176
treeaff847be17902f3a3e96cd897f1338bb6d5c48e7
parent3c32e3550cd0d8e2432ee5e8f2ceec4372ec43cc
[netdrvr e1000] tx_lock

* Fix race in Tx performance path with tx_lock.  Between checking
  if we're out of resources and stopping the queue, we can get
  a hard interrupt which will clean up all Tx work, and wake
  the queue.  Coming out of hard interrupt context, we stop the
  queue even though no work was queued, and all work completed
  has been cleaned up.  Scenario requires ring to be completely
  filled, which is more likely to happen with TSO, since each
  TSO send consumes multiple ring entries.
drivers/net/e1000/e1000.h
drivers/net/e1000/e1000_main.c