2005-12-15 07:25:15

by Akinobu Mita

[permalink] [raw]
Subject: [PATCH] mark TAINT_FORCED_RMMOD correctly


Currently TAINT_FORCED_RMMOD is totally unused.
Because it is marked as TAINT_FORCED_MODULE instead when user
forced a module unload.
This patch marks it correctly

Signed-off-by: Akinobu Mita <[email protected]>

--- 2.6-rc/kernel/module.c.orig 2005-12-15 15:38:49.000000000 +0900
+++ 2.6-rc/kernel/module.c 2005-12-15 15:41:48.000000000 +0900
@@ -496,15 +496,15 @@ static void module_unload_free(struct mo
}

#ifdef CONFIG_MODULE_FORCE_UNLOAD
-static inline int try_force(unsigned int flags)
+static inline int try_force_unload(unsigned int flags)
{
int ret = (flags & O_TRUNC);
if (ret)
- add_taint(TAINT_FORCED_MODULE);
+ add_taint(TAINT_FORCED_RMMOD);
return ret;
}
#else
-static inline int try_force(unsigned int flags)
+static inline int try_force_unload(unsigned int flags)
{
return 0;
}
@@ -524,7 +524,7 @@ static int __try_stop_module(void *_sref

/* If it's not unused, quit unless we are told to block. */
if ((sref->flags & O_NONBLOCK) && module_refcount(sref->mod) != 0) {
- if (!(*sref->forced = try_force(sref->flags)))
+ if (!(*sref->forced = try_force_unload(sref->flags)))
return -EWOULDBLOCK;
}

@@ -609,7 +609,7 @@ sys_delete_module(const char __user *nam
/* If it has an init func, it must have an exit func to unload */
if ((mod->init != NULL && mod->exit == NULL)
|| mod->unsafe) {
- forced = try_force(flags);
+ forced = try_force_unload(flags);
if (!forced) {
/* This module can't be removed */
ret = -EBUSY;