Source-Changes-HG archive

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

[src/netbsd-6-0]: src/sys/net Pull up following revision(s) (requested by cub...



details:   https://anonhg.NetBSD.org/src/rev/1062ffb04033
branches:  netbsd-6-0
changeset: 774947:1062ffb04033
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Tue Jun 03 15:18:45 2014 +0000

description:
Pull up following revision(s) (requested by cube in ticket #1071):
        sys/net/if_tap.c                        1.76

Prevent a race between tap_dev_poll() and tap_start() by making sure the
call to selrecord() happens at splnet().  Fixes kern/47506 and kern/46199.

diffstat:

 sys/net/if_tap.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (34 lines):

diff -r 0340288cf689 -r 1062ffb04033 sys/net/if_tap.c
--- a/sys/net/if_tap.c  Tue Jun 03 15:06:09 2014 +0000
+++ b/sys/net/if_tap.c  Tue Jun 03 15:18:45 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_tap.c,v 1.66 2010/11/22 21:31:51 christos Exp $     */
+/*     $NetBSD: if_tap.c,v 1.66.18.1 2014/06/03 15:18:45 msaitoh Exp $ */
 
 /*
  *  Copyright (c) 2003, 2004, 2008, 2009 The NetBSD Foundation.
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_tap.c,v 1.66 2010/11/22 21:31:51 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_tap.c,v 1.66.18.1 2014/06/03 15:18:45 msaitoh Exp $");
 
 #if defined(_KERNEL_OPT)
 
@@ -1164,7 +1164,6 @@
 
                s = splnet();
                IFQ_POLL(&ifp->if_snd, m);
-               splx(s);
 
                if (m != NULL)
                        revents |= events & (POLLIN|POLLRDNORM);
@@ -1173,6 +1172,7 @@
                        selrecord(l, &sc->sc_rsel);
                        simple_unlock(&sc->sc_kqlock);
                }
+               splx(s);
        }
        revents |= events & (POLLOUT|POLLWRNORM);
 



Home | Main Index | Thread Index | Old Index