[OpenAFS-devel] sys_call_table on mips

Ryan Underwood nemesis-lists@icequake.net
Sat, 4 Oct 2003 15:15:40 -0500


hi,

On Sat, Oct 04, 2003 at 03:10:45PM -0400, Derrick J Brashear wrote:
> > >
> > > you need to find another exported system call, hardcode the address of the
> > > sys_call_table (possibly by passing it as a module parameter), or pray the
> > > place you find a pointer to sys_close is in the sys_call_table.

I made a module parameter to set the sys_call_table at runtime.
I use:
nm /vmlinux | grep sys_call_table | cut -d\  -f1
in the openafs-client script to get the sys_call_table address.  (The
mips kernel is not compressed)

It gets something like 881dc29c which I then pass into the module as
0x881dc29c (unsigned long).

The module loads successfully and prints "Found sys_call_table at
881dc29c" to the console, but starting the AFS services then:
Starting AFS services: afsd: Error -1 in basic initialization.

afsd: Error enabling dynroot support.
afsd: Error enabling fakestat support.
Adding cell 'rl.ac.uk': error -1
Adding cell 'hep.man.ac.uk': error -1
Adding cell 'phy.bris.ac.uk': error -1
Adding cell 'su.se': error -1
Adding cell 'sanchin.se': error -1

etc etc. and eventually gives up:
afsd: No check server daemon in client.
afsd: All AFS daemons started.
afsd: Can't mount AFS on /afs(22)
afsdfs: Function not implemented

So, does that mean the syscall isn't getting properly initialized by the
module init code?  Where should I look next?

Thanks,

-- 
Ryan Underwood, <nemesis at icequake.net>, icq=10317253