Index: src/afs/afs_call.c =================================================================== RCS file: /cvs/openafs/src/afs/afs_call.c,v retrieving revision 1.14 diff -u -r1.14 afs_call.c --- src/afs/afs_call.c 2001/08/08 00:03:28 1.14 +++ src/afs/afs_call.c 2001/09/29 04:43:28 @@ -935,6 +935,7 @@ long linux_ret=0; long *retval = &linux_ret; long eparm[4]; /* matches AFSCALL_ICL in fstrace.c */ + /* eparm is also used by AFSCALL_CALL in afsd.c */ #else #if defined(UKERNEL) Afs_syscall () @@ -995,7 +996,7 @@ uap->parm1 = parm1; uap->parm2 = parm2; uap->parm3 = parm3; - if (syscall == AFSCALL_ICL) { + if (syscall == AFSCALL_ICL || syscall == AFSCALL_CALL) { AFS_COPYIN((char*)parm4, (char*)eparm, sizeof(eparm), code); uap->parm4 = eparm[0]; uap->parm5 = eparm[1]; Index: src/afsd/afsd.c =================================================================== RCS file: /cvs/openafs/src/afsd/afsd.c,v retrieving revision 1.14 diff -u -r1.14 afsd.c --- src/afsd/afsd.c 2001/09/13 23:19:19 1.14 +++ src/afsd/afsd.c 2001/09/29 04:43:28 @@ -1951,6 +1951,16 @@ long param1, param2, param3, param4, param5, param6, param7; { int error; +#ifdef AFS_LINUX20_ENV + long eparm[4]; + + eparm[0] = param4; + eparm[1] = param5; + eparm[2] = param6; + eparm[3] = param7; + + param4 = eparm; +#endif error = syscall(AFS_SYSCALL, AFSCALL_CALL, param1, param2, param3, param4, param5, param6, param7); if (afsd_verbose) printf("SScall(%d, %d)=%d ", AFS_SYSCALL, AFSCALL_CALL, error);