diff --git a/testcases/kernel/syscalls/fallocate/fallocate01.c b/testcases/kernel/syscalls/fallocate/fallocate01.c
index 096cfc6..c3acb2e 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate01.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate01.c
@@ -105,13 +105,6 @@
 
 #define BLOCKS_WRITTEN 12
 
-#ifndef __NR_fallocate
-#	define __NR_fallocate -1	//Dummy Value
-int arch_support = 0;		/* Architecure is not supported */
-#else
-int arch_support = 1;		/* Architecture is supported */
-#endif
-
 /* Local Function */
 static inline long fallocate();
 void get_blocksize(int);
@@ -235,16 +228,6 @@
 	if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)NULL)
 		tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
 
-	/* This test needs kernel version > 2.6.23 and
-	 * either of x86, x86_64 or ppc architecture
-	 */
-	if (!arch_support || (tst_kvercmp(2, 6, 23) < 0)) {
-		tst_resm(TCONF,
-			 " System doesn't support execution of the test");
-
-		exit(0);
-	}
-
 	/* perform global test setup, call setup() function. */
 	setup();
 
@@ -309,7 +292,7 @@
 	TEST(fallocate(fd, mode, offset, len));
 	/* check return code */
 	if (TEST_RETURN != 0) {
-		if (TEST_ERRNO == EOPNOTSUPP) {
+		if (TEST_ERRNO == EOPNOTSUPP || TEST_ERRNO == ENOSYS) {
 			tst_brkm(TCONF, cleanup,
 				 "fallocate system call is not implemented");
 		}
diff --git a/testcases/kernel/syscalls/fallocate/fallocate02.c b/testcases/kernel/syscalls/fallocate/fallocate02.c
index 2d91f9f..05939a8 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate02.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate02.c
@@ -107,13 +107,6 @@
 #define DEFAULT_TEST_MODE 1	//FALLOC_FL_KEEP_SIZE MODE
 #endif
 
-#ifndef __NR_fallocate
-#	define __NR_fallocate -1	//DUMMY VALUE
-int arch_support = 0;
-#else
-int arch_support = 1;
-#endif
-
 #define OFFSET 12
 
 /*Local Functions*/
@@ -284,15 +277,6 @@
 	if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)NULL)
 		tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
 
-	/* This test needs kernel version > 2.6.23 and
-	 * either of x86, x86_64 or ppc architecture
-	 */
-	if (!arch_support || (tst_kvercmp(2, 6, 23) < 0)) {
-		tst_resm(TCONF,
-			 " System doesn't support execution of the test");
-		exit(0);
-	}
-
 	/* perform global test setup, call setup() function. */
 	setup();
 
@@ -317,7 +301,7 @@
 			      test_data[test_index].len * block_size));
 			/* check return code */
 			if (TEST_ERRNO != test_data[test_index].error) {
-				if (TEST_ERRNO == EOPNOTSUPP) {
+				if (TEST_ERRNO == EOPNOTSUPP || TEST_ERRNO == ENOSYS) {
 					tst_brkm(TCONF, cleanup,
 						 "fallocate system call is not implemented");
 				}
diff --git a/testcases/kernel/syscalls/fallocate/fallocate03.c b/testcases/kernel/syscalls/fallocate/fallocate03.c
index 42f7479..0645cdc 100644
--- a/testcases/kernel/syscalls/fallocate/fallocate03.c
+++ b/testcases/kernel/syscalls/fallocate/fallocate03.c
@@ -104,13 +104,6 @@
 #define FALLOC_FL_KEEP_SIZE 1	//Need to be removed once the glibce support is provided
 #define TRUE 0
 
-#ifndef __NR_fallocate
-#	define __NR_fallocate -1	//DUMMY VALUE
-int arch_support = 0;
-#else
-int arch_support = 1;
-#endif
-
 /*Local Functions*/
 static inline long fallocate();
 void get_blocksize(int);
@@ -270,14 +263,6 @@
 	if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)NULL)
 		tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
 
-	/* This test needs kernel version > 2.6.23 and
-	 * either of x86, x86_64 or ppc architecture
-	 */
-	if (!arch_support || (tst_kvercmp(2, 6, 23) < 0)) {
-		tst_resm(TCONF, " System doesn't support execution of the test");
-		exit(0);
-	}
-
 	/* perform global test setup, call setup() function */
 	setup();
 
@@ -292,7 +277,7 @@
 
 			/* check return code */
 			if (TEST_RETURN != test_data[test_index].error) {
-				if (TEST_ERRNO == EOPNOTSUPP) {
+				if (TEST_ERRNO == EOPNOTSUPP || TEST_ERRNO == ENOSYS) {
 					tst_resm(TCONF,
 						 "fallocate system call is not implemented");
 					cleanup();	/* calls tst_exit */
