diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2001-01-10 05:27:25 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2001-01-10 05:27:25 +0000 |
commit | c9c06167e7933d93a6e396174c68abf242294abb (patch) | |
tree | d9a8bb30663e9a3405a1ef37ffb62bc14b9f019f /net/ipv4/ip_sockglue.c | |
parent | f79e8cc3c34e4192a3e5ef4cc9c6542fdef703c0 (diff) |
Merge with Linux 2.4.0-test12.
Diffstat (limited to 'net/ipv4/ip_sockglue.c')
-rw-r--r-- | net/ipv4/ip_sockglue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index f87921077..17cd81ee2 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c @@ -5,7 +5,7 @@ * * The IP to API glue. * - * Version: $Id: ip_sockglue.c,v 1.53 2000/10/22 16:06:56 davem Exp $ + * Version: $Id: ip_sockglue.c,v 1.54 2000/11/28 13:34:56 davem Exp $ * * Authors: see ip.c * @@ -356,10 +356,14 @@ int ip_recv_error(struct sock *sk, struct msghdr *msg, int len) err = copied; /* Reset and regenerate socket error */ + spin_lock_irq(&sk->error_queue.lock); sk->err = 0; if ((skb2 = skb_peek(&sk->error_queue)) != NULL) { sk->err = SKB_EXT_ERR(skb2)->ee.ee_errno; + spin_unlock_irq(&sk->error_queue.lock); sk->error_report(sk); + } else { + spin_unlock_irq(&sk->error_queue.lock); } out_free_skb: |