[OpenAFS] Solaris8 panic w/ patch 108528-20

Douglas E. Engert deengert@anl.gov
Wed, 07 May 2003 13:25:25 -0500


Let me post this possible fix to the OpenAFS-info list. Itr was sent to
the devel list.It should work with or without 108528-20.
Sergio Gelato <Sergio.Gelato@astro.su.se> has been trying it, but has
not reported back tit he list yet.




-------- Original Message --------
Subject: Re: [OpenAFS-devel] Solaris 8 patch 108528-20 breaks afs module
Date: Tue, 06 May 2003 12:41:22 -0500
From: "Douglas E. Engert" <deengert@anl.gov>
To: Frank Batschulat <Frank.Batschulat@Sun.COM>, Sergio.Gelato@astro.su.se
CC: openafs-devel@openafs.org, Brian Sebby <sebby@anl.gov>
References: <200304252007.h3PK7ft02148@hs-eber02-01.Germany.Sun.COM>


Looking at the OpenAFS src/afs/Solaris/osi_vfsops.c  it would appear the
read_binding_file does not need to be called at all on sun4x_58.

This is based on the fact that the /etc/name_to_sysnum file already has "afs"
defined, Sun says the read_binding_file should not be called, (and I am 
surprised that AFS ever called it) and that the make_syscallname("afs", AFS_SYSCALL);
was ifdefed out already for AFS_SUN58_ENV. 

I have not tried this but a possible fix for the problem could be 
to ifdef out a lot more by moving the #if !defined(AFS_SUN58_ENV) 
and #endif  This should work on any Sun4x_58 with or without the patch,
as the sysent should have been setup by the OS, and the AFS code should
not have to touch it. 

Any comments?


*** ,osi_vfsops.c       Tue Oct 15 22:58:23 2002
--- osi_vfsops.c        Tue May  6 11:11:15 2003
***************
*** 448,453 ****
--- 448,454 ----
  #endif
  #endif
  #endif
+ #if !defined(AFS_SUN58_ENV)
      /* 
       * Re-read the /etc/name_to_sysnum file to make sure afs isn't added after
       * reboot.  Ideally we would like to call modctl_read_sysbinding_file() but
***************
*** 465,473 ****
  #else
      read_binding_file(sysbind, sb_hashtab);
  #endif
- #if !defined(AFS_SUN58_ENV)
      make_syscallname("afs", AFS_SYSCALL);
- #endif
  
      if (sysent[AFS_SYSCALL].sy_call == nosys) {
        if ((sysn = mod_getsysname(AFS_SYSCALL)) != NULL) {
--- 466,472 ----
***************
*** 481,486 ****
--- 480,486 ----
  #endif        
        }
      }
+ #endif
  
      osi_Init();                               /* initialize global lock, etc */






Ray Pasetes wrote:
> 
> Hello,
>         We have a Sun Ultra60 running Solaris8.  When we install the kernel
> patch 108528-20, we consistently get a kernel panic when loading the AFS
> module.  However, if we backed out to 108528-19 of the kernel
> patch, everything was okay.  This was with either OpenAFS v1.2.9 or
> Trnasarc AFS v3.6 patch#7.   After sending in the core files to sun for
> analysis, this was their explanation:
> 
> "The system is panicing because the afs driver is calling
> read_binding_file() during the modload.  This function
> used to only take 2 arguments.  Starting in 108528-20, it
> takes 3 arguments.  The AFS driver is not setting up the
> thrid argument when it calls this function so the system
> panics.  read_binding_file() is private to the Solaris kernel.
> 3rd party modules are not permitted to call this interface."
> 
> I was wondering of anyone else had encountered this problem.
> 
> Thanks for any help,
> Ray Pasetes
> 
> _______________________________________________
> OpenAFS-info mailing list
> OpenAFS-info@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-info

-- 

 Douglas E. Engert  <DEEngert@anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439 
 (630) 252-5444