If xpc.ko and gru.ko are both statically linked into the kernel, then
xpc_init() can get called before gru_init() and make a call to one of the
gru's exported functions before the gru has initialized itself. The end
result is a NULL dereference.
Signed-off-by: Dean Nelson <[email protected]>
---
drivers/misc/sgi-gru/grufile.c | 4 ++++
1 file changed, 4 insertions(+)
Index: linux/drivers/misc/sgi-gru/grufile.c
===================================================================
--- linux.orig/drivers/misc/sgi-gru/grufile.c 2008-11-21 11:44:02.000000000 -0600
+++ linux/drivers/misc/sgi-gru/grufile.c 2008-11-21 13:40:08.000000000 -0600
@@ -678,7 +678,11 @@ struct vm_operations_struct gru_vm_ops =
.fault = gru_fault,
};
+#ifndef MODULE
+fs_initcall(gru_init);
+#else
module_init(gru_init);
+#endif
module_exit(gru_exit);
module_param(gru_options, ulong, 0644);