diff --git a/testcases/kernel/fs/fs_perms/fs_perms.c b/testcases/kernel/fs/fs_perms/fs_perms.c
index b174af7..02e7735 100644
--- a/testcases/kernel/fs/fs_perms/fs_perms.c
+++ b/testcases/kernel/fs/fs_perms/fs_perms.c
@@ -220,10 +220,7 @@
 
 	res1 = testfperm(TEST_FILE_NAME1, 0, user_id, group_id, fperm);
 
-	tst_resm((exp_res == res1) && res2 ? TPASS : TFAIL,
-		 "%c a %03o file owned by (%d/%d) as user/group (%d/%d)",
+	tst_brkm((exp_res == res1) && res2 ? TPASS : TFAIL,
+		 tst_rmdir, "%c a %03o file owned by (%d/%d) as user/group (%d/%d)",
 		 fperm[0], fmode, fuser_id, fgroup_id, user_id, group_id);
-
-	tst_rmdir();
-	tst_exit();
 }
diff --git a/testcases/kernel/fs/inode/inode01.c b/testcases/kernel/fs/inode/inode01.c
index b3a9a0b..2db7baf 100644
--- a/testcases/kernel/fs/inode/inode01.c
+++ b/testcases/kernel/fs/inode/inode01.c
@@ -755,9 +755,7 @@
  */
 void fail_exit()
 {
-	tst_resm(TFAIL, "Test failed");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed");
 }
 
 /*
diff --git a/testcases/kernel/fs/inode/inode02.c b/testcases/kernel/fs/inode/inode02.c
index 54e3927..827e2e2 100644
--- a/testcases/kernel/fs/inode/inode02.c
+++ b/testcases/kernel/fs/inode/inode02.c
@@ -848,9 +848,7 @@
  */
 void fail_exit()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
 
 /*
@@ -885,9 +883,7 @@
  */
 void forkfail()
 {
-	tst_resm(TBROK, "Reason: %s\n", strerror(errno));
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TBROK, tst_rmdir, "Reason: %s\n", strerror(errno));
 }
 
 /*
diff --git a/testcases/kernel/fs/stream/stream04.c b/testcases/kernel/fs/stream/stream04.c
index 2a32e79..4c63c1c 100644
--- a/testcases/kernel/fs/stream/stream04.c
+++ b/testcases/kernel/fs/stream/stream04.c
@@ -76,17 +76,14 @@
 	/*--------------------------------------------------------------------*/
 		//block0:
 		if ((stream = fopen(tempfile1, "a+")) == NULL) {
-			tst_resm(TFAIL | TERRNO, "fopen(%s) a+ failed",
+			tst_brkm(TFAIL | TERRNO, tst_rmdir, "fopen(%s) a+ failed",
 				 tempfile1);
-			tst_rmdir();
-			tst_exit();
 		}
 		/* write something and check */
 		if ((ret =
 		     fwrite(junk, sizeof(*junk), strlen(junk), stream)) == 0) {
-			tst_resm(TFAIL, "fwrite failed: %s", strerror(errno));
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TFAIL, tst_rmdir, "fwrite failed: %s",
+				 strerror(errno));
 		}
 
 		if ((size_t) ret != strlen(junk)) {
@@ -98,22 +95,17 @@
 
 		fclose(stream);
 		if ((stream = fopen(tempfile1, "r+")) == NULL) {
-			tst_resm(TFAIL, "fopen(%s) r+ failed: %s", tempfile1,
+			tst_brkm(TFAIL, tst_rmdir, "fopen(%s) r+ failed: %s", tempfile1,
 				 strerror(errno));
-			tst_rmdir();
-			tst_exit();
 		}
 		if ((inbuf = malloc(strlen(junk))) == 0) {
-			tst_resm(TBROK, "test failed because of malloc: %s",
+			tst_brkm(TBROK, tst_rmdir, "test failed because of malloc: %s",
 				 strerror(errno));
-			tst_rmdir();
-			tst_exit();
 		}
 		if ((ret =
 		     fread(inbuf, sizeof(*junk), strlen(junk), stream)) == 0) {
-			tst_resm(TFAIL, "fread failed: %s", strerror(errno));
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TFAIL, tst_rmdir, "fread failed: %s",
+				 strerror(errno));
 		}
 		if ((size_t) ret != strlen(junk)) {
 			tst_resm(TFAIL,
diff --git a/testcases/kernel/mem/mmapstress/mmap-corruption01.c b/testcases/kernel/mem/mmapstress/mmap-corruption01.c
index 432c0d2..928a902 100644
--- a/testcases/kernel/mem/mmapstress/mmap-corruption01.c
+++ b/testcases/kernel/mem/mmapstress/mmap-corruption01.c
@@ -68,9 +68,7 @@
 
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
 
 int main(int argc, char **argv)
diff --git a/testcases/kernel/mem/mmapstress/mmapstress01.c b/testcases/kernel/mem/mmapstress/mmapstress01.c
index 4f222aa..eab4f45 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress01.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress01.c
@@ -734,9 +734,7 @@
 
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed");
 }
 
 /*****  **      **      *****/
diff --git a/testcases/kernel/mem/mmapstress/mmapstress02.c b/testcases/kernel/mem/mmapstress/mmapstress02.c
index 32bb2a9..2c0afc7 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress02.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress02.c
@@ -184,9 +184,7 @@
 
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed");
 }
 
 /*****  **      **      *****/
diff --git a/testcases/kernel/mem/mmapstress/mmapstress04.c b/testcases/kernel/mem/mmapstress/mmapstress04.c
index b9563f4..dba012c 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress04.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress04.c
@@ -285,9 +285,7 @@
 /*****	LTP Port	*****/
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
 
 /*****	**	**	*****/
diff --git a/testcases/kernel/mem/mmapstress/mmapstress05.c b/testcases/kernel/mem/mmapstress/mmapstress05.c
index d4f514c..befcff2 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress05.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress05.c
@@ -212,7 +212,5 @@
 
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
diff --git a/testcases/kernel/mem/mmapstress/mmapstress07.c b/testcases/kernel/mem/mmapstress/mmapstress07.c
index f492985..1153c05 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress07.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress07.c
@@ -314,9 +314,7 @@
 /*****	**	LTP Port	**	*****/
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
 
 void ok_exit()
diff --git a/testcases/kernel/mem/mmapstress/mmapstress10.c b/testcases/kernel/mem/mmapstress/mmapstress10.c
index 534e666..488f8df 100644
--- a/testcases/kernel/mem/mmapstress/mmapstress10.c
+++ b/testcases/kernel/mem/mmapstress/mmapstress10.c
@@ -938,9 +938,7 @@
 
 int anyfail()
 {
-	tst_resm(TFAIL, "Test failed\n");
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TFAIL, tst_rmdir, "Test failed\n");
 }
 
 /*****  **      **      *****/
diff --git a/testcases/kernel/mem/page/page01.c b/testcases/kernel/mem/page/page01.c
index bc95bc5..0b866d5 100644
--- a/testcases/kernel/mem/page/page01.c
+++ b/testcases/kernel/mem/page/page01.c
@@ -255,9 +255,7 @@
  */
 void forkfail()
 {
-	tst_resm(TBROK, "Reason: %s\n", strerror(errno));
-	tst_rmdir();
-	tst_exit();
+	tst_brkm(TBROK, tst_rmdir, "Reason: %s\n", strerror(errno));
 }
 
 /*
diff --git a/testcases/kernel/mem/page/page02.c b/testcases/kernel/mem/page/page02.c
index 1013f1f..6c7f4a7 100644
--- a/testcases/kernel/mem/page/page02.c
+++ b/testcases/kernel/mem/page/page02.c
@@ -117,9 +117,8 @@
 				 "Fork failed (may be OK if under stress)");
 			tst_resm(TINFO, "System resource may be too low.\n");
 			local_flag = PASSED;
-			tst_resm(TBROK, "Reason: %s\n", strerror(errno));
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TBROK, tst_rmdir, "Reason: %s\n",
+				 strerror(errno));
 		} else if (pid == 0) {
 			/********************************/
 			/*                              */
diff --git a/testcases/kernel/mem/vmtests/stack_space.c b/testcases/kernel/mem/vmtests/stack_space.c
index 6ab4472..4844f4e 100644
--- a/testcases/kernel/mem/vmtests/stack_space.c
+++ b/testcases/kernel/mem/vmtests/stack_space.c
@@ -150,9 +150,8 @@
 			tst_resm(TBROK,
 				 "Fork failed (may be OK if under stress)");
 			tst_resm(TINFO, "System resource may be too low.\n");
-			tst_resm(TBROK, "Reason: %s\n", strerror(errno));
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TBROK, tst_rmdir, "Reason: %s\n",
+				 strerror(errno));
 
 		}
 	}
