[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [kvanhees@sinenomine.net: Re: [jochen@jochen.org: OpenAFS for S/390]]



> Which configure options are you applying?  1.2.6 also loads fine for us.
> Maybe we're seeing an untracked dependency?

I currently think the debian kernel does not export these symbols.

Can you please check your /proc/ksyms on S/390 wheter it exports these
symbols? 

I try the stock debian options for the openafs module, these are:

,----
|         sh configure --with-afs-sysname=$(SYS_NAME) \
|         --with-linux-kernel-headers=$(KSRC)
`----

I find the symbol __copy_to_user_fixup is used in the following files:

,----
| (unstable)jhein@trex:~/openafs/src/libafs/MODLOAD-2.4.17-MP$ grep copy_from_user_fixup *.o
| Binary file afs_call.o matches
| Binary file afs_pioctl.o matches
| Binary file libafs-2.4.17.mp.o matches
| Binary file osi_misc.o matches
`----

A quick look into the preprocessor output for osi_misc.c yields:

,----
| # 375 "../asm/uaccess.h"
| 
| extern int __get_user_bad(void);
| 
| 
| 
| 
| 
|    void __copy_from_user_fixup(void  );
|    void __copy_to_user_fixup(void  );
| 
| extern inline unsigned long
| __copy_to_user_asm(void* to, const void* from,  long n)
| {
| 
|         __asm__ __volatile__ (  "   lr    2,%2\n"
|                                 "   lr    4,%1\n"
|                                 "   lr    3,%0\n"
|                                 "   lr    5,3\n"
|                                 "   sacf  512\n"
|                                 "0: mvcle 4,2,0\n"
|                                 "   jo    0b\n"
|                                 "   sacf  0\n"
|                                 "   lr    %0,3\n"
|                                 ".section __ex_table,\"a\"\n"
|                                 "   .align 4\n"
|                                 "   .long  0b,__copy_to_user_fixup\n"
|                                 ".previous"
|                                 : "+&d" (n) : "d" (to), "d" (from)
|                                 : "cc", "2", "3", "4", "5" );
|         return n;
| }
`----

The symbols should be exported by the kernel, see 
arch/s390/kernel/s390_ksyms.c:

,----
| EXPORT_SYMBOL_NOVERS(__copy_from_user_fixup);
| EXPORT_SYMBOL_NOVERS(__copy_to_user_fixup);
`----

But the debian compiled kernel does not export these symbols,
according to /proc/ksyms.  A kernel build bug?

I get a syntax error when compiling the kernel, so I can't check:

make[3]: Entering directory
`/home/jhein/tmp/kernel-source-2.4.17/fs/partitions'
gcc -D__KERNEL__ -I/home/jhein/tmp/kernel-source-2.4.17/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -fno-strength-reduce
-DEXPORT_SYMTAB -c ibm.c
ibm.c: In function `ibm_partition':
ibm.c:126: parse error before `;'
ibm.c:134: `inode' undeclared (first use in this function)
ibm.c:134: (Each undeclared identifier is reported only once
ibm.c:134: for each function it appears in.)
make[3]: *** [ibm.o] Error 1
make[3]: Leaving directory
`/home/jhein/tmp/kernel-source-2.4.17/fs/partitions'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory
`/home/jhein/tmp/kernel-source-2.4.17/fs/partitions'
make[1]: *** [_subdir_partitions] Error 2
make[1]: Leaving directory `/home/jhein/tmp/kernel-source-2.4.17/fs'
make: *** [_dir_fs] Error 2

For now, I think I should reassign the bug to the kernel-image.  Any
comments?

Jochen

-- 
#include <~/.signature>: permission denied



Reply to: