patch-1.3.68 linux/net/core/sock.c

Next file: linux/net/ipv4/af_inet.c
Previous file: linux/net/core/net_alias.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.67/linux/net/core/sock.c linux/net/core/sock.c
@@ -558,17 +558,15 @@
 	 */
 
 	/* See if we have any packets built up. */
+	start_bh_atomic();
 	while ((skb = __skb_dequeue(&sk->back_log)) != NULL) 
 	{
-		barrier();
-		sk->users = 1;
 		if (sk->prot->rcv) 
 			sk->prot->rcv(skb, skb->dev, (struct options*)skb->proto_priv,
 				 skb->saddr, skb->len, skb->daddr, 1,
 				/* Only used for/by raw sockets. */
 				(struct inet_protocol *)sk->pair); 
-		sk->users = 0;
-		barrier();
 	}
+	end_bh_atomic();
 #endif  
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this