summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2015-09-11 03:04:24 +0000
committermarkj <markj@FreeBSD.org>2015-09-11 03:04:24 +0000
commit399d2d3d73d1917cfc358846c96cc1682643abe2 (patch)
tree8e40de302d1e22b94e9e126b78eb1b77e7feda8a /sys/cddl
parent34116761ffee1d709025cfb04b2209d8fc100314 (diff)
downloadFreeBSD-src-399d2d3d73d1917cfc358846c96cc1682643abe2.zip
FreeBSD-src-399d2d3d73d1917cfc358846c96cc1682643abe2.tar.gz
MFV r283512:
3599 dtrace_dynvar tail calls can blow stack Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Gordon Ross <gordon.ross@nexenta.com> Approved by: Richard Lowe <richlowe@richlowe.net> Author: Bryan Cantrill <bryan@joyent.com> illumos/illumos-gate@d47448f09aae3aa1a87fc450a0c44638e7ce7b51
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
index a3a0bba..cf2f7bb 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
@@ -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*/
OpenPOWER on IntegriCloud