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