Wes Chow <[EMAIL PROTECTED]> writes:

>> Hm.  So you're using the unstable/testing OpenAFS source package on an
>> otherwise virgin sarge system?  This should work; it's just not
>> something I ever test, and I for sure haven't tested it since the
>> security update for the sarge kernel.
>> 
>> Does the version of OpenAFS in backports.org work?

> Same build error:

> In file included from
> /usr/src/modules/openafs/src/libafs/MODLOAD-2.6.8-3-386-SP/osi_module.c:42:
> include/linux/seq_file.h:42: warning: `printk' is an unrecognized format
> function type
>   CC [M]
> /usr/src/modules/openafs/src/libafs/MODLOAD-2.6.8-3-386-SP/osi_probe.o
> /usr/src/modules/openafs/src/libafs/MODLOAD-2.6.8-3-386-SP/osi_probe.c:121:
> error: invalid lvalue in unary `&'

Bleh, I see the problem.  The semantics of the module_param_array call
changed between different versions of the 2.6 kernel and the OpenAFS code
expects the later semantics.  I suppose no one tested the new code with
early 2.6 kernels.

The following patch will probably make it compile, but I'm not sure how
best to detect the situation, and this patch isn't the right thing for
later kernels.

Let me know if this works, and if so, I'll report it upstream to see if
anyone has any bright ideas.

--- openafs/src/afs/LINUX/osi_probe.c.orig      2006-04-06 22:23:11.000000000 
-0700
+++ openafs/src/afs/LINUX/osi_probe.c   2006-07-05 10:53:09.000000000 -0700
@@ -117,11 +117,7 @@
 
 /* Allow the user to specify sys_call_table addresses */
 static unsigned long sys_call_table_addr[4] = { 0,0,0,0 };
-#ifdef module_param_array
-module_param_array(sys_call_table_addr, long, NULL, 0);
-#else
 MODULE_PARM(sys_call_table_addr, "1-4l");
-#endif
 MODULE_PARM_DESC(sys_call_table_addr, "Location of system call tables");
 
 /* If this is set, we are more careful about avoiding duplicate matches */
@@ -134,11 +130,7 @@
 MODULE_PARM_DESC(probe_carefully, "Probe for system call tables carefully");
 
 static int probe_ignore_syscalls[8] = { -1, -1, -1, -1, -1, -1, -1, -1 };
-#ifdef module_param_array
-module_param_array(probe_ignore_syscalls, int, NULL, 0);
-#else
 MODULE_PARM(probe_ignore_syscalls, "1-8i");
-#endif
 MODULE_PARM_DESC(probe_ignore_syscalls, "Syscalls to ignore in table checks");
 
 #ifdef OSI_PROBE_DEBUG

-- 
Russ Allbery ([EMAIL PROTECTED])               <http://www.eyrie.org/~eagle/>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to