Hi Jan, ----- Original Message ----- > > > > > ----- Original Message ----- > > From: "Li Wang" <liw...@redhat.com> > > To: ltp-list@lists.sourceforge.net > > Sent: Friday, 24 July, 2015 9:22:00 AM > > Subject: [LTP] [PATCH] syscalls/sysfs: replace the TWARN to TCONF > > > > I run some of these cases on aarch64 today and get a series waring, that's > > because > > sysfs syscall is not implemented on aarch64. So, maybe TCONF is better than > > TWARN > > in the testcase. > > Are you sure it's not supported? Or is it just disabled in your kernel > config? > I'm looking at Kconfig and nothing suggests you can't use it on aarch64:
Hmm, to be precise, it has supported sysfs_syscall but not define '__NR_sysfs' on aarch64. My system config: # grep -i sysfs_syscall /boot/config-4.1.0-0.12.el7.aarch64 CONFIG_SYSFS_SYSCALL=y # grep -i EXPERT /boot/config-4.1.0-0.12.el7.aarch64 CONFIG_EXPERT is not set (1)----> If I change the code as: diff --git a/testcases/kernel/syscalls/sysfs/sysfs01.c b/testcases/kernel/syscalls/sysfs/sysfs01.c index 11ebe43..770c9c9 100644 --- a/testcases/kernel/syscalls/sysfs/sysfs01.c +++ b/testcases/kernel/syscalls/sysfs/sysfs01.c @@ -67,6 +67,7 @@ ******************************************************************************/ #include "test.h" +#include "linux_syscall_numbers.h" #include <errno.h> #include <unistd.h> #include <syscall.h> @@ -85,14 +86,12 @@ int main(int ac, char **av) setup(); -#ifdef __NR_sysfs - for (lc = 0; TEST_LOOPING(lc); lc++) { tst_count = 0; /* option 1, buf holds fs name */ - TEST(syscall(__NR_sysfs, 1, "proc")); + TEST(ltp_syscall(__NR_sysfs, 1, "proc")); /* check return code */ if (TEST_RETURN == -1) { @@ -102,10 +101,6 @@ int main(int ac, char **av) tst_resm(TPASS, "sysfs(2) Passed for " "option 1"); } } /*End of TEST_LOOPING */ -#else - tst_resm(TWARN, - "This test can only run on kernels that support the sysfs system call"); -#endif /*Clean up and exit */ cleanup(); It's show: # ./sysfs01 sysfs01 1 TCONF : sysfs01.c:94: syscall __NR_sysfs not supported on your arch sysfs01 2 TCONF : sysfs01.c:94: Remaining cases not appropriate for configuration (2)----> then I add the macro to "linux_syscall_numbers.h" by manual: # grep -e __aarch64 -e __NR_sysfs linux_syscall_numbers.h -A 2 -B 2 #ifdef __aarch64__ ... # ifndef __NR_sysfs # define __NR_sysfs 135 # endif It's failed as: # ./sysfs01 sysfs01 1 TFAIL : sysfs01.c:99: sysfs(2) Failed for option 1 and set errno to 22 > > config SYSFS_SYSCALL > bool "Sysfs syscall support" if EXPERT > default y > ---help--- > sys_sysfs is an obsolete system call no longer supported in libc. > Note that disabling this option is more secure but might break > compatibility with some systems. > > If unsure say Y here. > > We have "linux_syscall_numbers.h", if you include that and use > ltp_syscall() instead of syscall() you can remove the #ifdef, > as it should TCONF at runtime (in case kernel gives you ENOSYS) Yes, It's a better way. But I'm still not sure if it is good enough to format a patchV2, like (1) or (1)+(2)? or any others? Thanks! Best, Li Wang > > Regards, > Jan > > > > > Signed-off-by: Li Wang <liw...@redhat.com> > > --- > > testcases/kernel/syscalls/sysfs/sysfs01.c | 2 +- > > testcases/kernel/syscalls/sysfs/sysfs02.c | 2 +- > > testcases/kernel/syscalls/sysfs/sysfs03.c | 2 +- > > testcases/kernel/syscalls/sysfs/sysfs04.c | 2 +- > > testcases/kernel/syscalls/sysfs/sysfs05.c | 2 +- > > testcases/kernel/syscalls/sysfs/sysfs06.c | 2 +- > > 6 files changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs01.c > > b/testcases/kernel/syscalls/sysfs/sysfs01.c > > index 11ebe43..c29f6c0 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs01.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs01.c > > @@ -103,7 +103,7 @@ int main(int ac, char **av) > > } > > } /*End of TEST_LOOPING */ > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs02.c > > b/testcases/kernel/syscalls/sysfs/sysfs02.c > > index f7cb96a..54557cc 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs02.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs02.c > > @@ -103,7 +103,7 @@ int main(int ac, char **av) > > } > > } /*End of TEST_LOOPING */ > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs03.c > > b/testcases/kernel/syscalls/sysfs/sysfs03.c > > index 59b997e..9048dfe 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs03.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs03.c > > @@ -101,7 +101,7 @@ int main(int ac, char **av) > > } > > } /*End of TEST_LOOPING */ > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs04.c > > b/testcases/kernel/syscalls/sysfs/sysfs04.c > > index f4fda36..2b2530a 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs04.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs04.c > > @@ -105,7 +105,7 @@ int main(int ac, char **av) > > } > > } > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs05.c > > b/testcases/kernel/syscalls/sysfs/sysfs05.c > > index e97f0c8..2ab6707 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs05.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs05.c > > @@ -129,7 +129,7 @@ int main(int ac, char **av) > > } /*End of TEST LOOPS */ > > } > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > diff --git a/testcases/kernel/syscalls/sysfs/sysfs06.c > > b/testcases/kernel/syscalls/sysfs/sysfs06.c > > index 121e944..7ef5ee2 100644 > > --- a/testcases/kernel/syscalls/sysfs/sysfs06.c > > +++ b/testcases/kernel/syscalls/sysfs/sysfs06.c > > @@ -132,7 +132,7 @@ int main(int ac, char **av) > > } /*End of TEST LOOPS */ > > } > > #else > > - tst_resm(TWARN, > > + tst_resm(TCONF, > > "This test can only run on kernels that support the sysfs > > system > > call"); > > #endif > > > > -- > > 1.8.3.1 > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Ltp-list mailing list > > Ltp-list@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/ltp-list > > > ------------------------------------------------------------------------------ _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list