diff --git a/result b/result
new file mode 100644
index 0000000..78db428
--- /dev/null
+++ b/result
@@ -0,0 +1,96 @@
+This file contains for corresponding monthly release results. it will alwats help to refer this file and come to know about known failures.
+
+
+ltp-full-20100331 Result pon various Arch:
+
+On x86_64 machine with RHEL5.4(2.6.18-164.el5):
+*****************************************************
+
+Result Log file:
+===============
+eventfd01                      FAIL       4    
+syslog07                       FAIL       1    
+syslog08                       FAIL       1    
+mtest06                        FAIL       255  
+su01                           FAIL       1    
+hugemmap04                     FAIL       2    
+hugeshmat01                    FAIL       6    
+hugeshmat02                    FAIL       6    
+hugeshmat03                    FAIL       2    
+hugeshmctl01                   FAIL       6    
+hugeshmctl02                   FAIL       6    
+hugeshmctl03                   FAIL       2    
+hugeshmdt01                    FAIL       6    
+hugeshmget01                   FAIL       2    
+hugeshmget02                   FAIL       6    
+hugeshmget03                   FAIL       6    
+hugeshmget05                   FAIL       2    
+mail                           FAIL       2    
+
+
+Result Output file:
+==================
+syslog07    1  TFAIL  :  Higher level messages are not logged.
+check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument
+mail_tests::mail02    2  TFAIL  :  Test #2: Mailer-Deamon failed to report delivery failure. Reason:
+mail_tests::mail05    5  TFAIL  :  Test #5: mail failed to carbon copy user mail_test. Reason:
+
+
+On ppc64 machine with RHEL5.4(2.6.18-164.el5):
+*****************************************************
+
+Result Log file:
+===============
+cct01                         FAIL       1    
+eventfd01                      FAIL       4    
+fdatasync02                    FAIL       1    
+syslog07                       FAIL       1    
+syslog08                       FAIL       1    
+mtest06                        FAIL       255  
+mmapstress03                   FAIL       1    
+su01                           FAIL       1    
+cron_deny01                    FAIL       1    
+
+
+Result Output file:
+==================
+acct01      1  TFAIL  :  attempting to assign acct file to device: expected failure but got okay return
+fdatasync02    2  TFAIL  :  Unexpected results for file descriptor to a special file ; returned 0 (expected -1), errno 0 (expected 22)
+syslog07    1  TFAIL  :  Higher level messages are not logged.
+mmapstress03    1  TFAIL  :  Test failed
+check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument
+
+
+
+On s390x machine with RHEL5.4(2.6.18-164.el5):
+*****************************************************
+
+Result Log file:
+===============
+eventfd01                      FAIL       4    
+keyctl01                       FAIL       1    
+rt_sigsuspend01                FAIL       11   
+timer_getoverrun01             FAIL       1    
+timer_gettime01                FAIL       1    
+su01                           FAIL       1    
+cron_allow01                   FAIL       1    
+
+
+
+Result Output file:
+==================
+keyctl01    2  TFAIL  :  KEYCTL_REVOKE got unexpected errno: errno=EINVAL(22): Invalid argument
+timer_getoverrun01    1  TFAIL  :  Block 1: test 0 FAILED... errno = 22 : Invalid argument
+timer_gettime01    1  TFAIL  :  Block 1: test 0 FAILED... errno = 22 : Invalid argument
+check_netns_enabled    1  TFAIL  :  unshare syscall smoke test failed: errno=EINVAL(22): Invalid argument
+
+
+
+On x86_64 machine with SLES11GA(2.6.27.19-5-default):
+*****************************************************
+
+Result Log file:
+===============
+eventfd2_03                    FAIL       1    
+utimensat01                    FAIL       1    
+ftest04                        FAIL       1    
diff --git a/testcases/commands/ade/ar/ar01 b/testcases/commands/ade/ar/ar01
index c90faf9..55363dc 100755
--- a/testcases/commands/ade/ar/ar01
+++ b/testcases/commands/ade/ar/ar01
@@ -519,19 +519,19 @@
 rm -rf $TCtmp/lib.a;cd $TCdat
 ar -cr $TCtmp/lib.a file0.in file2.in 
 crtest
-File1time=`ar -tv $TCtmp/lib.a | grep file0.in | cut -f2 -d: | cut -f1 -d" "`
-File2time=`ar -tv $TCtmp/lib.a | grep file2.in | cut -f2 -d: | cut -f1 -d" "`
+File1time=`ar -tv $TCtmp/lib.a | grep file0.in`
+File2time=`ar -tv $TCtmp/lib.a | grep file2.in`
 
 #sleep 5
 touch -c -t 201503030303.55 file0.in
 
 ar -ru $TCtmp/lib.a file0.in file2.in 2>&1 1>/dev/null
