summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/ChangeLog5
-rw-r--r--runtime/autoconf-procfs-owner.c8
-rw-r--r--runtime/procfs.c6
3 files changed, 18 insertions, 1 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index 81a78c4b..5cdcec81 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-06 Frank Ch. Eigler <fche@elastic.org>
+
+ * autoconf-procfs-owner.c: New test.
+ * procfs.c (_stp_mkdir_proc_module, _stp_create_procfs): Use it.
+
2009-02-05 Frank Ch. Eigler <fche@elastic.org>
PR 9740/9816?
diff --git a/runtime/autoconf-procfs-owner.c b/runtime/autoconf-procfs-owner.c
new file mode 100644
index 00000000..d64bf5e8
--- /dev/null
+++ b/runtime/autoconf-procfs-owner.c
@@ -0,0 +1,8 @@
+#include <linux/proc_fs.h>
+
+/* kernel commit 4d38a69c6 */
+
+void bar (void) {
+ struct proc_dir_entry foo;
+ foo.owner = (void*) 0;
+}
diff --git a/runtime/procfs.c b/runtime/procfs.c
index 98d0af98..4011ebfc 100644
--- a/runtime/procfs.c
+++ b/runtime/procfs.c
@@ -1,7 +1,7 @@
/* -*- linux-c -*-
*
* /proc command channels
- * Copyright (C) 2007 Red Hat Inc.
+ * Copyright (C) 2007-2009 Red Hat Inc.
*
* This file is part of systemtap, and is free software. You can
* redistribute it and/or modify it under the terms of the GNU General
@@ -105,8 +105,10 @@ static int _stp_mkdir_proc_module(void)
}
_stp_proc_root = proc_mkdir(THIS_MODULE->name, _stp_proc_stap);
+#ifdef AUTOCONF_PROCFS_OWNER
if (_stp_proc_root != NULL)
_stp_proc_root->owner = THIS_MODULE;
+#endif
_stp_unlock_debugfs();
}
@@ -161,7 +163,9 @@ static int _stp_create_procfs(const char *path, int num)
goto err;
}
_stp_pde[_stp_num_pde++] = last_dir;
+#ifdef AUTOCONF_PROCFS_OWNER
last_dir->owner = THIS_MODULE;
+#endif
last_dir->uid = _stp_uid;
last_dir->gid = _stp_gid;
} else {