diff options
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/ip_log.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/netinet/ip_log.c b/sys/netinet/ip_log.c index a5d696631cb..c9a14531c9e 100644 --- a/sys/netinet/ip_log.c +++ b/sys/netinet/ip_log.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ip_log.c,v 1.10 2001/01/30 04:23:56 kjell Exp $ */ +/* $OpenBSD: ip_log.c,v 1.11 2001/03/25 12:03:11 gluk Exp $ */ /* * Copyright (C) 1997-2000 by Darren Reed. @@ -446,22 +446,19 @@ struct uio *uio; /* * Don't hold the mutex over the uiomove call. */ - iplt[unit] = ipl->ipl_next; - iplused[unit] -= dlen; MUTEX_EXIT(&ipl_mutex); SPL_X(s); error = UIOMOVE((caddr_t)ipl, dlen, UIO_READ, uio); if (error) { SPL_NET(s); MUTEX_ENTER(&ipl_mutex); - ipl->ipl_next = iplt[unit]; - iplt[unit] = ipl; - iplused[unit] += dlen; break; } - KFREES((caddr_t)ipl, dlen); SPL_NET(s); MUTEX_ENTER(&ipl_mutex); + iplused[unit] -= dlen; + iplt[unit] = ipl->ipl_next; + KFREES((caddr_t)ipl, dlen); } if (!iplt[unit]) { iplused[unit] = 0; |