diff --git a/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c b/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
index 9f32375..f044a81 100644
--- a/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
+++ b/testcases/kernel/syscalls/clock_nanosleep2/clock_nanosleep2_01.c
@@ -134,12 +134,10 @@
 				TEST(clock_nanosleep2
 				     (CLOCK_TO_USE, TIMER_ABSTIME, &ts, NULL));
 				if (TEST_ERRNO) {
-					tst_resm(TFAIL,
-						 "%s failed - errno = %d : %s",
+					tst_brkm(TFAIL,
+						 cleanup, "%s failed - errno = %d : %s",
 						 TCID, TEST_ERRNO,
 						 strerror(TEST_ERRNO));
-					cleanup();
-					tst_exit();
 				}
 				tst_resm(TINFO, "Iteration = %i", i);
 			}
diff --git a/testcases/kernel/syscalls/ftruncate/ftruncate03.c b/testcases/kernel/syscalls/ftruncate/ftruncate03.c
index daeea89..9f6e93f 100644
--- a/testcases/kernel/syscalls/ftruncate/ftruncate03.c
+++ b/testcases/kernel/syscalls/ftruncate/ftruncate03.c
@@ -110,9 +110,8 @@
 	errno = 0;
 	wjh_f = open(TESTFILE, O_RDWR | O_CREAT, 0644);
 	if (wjh_f == -1) {
-		tst_resm(TFAIL | TERRNO, "open(%s) failed", TESTFILE);
-		tst_rmdir();
-		tst_exit();
+		tst_brkm(TFAIL | TERRNO, tst_rmdir, "open(%s) failed",
+			 TESTFILE);
 	}
 	while (count < strlen(str)) {
 		if ((count += write(wjh_f, str, strlen(str))) == -1) {
@@ -135,9 +134,8 @@
 
 	wjh_f = open(TESTFILE, flag);
 	if (wjh_f == -1) {
-		tst_resm(TFAIL | TERRNO, "open(%s) failed", TESTFILE);
-		tst_rmdir();
-		tst_exit();
+		tst_brkm(TFAIL | TERRNO, tst_rmdir, "open(%s) failed",
+			 TESTFILE);
 	}
 	wjh_ret = ftruncate(wjh_f, trunc_size);
 #ifdef DEBUG
diff --git a/testcases/kernel/syscalls/ftruncate/ftruncate04.c b/testcases/kernel/syscalls/ftruncate/ftruncate04.c
index 45522e6..72e279f 100644
--- a/testcases/kernel/syscalls/ftruncate/ftruncate04.c
+++ b/testcases/kernel/syscalls/ftruncate/ftruncate04.c
@@ -299,16 +299,12 @@
 	local_flag = PASSED;
 	tst_tmpdir();
 	if (statvfs(".", &fs) == -1) {
-		tst_resm(TFAIL | TERRNO, "statvfs failed");
-		tst_rmdir();
-		tst_exit();
+		tst_brkm(TFAIL | TERRNO, tst_rmdir, "statvfs failed");
 	}
 	if ((fs.f_flag & MS_MANDLOCK) == 0) {
-		tst_resm(TCONF,
-			 "The filesystem where /tmp is mounted does"
+		tst_brkm(TCONF,
+			 tst_rmdir, "The filesystem where /tmp is mounted does"
 			 " not support mandatory locks. Cannot run this test.");
-		tst_rmdir();
-		tst_exit();
 
 	}
 	for (lc = 0; TEST_LOOPING(lc); lc++) {
@@ -322,19 +318,16 @@
 		act.sa_mask = set;
 		act.sa_flags = 0;
 		if (sigaction(SIGUSR1, &act, 0)) {
-			tst_resm(TBROK, "Sigaction for SIGUSR1 failed");
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TBROK, tst_rmdir,
+				 "Sigaction for SIGUSR1 failed");
 		}		/* end if */
 		if (sigaddset(&set, SIGUSR1)) {
-			tst_resm(TBROK, "sigaddset for SIGUSR1 failed");
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TBROK, tst_rmdir,
+				 "sigaddset for SIGUSR1 failed");
 		}
 		if (sigprocmask(SIG_SETMASK, &set, 0)) {
-			tst_resm(TBROK, "sigprocmask for SIGUSR1 failed");
-			tst_rmdir();
-			tst_exit();
+			tst_brkm(TBROK, tst_rmdir,
+				 "sigprocmask for SIGUSR1 failed");
 		}
 		for (i = 0; i < iterations; i++) {
 			sprintf(filename, "%s.%d.%d\n", progname, ppid, i);
@@ -380,10 +373,9 @@
 				tst_resm(TINFO,
 					 "System resource may be too low, fork() malloc()"
 					 " etc are likely to fail.");
-				tst_resm(TBROK,
+				tst_brkm(TBROK,
+					 tst_rmdir,
 					 "Test broken due to inability of fork.");
-				tst_rmdir();
-				tst_exit();
 			}
 
 			if (cpid == 0) {
@@ -392,9 +384,8 @@
 				    (av[0], "dddd", filename, recstart, reclen,
 				     ppid) < -1) {
 					unlink(filename);
-					tst_resm(TBROK, "self_exec failed.");
-					tst_rmdir();
-					tst_exit();
+					tst_brkm(TBROK, tst_rmdir,
+						 "self_exec failed.");
 				}
 #else
 				dochild();
diff --git a/testcases/kernel/syscalls/newuname/newuname01.c b/testcases/kernel/syscalls/newuname/newuname01.c
index 2a11411..a3dbb93 100644
--- a/testcases/kernel/syscalls/newuname/newuname01.c
+++ b/testcases/kernel/syscalls/newuname/newuname01.c
@@ -122,11 +122,9 @@
 		for (testno = 0; testno < TST_TOTAL; ++testno) {
 			TEST(ltp_syscall(__NR_uname, &name));
 			if (TEST_RETURN == -1) {
-				tst_resm(TFAIL, "%s failed - errno = %d : %s",
+				tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s",
 					 TCID, TEST_ERRNO,
 					 strerror(TEST_ERRNO));
-				cleanup();
-				tst_exit();
 			} else {
 				tst_resm(TPASS,
 					 "newuname call succeed: return value = %ld ",
diff --git a/testcases/kernel/syscalls/pipe2/pipe2_01.c b/testcases/kernel/syscalls/pipe2/pipe2_01.c
index d4cc766..261f348 100644
--- a/testcases/kernel/syscalls/pipe2/pipe2_01.c
+++ b/testcases/kernel/syscalls/pipe2/pipe2_01.c
@@ -149,9 +149,7 @@
 		tst_count = 0;
 		for (testno = 0; testno < TST_TOTAL; ++testno) {
 			if (ltp_syscall(__NR_pipe2, fd, 0) != 0) {
-				tst_resm(TFAIL, "pipe2(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup, "pipe2(0) failed");
 			}
 			for (i = 0; i < 2; ++i) {
 				coe = fcntl(fd[i], F_GETFD);
@@ -160,20 +158,17 @@
 						 "fcntl failed");
 				}
 				if (coe & FD_CLOEXEC) {
-					tst_resm(TFAIL,
-						 "pipe2(0) set close-on-exit for fd[%d]",
+					tst_brkm(TFAIL,
+						 cleanup, "pipe2(0) set close-on-exit for fd[%d]",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 			}
 			close(fd[0]);
 			close(fd[1]);
 
 			if (ltp_syscall(__NR_pipe2, fd, O_CLOEXEC) != 0) {
-				tst_resm(TFAIL, "pipe2(O_CLOEXEC) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "pipe2(O_CLOEXEC) failed");
 			}
 			for (i = 0; i < 2; ++i) {
 				coe = fcntl(fd[i], F_GETFD);
@@ -182,11 +177,9 @@
 						 "fcntl failed");
 				}
 				if ((coe & FD_CLOEXEC) == 0) {
-					tst_resm(TFAIL,
-						 "pipe2(O_CLOEXEC) does not set close-on-exit for fd[%d]",
+					tst_brkm(TFAIL,
+						 cleanup, "pipe2(O_CLOEXEC) does not set close-on-exit for fd[%d]",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 			}
 			close(fd[0]);
diff --git a/testcases/kernel/syscalls/pipe2/pipe2_02.c b/testcases/kernel/syscalls/pipe2/pipe2_02.c
index 09ac043..910fc00 100644
--- a/testcases/kernel/syscalls/pipe2/pipe2_02.c
+++ b/testcases/kernel/syscalls/pipe2/pipe2_02.c
@@ -140,9 +140,7 @@
 		tst_count = 0;
 		for (testno = 0; testno < TST_TOTAL; ++testno) {
 			if (ltp_syscall(__NR_pipe2, fds, 0) == -1) {
-				tst_resm(TFAIL, "pipe2(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup, "pipe2(0) failed");
 			}
 			for (i = 0; i < 2; ++i) {
 				fl = fcntl(fds[i], F_GETFL);
@@ -151,19 +149,16 @@
 						 "fcntl failed");
 				}
 				if (fl & O_NONBLOCK) {
-					tst_resm(TFAIL,
-						 "pipe2(0) set non-blocking mode for fds[%d]",
+					tst_brkm(TFAIL,
+						 cleanup, "pipe2(0) set non-blocking mode for fds[%d]",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 				close(fds[i]);
 			}
 
 			if (ltp_syscall(__NR_pipe2, fds, O_NONBLOCK) == -1) {
-				tst_resm(TFAIL, "pipe2(O_NONBLOCK) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "pipe2(O_NONBLOCK) failed");
 			}
 			for (i = 0; i < 2; ++i) {
 				fl = fcntl(fds[i], F_GETFL);
@@ -172,11 +167,9 @@
 						 "fcntl failed");
 				}
 				if ((fl & O_NONBLOCK) == 0) {
-					tst_resm(TFAIL,
-						 "pipe2(O_NONBLOCK) does not set non-blocking mode for fds[%d]\n",
+					tst_brkm(TFAIL,
+						 cleanup, "pipe2(O_NONBLOCK) does not set non-blocking mode for fds[%d]\n",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 				close(fds[i]);
 			}
diff --git a/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c b/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
index b28923d..be23dbc 100644
--- a/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
+++ b/testcases/kernel/syscalls/set_tid_address/set_tid_address01.c
@@ -123,11 +123,9 @@
 					 "set_tid_address call succeeded:  as expected %ld",
 					 TEST_RETURN);
 			} else {
-				tst_resm(TFAIL, "%s failed - errno = %d : %s",
+				tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s",
 					 TCID, TEST_ERRNO,
 					 strerror(TEST_ERRNO));
-				cleanup();
-				tst_exit();
 			}
 		}
 	}
diff --git a/testcases/kernel/syscalls/signalfd4/signalfd4_01.c b/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
index 75b0e4e..4f65ce4 100644
--- a/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
+++ b/testcases/kernel/syscalls/signalfd4/signalfd4_01.c
@@ -151,39 +151,35 @@
 			fd = ltp_syscall(__NR_signalfd4, -1, &ss,
 				SIGSETSIZE, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "signalfd4(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "signalfd4(0) failed");
 			}
 			coe = fcntl(fd, F_GETFD);
 			if (coe == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (coe & FD_CLOEXEC) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(0) set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = ltp_syscall(__NR_signalfd4, -1, &ss, SIGSETSIZE,
 				     SFD_CLOEXEC);
 			if (fd == -1) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(SFD_CLOEXEC) failed");
-				cleanup();
-				tst_exit();
 			}
 			coe = fcntl(fd, F_GETFD);
 			if (coe == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((coe & FD_CLOEXEC) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(SFD_CLOEXEC) does not set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 			tst_resm(TPASS, "signalfd4(SFD_CLOEXEC) Passed");
diff --git a/testcases/kernel/syscalls/signalfd4/signalfd4_02.c b/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
index 2347338..44d2595 100644
--- a/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
+++ b/testcases/kernel/syscalls/signalfd4/signalfd4_02.c
@@ -146,39 +146,35 @@
 			fd = ltp_syscall(__NR_signalfd4, -1, &ss,
 				SIGSETSIZE, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "signalfd4(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "signalfd4(0) failed");
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (fl & O_NONBLOCK) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(0) set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = ltp_syscall(__NR_signalfd4, -1, &ss, SIGSETSIZE,
 				     SFD_NONBLOCK);
 			if (fd == -1) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(SFD_NONBLOCK) failed");
-				cleanup();
-				tst_exit();
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((fl & O_NONBLOCK) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "signalfd4(SFD_NONBLOCK) does not set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 			tst_resm(TPASS, "signalfd4(SFD_NONBLOCK) PASSED");
diff --git a/testcases/kernel/syscalls/socket/socket02.c b/testcases/kernel/syscalls/socket/socket02.c
index 1149691..470ae64 100644
--- a/testcases/kernel/syscalls/socket/socket02.c
+++ b/testcases/kernel/syscalls/socket/socket02.c
@@ -158,28 +158,25 @@
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (coe & FD_CLOEXEC) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "socket(0) set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = socket(PF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "socket(SOCK_CLOEXEC) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "socket(SOCK_CLOEXEC) failed");
 			}
 			coe = fcntl(fd, F_GETFD);
 			if (coe == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((coe & FD_CLOEXEC) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "socket(SOCK_CLOEXEC) does not set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
@@ -194,11 +191,9 @@
 						 "fcntl failed");
 				}
 				if (coe & FD_CLOEXEC) {
-					tst_resm(TFAIL,
-						 "socketpair(0) set close-on-exec flag for fds[%d]\n",
+					tst_brkm(TFAIL,
+						 cleanup, "socketpair(0) set close-on-exec flag for fds[%d]\n",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 				close(fds[i]);
 			}
@@ -216,11 +211,9 @@
 						 "fcntl failed");
 				}
 				if ((coe & FD_CLOEXEC) == 0) {
-					tst_resm(TFAIL,
-						 "socketpair(SOCK_CLOEXEC) does not set close-on-exec flag for fds[%d]\n",
+					tst_brkm(TFAIL,
+						 cleanup, "socketpair(SOCK_CLOEXEC) does not set close-on-exec flag for fds[%d]\n",
 						 i);
-					cleanup();
-					tst_exit();
 				}
 				close(fds[i]);
 			}
diff --git a/testcases/kernel/syscalls/socket/socket03.c b/testcases/kernel/syscalls/socket/socket03.c
index fe96a6b..987e658 100644
--- a/testcases/kernel/syscalls/socket/socket03.c
+++ b/testcases/kernel/syscalls/socket/socket03.c
@@ -138,37 +138,32 @@
 		for (testno = 0; testno < TST_TOTAL; ++testno) {
 			fd = socket(PF_INET, SOCK_STREAM, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "socket(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup, "socket(0) failed");
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (fl & O_NONBLOCK) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "socket(0) set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = socket(PF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "socket(SOCK_NONBLOCK) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "socket(SOCK_NONBLOCK) failed");
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((fl & O_NONBLOCK) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "socket(SOCK_NONBLOCK) does not set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 			tst_resm(TPASS, "socket(SOCK_NONBLOCK) PASSED");
diff --git a/testcases/kernel/syscalls/ssetmask/ssetmask01.c b/testcases/kernel/syscalls/ssetmask/ssetmask01.c
index bb32448..ca5040d 100644
--- a/testcases/kernel/syscalls/ssetmask/ssetmask01.c
+++ b/testcases/kernel/syscalls/ssetmask/ssetmask01.c
@@ -120,15 +120,13 @@
 			ltp_syscall(__NR_ssetmask, SIGALRM);
 			TEST(ltp_syscall(__NR_sgetmask));
 			if (TEST_RETURN != SIGALRM) {
-				tst_resm(TFAIL | TTERRNO, "sgetmask() failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL | TTERRNO, cleanup,
+					 "sgetmask() failed");
 			}
 			TEST(ltp_syscall(__NR_ssetmask, SIGUSR1));
 			if (TEST_RETURN != SIGALRM) {
-				tst_resm(TFAIL | TTERRNO, "ssetmask() failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL | TTERRNO, cleanup,
+					 "ssetmask() failed");
 			}
 			tst_resm(TPASS, "Got SIGALRM--Test PASS ");
 		}
diff --git a/testcases/kernel/syscalls/timerfd/timerfd02.c b/testcases/kernel/syscalls/timerfd/timerfd02.c
index b09a424..d37fccf 100644
--- a/testcases/kernel/syscalls/timerfd/timerfd02.c
+++ b/testcases/kernel/syscalls/timerfd/timerfd02.c
@@ -147,39 +147,35 @@
 			fd = ltp_syscall(__NR_timerfd_create,
 				CLOCK_REALTIME, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "timerfd_create(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "timerfd_create(0) failed");
 			}
 			coe = fcntl(fd, F_GETFD);
 			if (coe == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (coe & FD_CLOEXEC) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(0) set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = ltp_syscall(__NR_timerfd_create, CLOCK_REALTIME,
 				     TFD_CLOEXEC);
 			if (fd == -1) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(TFD_CLOEXEC) failed");
-				cleanup();
-				tst_exit();
 			}
 			coe = fcntl(fd, F_GETFD);
 			if (coe == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((coe & FD_CLOEXEC) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(TFD_CLOEXEC) set close-on-exec flag");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 			tst_resm(TPASS, "timerfd_create(TFD_CLOEXEC) Passed");
diff --git a/testcases/kernel/syscalls/timerfd/timerfd03.c b/testcases/kernel/syscalls/timerfd/timerfd03.c
index 3960d50..5a64580 100644
--- a/testcases/kernel/syscalls/timerfd/timerfd03.c
+++ b/testcases/kernel/syscalls/timerfd/timerfd03.c
@@ -143,39 +143,35 @@
 			fd = ltp_syscall(__NR_timerfd_create,
 				CLOCK_REALTIME, 0);
 			if (fd == -1) {
-				tst_resm(TFAIL, "timerfd_create(0) failed");
-				cleanup();
-				tst_exit();
+				tst_brkm(TFAIL, cleanup,
+					 "timerfd_create(0) failed");
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if (fl & O_NONBLOCK) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(0) set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 
 			fd = ltp_syscall(__NR_timerfd_create, CLOCK_REALTIME,
 				     TFD_NONBLOCK);
 			if (fd == -1) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(TFD_NONBLOCK) failed");
-				cleanup();
-				tst_exit();
 			}
 			fl = fcntl(fd, F_GETFL);
 			if (fl == -1) {
 				tst_brkm(TBROK, cleanup, "fcntl failed");
 			}
 			if ((fl & O_NONBLOCK) == 0) {
-				tst_resm(TFAIL,
+				tst_brkm(TFAIL,
+					 cleanup,
 					 "timerfd_create(TFD_NONBLOCK) set non-blocking mode");
-				cleanup();
-				tst_exit();
 			}
 			close(fd);
 			tst_resm(TPASS, "timerfd_create(TFD_NONBLOCK) PASSED");
diff --git a/testcases/kernel/syscalls/writev/writev04.c b/testcases/kernel/syscalls/writev/writev04.c
index 588dfc9..a1aeff9 100644
--- a/testcases/kernel/syscalls/writev/writev04.c
+++ b/testcases/kernel/syscalls/writev/writev04.c
@@ -151,10 +151,8 @@
 		}
 
 		if ((fd[0] = open(f_name, O_RDWR, 0666)) < 0) {
-			tst_resm(TFAIL, "open failed: fname = %s, errno = %d",
+			tst_brkm(TFAIL, cleanup, "open failed: fname = %s, errno = %d",
 				 f_name, errno);
-			cleanup();
-			tst_exit();
 		}
 //block1:
 		tst_resm(TINFO, "Enter block 1");
