From bd81e07d2761cf1c13063eb49a5c0cb4a6951318 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Fri, 28 Aug 2015 00:38:18 +0000 Subject: Re-apply r274569. It was reverted in r276848 since that appeared to fix some ctfmerge crashes that started to occur on i386 weeks after r274569 was committed. Some later investigation indicated that the crashes were caused by malformed CTF info that led to a stack overflow. The issue with CTF info in i386 kernels seems to have been resolved by r261246, which updated libdwarf and libelf. r274569 fixes a bug which caused duplicate types to appear in the kernel's CTF info. This duplication generally does not cause problems when using DTrace, but makes it easier to hit the limit of 2^15 - 1 distinct type definitions in a CTF container. MFC after: 2 weeks --- cddl/contrib/opensolaris/tools/ctf/cvt/merge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cddl/contrib') diff --git a/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c b/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c index 27966af0cf50..d366f3182731 100644 --- a/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c +++ b/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c @@ -349,7 +349,7 @@ equiv_node(tdesc_t *ctdp, tdesc_t *mtdp, equiv_data_t *ed) int (*equiv)(tdesc_t *, tdesc_t *, equiv_data_t *); int mapping; - if (ctdp->t_emark > ed->ed_clear_mark || + if (ctdp->t_emark > ed->ed_clear_mark && mtdp->t_emark > ed->ed_clear_mark) return (ctdp->t_emark == mtdp->t_emark); -- cgit v1.2.3