-File1time1=`ar -tv $TCtmp/lib.a | grep file0.in | cut -f2 -d: | cut -f1 -d" "`
-File2time2=`ar -tv $TCtmp/lib.a | grep file2.in | cut -f2 -d: | cut -f1 -d" "`
+File1time1=`ar -tv $TCtmp/lib.a | grep file0.in`
+File2time2=`ar -tv $TCtmp/lib.a | grep file2.in`
 
-if [ $File2time = $File2time2 ]
+if [ "$File2time" = "$File2time2" ]
 then
-	if [ $File1time = $File1time1 ]
+	if [ "$File1time" = "$File1time1" ]
 	then
     		TCRESULT=20
     		echo "FAIL - ar with -u flag failed"
diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
index e67e43c..485b465 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
@@ -127,8 +127,7 @@
 
 	/* Check number of hugepages */
 	if (get_no_of_hugepages() <= 0 || hugepages_size() <= 0)
-		tst_brkm(TBROK, cleanup, "Test cannot be continued owning to \
-				sufficient availability of Hugepages on the system");
+		tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
 
 	/* Perform global setup for test */
 	setup();
diff --git a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c
index b30afef..229b929 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c
@@ -105,7 +105,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
index 431c1e3..2f56127 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
@@ -102,7 +102,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c
index f892799..a106976 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c
@@ -86,7 +86,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c
index baff476..e40123d 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c
@@ -130,7 +130,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c
index 928f76a..e434082 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c
@@ -102,7 +102,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c
index 7d039e6..5a7e02a 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c
@@ -105,7 +105,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c b/testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c
index 7c0cec5..bb5480e 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c
@@ -87,7 +87,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
index 10f29d3..6fa02ab 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c
@@ -82,7 +82,7 @@
 
 	/* The following loop checks looping state if -i option given */
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
         else             
               huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
         
diff --git a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c
index 9066f45..80d3a2b 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c
@@ -84,7 +84,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
   
diff --git a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c
index aa76097..fc78b45 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c
@@ -85,7 +85,7 @@
 
 	/* The following loop checks looping state if -i option given */
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, tst_exit, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
 
diff --git a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c
index de9ab46..bc4bd2c 100644
--- a/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c
+++ b/testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c
@@ -86,7 +86,7 @@
 	}
 
         if ( get_no_of_hugepages() <= 0 || hugepages_size() <= 0 )
-             tst_brkm(TBROK, cleanup, "Test cannot be continued owning to sufficient availability of Hugepages on the system");
+             tst_brkm(TCONF, cleanup, "Not enough available Hugepages");
         else             
              huge_pages_shm_to_be_allocated = ( get_no_of_hugepages() * hugepages_size() * 1024) / 2 ;
        
diff --git a/testcases/kernel/security/cap_bound/cap_bset_inh_bounds.c b/testcases/kernel/security/cap_bound/cap_bset_inh_bounds.c
index c6c34c0..7033a37 100644
--- a/testcases/kernel/security/cap_bound/cap_bset_inh_bounds.c
+++ b/testcases/kernel/security/cap_bound/cap_bset_inh_bounds.c
@@ -39,11 +39,11 @@
 
 int errno;
 
+int main(int argc, char *argv[])
+{
 #if HAVE_SYS_CAPABILITY_H
 #if HAVE_DECL_PR_CAPBSET_READ && HAVE_DECL_PR_CAPBSET_DROP
 #ifdef HAVE_LIBCAP
-int main(int argc, char *argv[])
-{
 	int ret = 1;
 	cap_value_t v[1];
 	cap_flag_value_t f;
diff --git a/testcases/kernel/syscalls/eventfd/eventfd01.c b/testcases/kernel/syscalls/eventfd/eventfd01.c
index 05acc1b..83eb86e 100644
--- a/testcases/kernel/syscalls/eventfd/eventfd01.c
+++ b/testcases/kernel/syscalls/eventfd/eventfd01.c
@@ -729,7 +729,7 @@
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
 	if (tst_kvercmp(2, 6, 22) < 0)
-		tst_brkm(TCONF, cleanup, "2.6.22 or greater kernel required");
+		tst_brkm(TCONF, tst_exit, "2.6.22 or greater kernel required");
 
 	/* Create a temporary directory & chdir there */
 	tst_tmpdir();
