Module Name:    src
Committed By:   msaitoh
Date:           Thu May 15 08:36:34 UTC 2014

Modified Files:
        src/sys/net: if_hippisubr.c

Log Message:
 Put schednetisr(NETISR_IP) into splnet()/splx() pair.


To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/sys/net/if_hippisubr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_hippisubr.c
diff -u src/sys/net/if_hippisubr.c:1.39 src/sys/net/if_hippisubr.c:1.40
--- src/sys/net/if_hippisubr.c:1.39	Mon Apr  5 07:22:23 2010
+++ src/sys/net/if_hippisubr.c	Thu May 15 08:36:34 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_hippisubr.c,v 1.39 2010/04/05 07:22:23 joerg Exp $	*/
+/*	$NetBSD: if_hippisubr.c,v 1.40 2014/05/15 08:36:34 msaitoh Exp $	*/
 
 /*
  * Copyright (c) 1982, 1989, 1993
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_hippisubr.c,v 1.39 2010/04/05 07:22:23 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_hippisubr.c,v 1.40 2014/05/15 08:36:34 msaitoh Exp $");
 
 #include "opt_inet.h"
 
@@ -238,6 +238,7 @@ hippi_input(struct ifnet *ifp, struct mb
 	struct llc *l;
 	uint16_t htype;
 	struct hippi_header *hh;
+	int isr = 0;
 	int s;
 
 	if ((ifp->if_flags & IFF_UP) == 0) {
@@ -273,13 +274,13 @@ hippi_input(struct ifnet *ifp, struct mb
 	switch (htype) {
 #ifdef INET
 	case ETHERTYPE_IP:
-		schednetisr(NETISR_IP);
+		isr = NETISR_IP;
 		inq = &ipintrq;
 		break;
 #endif
 #ifdef INET6
 	case ETHERTYPE_IPV6:
-		schednetisr(NETISR_IPV6);
+		isr = NETISR_IPV6;
 		inq = &ip6intrq;
 		break;
 #endif
@@ -292,8 +293,10 @@ hippi_input(struct ifnet *ifp, struct mb
 	if (IF_QFULL(inq)) {
 		IF_DROP(inq);
 		m_freem(m);
-	} else
+	} else {
 		IF_ENQUEUE(inq, m);
+		schednetisr(isr);
+	}
 	splx(s);
 }
 
@@ -308,15 +311,16 @@ hippi_ip_input(struct ifnet *ifp, struct
 	struct ifqueue *inq;
 	int s;
 
-	schednetisr(NETISR_IP);
 	inq = &ipintrq;
 
 	s = splnet();
 	if (IF_QFULL(inq)) {
 		IF_DROP(inq);
 		m_freem(m);
-	} else
+	} else {
 		IF_ENQUEUE(inq, m);
+		schednetisr(NETISR_IP);
+	}
 	splx(s);
 }
 #endif

Reply via email to