panic() only once

Herbert Rosmanith (herp@wildsau.idv.uni-linz.ac.at)
Thu, 22 Aug 1996 17:10:46 +0200 (MET DST)


hi,

I tried to prevent recursive calling of the panic() routine with the
following code:

NORET_TYPE void panic(const char * fmt, ...)
{
static char buf[1024];
static int in_panic=0;
va_list args;
int i;

if (in_panic) for(;;); /* hang */
in_panic=1;

va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);
printk(KERN_EMERG "Kernel panic: %s\n",buf);
cli();
for(;;);

I don't mind that sys_sync() isn't called.
anyway, If I power on the ISDN PBX, the system will just hang instead
of printing out at least a single panic message !

This Is Not Funny(tm)....

/herp