Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/netinet Call looutput with holding KERNEL_LOCK



details:   https://anonhg.NetBSD.org/src/rev/77deee49217c
branches:  trunk
changeset: 334013:77deee49217c
user:      ozaki-r <ozaki-r%NetBSD.org@localhost>
date:      Wed Nov 26 10:18:37 2014 +0000

description:
Call looutput with holding KERNEL_LOCK

This fixes diagnostic assertion "KERNEL_LOCKED_P()" in if_loop.c.

PR kern/49410

diffstat:

 sys/netinet/ip_output.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (26 lines):

diff -r 73e556ab950e -r 77deee49217c sys/netinet/ip_output.c
--- a/sys/netinet/ip_output.c   Wed Nov 26 10:12:27 2014 +0000
+++ b/sys/netinet/ip_output.c   Wed Nov 26 10:18:37 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ip_output.c,v 1.232 2014/10/12 19:00:21 christos Exp $ */
+/*     $NetBSD: ip_output.c,v 1.233 2014/11/26 10:18:37 ozaki-r Exp $  */
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.232 2014/10/12 19:00:21 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.233 2014/11/26 10:18:37 ozaki-r Exp $");
 
 #include "opt_inet.h"
 #include "opt_ipsec.h"
@@ -1713,5 +1713,7 @@
 
        ip->ip_sum = 0;
        ip->ip_sum = in_cksum(copym, ip->ip_hl << 2);
+       KERNEL_LOCK(1, NULL);
        (void)looutput(ifp, copym, sintocsa(dst), NULL);
+       KERNEL_UNLOCK_ONE(NULL);
 }



Home | Main Index | Thread Index | Old Index