Author: markj
Date: Fri Sep 11 03:04:24 2015
New Revision: 287641
URL: https://svnweb.freebsd.org/changeset/base/287641

Log:
  MFV r283512:
  3599 dtrace_dynvar tail calls can blow stack
  Reviewed by: Adam Leventhal <[email protected]>
  Reviewed by: Gordon Ross <[email protected]>
  Approved by: Richard Lowe <[email protected]>
  Author: Bryan Cantrill <[email protected]>
  
  illumos/illumos-gate@d47448f09aae3aa1a87fc450a0c44638e7ce7b51

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
Directory Properties:
  head/sys/cddl/contrib/opensolaris/   (props changed)

Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c        Fri Sep 
11 03:00:20 2015        (r287640)
+++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c        Fri Sep 
11 03:04:24 2015        (r287641)
@@ -23,7 +23,7 @@
 
 /*
  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2015, Joyent, Inc. All rights reserved.
  * Copyright (c) 2012, 2014 by Delphix. All rights reserved.
  */
 
@@ -2146,7 +2146,7 @@ retry:
         * this hash chain, or another CPU is deleting an element from this
         * hash chain.  The simplest way to deal with both of these cases
         * (though not necessarily the most efficient) is to free our
-        * allocated block and tail-call ourselves.  Note that the free is
+        * allocated block and re-attempt it all.  Note that the free is
         * to the dirty list and _not_ to the free list.  This is to prevent
         * races with allocators, above.
         */
@@ -2159,7 +2159,7 @@ retry:
                dvar->dtdv_next = free;
        } while (dtrace_casptr(&dcpu->dtdsc_dirty, free, dvar) != free);
 
-       return (dtrace_dynvar(dstate, nkeys, key, dsize, op, mstate, vstate));
+       goto top;
 }
 
 /*ARGSUSED*/
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to