aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2014-03-13 21:45:12 +0100
committerSverker Eriksson <[email protected]>2014-03-13 21:45:12 +0100
commit0c7cc3253811ab6a49346101ed29297a85d00327 (patch)
treebe5947787a29aa468465d5ec2935ecc5365d3d83
parentdb7b9b5d5ade023d5f05a5967a1ed65a8fa9880c (diff)
parent2cacb193552f4037ef56b5a39905dd91f0f39c8c (diff)
downloadotp-0c7cc3253811ab6a49346101ed29297a85d00327.tar.gz
otp-0c7cc3253811ab6a49346101ed29297a85d00327.tar.bz2
otp-0c7cc3253811ab6a49346101ed29297a85d00327.zip
Merge branch 'sverk/valgrind-leaks'
* sverk/valgrind-leaks: erts: Suppress false leak in hipe_thread_signal_init erts: Fix leak in nif_SUITE:resource_takeover (again)
-rw-r--r--erts/emulator/hipe/hipe_x86_signal.c6
-rw-r--r--erts/emulator/test/nif_SUITE_data/nif_mod.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/hipe/hipe_x86_signal.c b/erts/emulator/hipe/hipe_x86_signal.c
index 8f997aafab..f5668013e2 100644
--- a/erts/emulator/hipe/hipe_x86_signal.c
+++ b/erts/emulator/hipe/hipe_x86_signal.c
@@ -2,7 +2,7 @@
* %CopyrightBegin%
*
- * Copyright Ericsson AB 2001-2013. All Rights Reserved.
+ * Copyright Ericsson AB 2001-2014. All Rights Reserved.
*
* The contents of this file are subject to the Erlang Public License,
* Version 1.1, (the "License"); you may not use this file except in
@@ -304,7 +304,9 @@ static void hipe_sigaltstack(void *ss_sp)
*/
void hipe_thread_signal_init(void)
{
- hipe_sigaltstack(erts_alloc(ERTS_ALC_T_HIPE, SIGSTKSZ));
+ /* Stack don't really need to be cache aligned.
+ We use it to suppress false leak report from valgrind */
+ hipe_sigaltstack(erts_alloc_permanent_cache_aligned(ERTS_ALC_T_HIPE, SIGSTKSZ));
}
#endif
diff --git a/erts/emulator/test/nif_SUITE_data/nif_mod.c b/erts/emulator/test/nif_SUITE_data/nif_mod.c
index 55a0d2ac4f..11b5d0cc35 100644
--- a/erts/emulator/test/nif_SUITE_data/nif_mod.c
+++ b/erts/emulator/test/nif_SUITE_data/nif_mod.c
@@ -217,7 +217,8 @@ static int upgrade(ErlNifEnv* env, void** priv, void** old_priv_data, ERL_NIF_TE
*priv = *old_priv_data;
do_load_info(env, load_info, &retval);
-
+ if (retval)
+ NifModPrivData_release(data);
return retval;
}