Module Name: src Committed By: msaitoh Date: Thu May 15 09:23:52 UTC 2014
Modified Files: src/sys/dev/ic: hd64570.c src/sys/dev/qbus: if_dmc.c src/sys/dev/usb: if_upl.c Log Message: Save a NETISR_* value in a variable and call schednetisr() after enqueue a packet for readability and future modification. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/dev/ic/hd64570.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/qbus/if_dmc.c cvs rdiff -u -r1.44 -r1.45 src/sys/dev/usb/if_upl.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/dev/ic/hd64570.c diff -u src/sys/dev/ic/hd64570.c:1.45 src/sys/dev/ic/hd64570.c:1.46 --- src/sys/dev/ic/hd64570.c:1.45 Sat Sep 14 13:09:18 2013 +++ src/sys/dev/ic/hd64570.c Thu May 15 09:23:52 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: hd64570.c,v 1.45 2013/09/14 13:09:18 joerg Exp $ */ +/* $NetBSD: hd64570.c,v 1.46 2014/05/15 09:23:52 msaitoh Exp $ */ /* * Copyright (c) 1999 Christian E. Hopps @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hd64570.c,v 1.45 2013/09/14 13:09:18 joerg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hd64570.c,v 1.46 2014/05/15 09:23:52 msaitoh Exp $"); #include "opt_inet.h" @@ -1536,6 +1536,7 @@ sca_frame_process(sca_port_t *scp) u_int8_t *bufp; u_int16_t len; u_int32_t t; + int isr = 0; t = time_uptime * 1000; desc = &scp->sp_rxdesc[scp->sp_rxstart]; @@ -1587,7 +1588,7 @@ sca_frame_process(sca_port_t *scp) m->m_data += sizeof(struct hdlc_header); m->m_len -= sizeof(struct hdlc_header); ifq = &ipintrq; - schednetisr(NETISR_IP); + isr = NETISR_IP; break; #endif /* INET */ #ifdef INET6 @@ -1598,7 +1599,7 @@ sca_frame_process(sca_port_t *scp) m->m_data += sizeof(struct hdlc_header); m->m_len -= sizeof(struct hdlc_header); ifq = &ip6intrq; - schednetisr(NETISR_IPV6); + isr = NETISR_IPV6; break; #endif /* INET6 */ case CISCO_KEEPALIVE: @@ -1691,6 +1692,7 @@ sca_frame_process(sca_port_t *scp) /* queue the packet */ if (!IF_QFULL(ifq)) { IF_ENQUEUE(ifq, m); + schednetisr(isr); } else { IF_DROP(ifq); scp->sp_if.if_iqdrops++; Index: src/sys/dev/qbus/if_dmc.c diff -u src/sys/dev/qbus/if_dmc.c:1.21 src/sys/dev/qbus/if_dmc.c:1.22 --- src/sys/dev/qbus/if_dmc.c:1.21 Sat Oct 27 17:18:37 2012 +++ src/sys/dev/qbus/if_dmc.c Thu May 15 09:23:52 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_dmc.c,v 1.21 2012/10/27 17:18:37 chs Exp $ */ +/* $NetBSD: if_dmc.c,v 1.22 2014/05/15 09:23:52 msaitoh Exp $ */ /* * Copyright (c) 1982, 1986 Regents of the University of California. * All rights reserved. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_dmc.c,v 1.21 2012/10/27 17:18:37 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_dmc.c,v 1.22 2014/05/15 09:23:52 msaitoh Exp $"); #undef DMCDEBUG /* for base table dump on fatal error */ @@ -560,6 +560,7 @@ dmcxint(void *a) struct ifxmt *ifxp; struct dmc_header *dh; char buf[64]; + int isr = 0; ifp = &sc->sc_if; @@ -627,7 +628,7 @@ dmcxint(void *a) #ifdef INET case DMC_IPTYPE: - schednetisr(NETISR_IP); + isr = NETISR_IP; inq = &ipintrq; break; #endif @@ -640,8 +641,10 @@ dmcxint(void *a) if (IF_QFULL(inq)) { IF_DROP(inq); m_freem(m); - } else + } else { IF_ENQUEUE(inq, m); + schednetisr(isr); + } splx(s); setup: Index: src/sys/dev/usb/if_upl.c diff -u src/sys/dev/usb/if_upl.c:1.44 src/sys/dev/usb/if_upl.c:1.45 --- src/sys/dev/usb/if_upl.c:1.44 Sat Jan 5 01:30:16 2013 +++ src/sys/dev/usb/if_upl.c Thu May 15 09:23:52 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: if_upl.c,v 1.44 2013/01/05 01:30:16 christos Exp $ */ +/* $NetBSD: if_upl.c,v 1.45 2014/05/15 09:23:52 msaitoh Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. * All rights reserved. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.44 2013/01/05 01:30:16 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_upl.c,v 1.45 2014/05/15 09:23:52 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1038,7 +1038,6 @@ upl_input(struct ifnet *ifp, struct mbuf /* XXX Assume all traffic is IP */ - schednetisr(NETISR_IP); inq = &ipintrq; s = splnet(); @@ -1053,6 +1052,7 @@ upl_input(struct ifnet *ifp, struct mbuf return; } IF_ENQUEUE(inq, m); + schednetisr(NETISR_IP); splx(s); #endif ifp->if_ipackets++;