[LTP] [PATCH v3] madvise11.c:Check loadable module before rmmod
Cyril Hrubis
chrubis@suse.cz
Mon Mar 13 10:19:39 CET 2023
Hi!
> /* Find and open the <debugfs>/hwpoison/unpoison-pfn special file */
> static int open_unpoison_pfn(void)
> {
> @@ -300,7 +324,7 @@ static int open_unpoison_pfn(void)
> struct mntent *mnt;
> FILE *mntf;
>
> - if (!find_in_file("/proc/modules", HW_MODULE))
> + if (!find_in_file("/proc/modules", HW_MODULE) && !is_builtin(HW_MODULE))
> hwpoison_probe = 1;
That does not solve the problem completely though, if we have a kernel
where the hwpoinson_inject is set to N in config the test will attempt
to rmmod it and get different error.
I suppose that the easiest solution would be:
diff --git a/testcases/kernel/syscalls/madvise/madvise11.c b/testcases/kernel/syscalls/madvise/madvise11.c
index 7e291d571..7c0bef157 100644
--- a/testcases/kernel/syscalls/madvise/madvise11.c
+++ b/testcases/kernel/syscalls/madvise/madvise11.c
@@ -300,12 +300,12 @@ static int open_unpoison_pfn(void)
struct mntent *mnt;
FILE *mntf;
- if (!find_in_file("/proc/modules", HW_MODULE))
- hwpoison_probe = 1;
-
/* probe hwpoison only if it isn't already there */
- if (hwpoison_probe)
+ if (!find_in_file("/proc/modules", HW_MODULE)) {
SAFE_CMD(cmd_modprobe, NULL, NULL);
+ if (find_in_file("/proc/modules", HW_MODULE))
+ hwpoison_probe = 1;
+ }
/* debugfs mount point */
mntf = setmntent("/etc/mtab", "r");
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list