[OpenAFS-devel] Re: osi_Panic on AIX and IRIX

Chaz Chandler clc31@inbox.com
Tue, 09 Feb 2010 18:13:21 -0500


>> I'm not sure exactly what led to it, but at some point before late
>> January references to vprintf crept into the IRIX kernel module
>> because of the way osi_Panic was defined -- at which point the module
>> would no longer load (and the kernel would no longer build with
>> libafs.a in it).
> 
> On those platforms, it looks like osi_Panic should be decl'd
> 'osi_Panic(char *msg, void *a1, void *a2, void *a3)', and should be
> defined to effectively printf(msg, a1, a2, a3). There should be no
> vprintf in osi_Panic, and I can't see how it could get in there,
> assuming AFS_AIX_ENV and AFS_SGI_ENV are the right symbols.
> 

Yes, that's the change I'm talking about.  Prior to that, vprintf was
used because it didn't have AFS_SGI_ENV as a qualifier to the ifdef.  I
added AFS_SGI_ENV.  However, it then led to more problems and I'm
wondering if that's the right fix.  That's why I'm asking if it works on
AIX, because if it works there it should work for IRIX because it should
solve the same underlying problem (lack of vprintf in the kernel).

>> Well, I don't know how well it's working out for AIX, but now I'm
>> playing wack-a-mole #ifdefing all of the osi_Panic refs elsewhere.
> 
> That's definitely not what you want to do. Panics still need to panic,
> right?

Not to remove them, but to surround them with ifdefs so that, on those
platforms, osi_Panic is in the proper form (always four args).

> 
>> Has anyone tested AIX recently?
> 
> On 1.5? Probably not, for some value of 'recently'.
> 

Ahah, this might explain a few things.  We might want to reconsider the
redefinition of osi_Panic in rx_prototypes.h.