diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-19 18:55:56 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-19 18:55:56 -0700 | 
| commit | d0b952a9837f81cd89e756b1b34293fa6e1cb59d (patch) | |
| tree | fbe488bc5f407afa0e91cefb262d9e9ee69062ac /net/core/netpoll.c | |
| parent | d90125bfe958ed0451c6b98f831c86aba08b43d5 (diff) | |
| parent | 47552c4e555eefe381f3d45140b59a2ea4b16486 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (109 commits)
  [ETHTOOL]: Fix UFO typo
  [SCTP]: Fix persistent slowdown in sctp when a gap ack consumes rx buffer.
  [SCTP]: Send only 1 window update SACK per message.
  [SCTP]: Don't do CRC32C checksum over loopback.
  [SCTP] Reset rtt_in_progress for the chunk when processing its sack.
  [SCTP]: Reject sctp packets with broadcast addresses.
  [SCTP]: Limit association max_retrans setting in setsockopt.
  [PFKEYV2]: Fix inconsistent typing in struct sadb_x_kmprivate.
  [IPV6]: Sum real space for RTAs.
  [IRDA]: Use put_unaligned() in irlmp_do_discovery().
  [BRIDGE]: Add support for NETIF_F_HW_CSUM devices
  [NET]: Add NETIF_F_GEN_CSUM and NETIF_F_ALL_CSUM
  [TG3]: Convert to non-LLTX
  [TG3]: Remove unnecessary tx_lock
  [TCP]: Add tcp_slow_start_after_idle sysctl.
  [BNX2]: Update version and reldate
  [BNX2]: Use CPU native page size
  [BNX2]: Use compressed firmware
  [BNX2]: Add firmware decompression
  [BNX2]: Allow WoL settings on new 5708 chips
  ...
Manual fixup for conflict in drivers/net/tulip/winbond-840.c
Diffstat (limited to 'net/core/netpoll.c')
| -rw-r--r-- | net/core/netpoll.c | 9 | 
1 files changed, 3 insertions, 6 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index e8e05cebd95a..9cb781830380 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -273,24 +273,21 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)  	do {  		npinfo->tries--; -		spin_lock(&np->dev->xmit_lock); -		np->dev->xmit_lock_owner = smp_processor_id(); +		netif_tx_lock(np->dev);  		/*  		 * network drivers do not expect to be called if the queue is  		 * stopped.  		 */  		if (netif_queue_stopped(np->dev)) { -			np->dev->xmit_lock_owner = -1; -			spin_unlock(&np->dev->xmit_lock); +			netif_tx_unlock(np->dev);  			netpoll_poll(np);  			udelay(50);  			continue;  		}  		status = np->dev->hard_start_xmit(skb, np->dev); -		np->dev->xmit_lock_owner = -1; -		spin_unlock(&np->dev->xmit_lock); +		netif_tx_unlock(np->dev);  		/* success */  		if(!status) {  | 
