the gc is run from a task in the systq, so we dont need a flag to
serialise it. it is already serialised.

ok?

Index: uipc_usrreq.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_usrreq.c,v
retrieving revision 1.95
diff -u -p -r1.95 uipc_usrreq.c
--- uipc_usrreq.c       5 Dec 2015 10:11:53 -0000       1.95
+++ uipc_usrreq.c       25 Feb 2016 11:38:16 -0000
@@ -882,7 +882,7 @@ fail:
        return (error);
 }
 
-int    unp_defer, unp_gcing;
+int    unp_defer;
 
 void
 unp_gc(void *arg __unused)
@@ -893,10 +893,6 @@ unp_gc(void *arg __unused)
        struct unpcb *unp;
        int nunref, i;
 
-       if (unp_gcing)
-               return;
-       unp_gcing = 1;
-
        /* close any fds on the deferred list */
        while ((defer = SLIST_FIRST(&unp_deferred)) != NULL) {
                SLIST_REMOVE_HEAD(&unp_deferred, ud_link);
@@ -991,7 +987,6 @@ unp_gc(void *arg __unused)
                                    unp_discard);
                }
        }
-       unp_gcing = 0;
 }
 
 void

Reply via email to