Received: from louie.udel.edu by huey.udel.edu id aa25712; 15 Feb 94 17:54 EST Received: from faui45.informatik.uni-erlangen.de by louie.udel.edu id aa18345; 15 Feb 94 17:51 EST Received: from faui43.informatik.uni-erlangen.de by uni-erlangen.de with SMTP; id AA15109 (5.65c-6/7.3v-FAU); Tue, 15 Feb 1994 23:50:53 +0100 Received: from faui45x.informatik.uni-erlangen.de by immd4.informatik.uni-erlangen.de with SMTP; id AA17375 (5.65c-6/7.3m-FAU); Tue, 15 Feb 1994 23:50:51 +0100 From: Frank Kardel Message-Id: <199402152250.AA17375@faui43.informatik.uni-erlangen.de> Subject: fixed for parse kernel stuff... To: mills@udel.edu Date: Tue, 15 Feb 94 23:50:47 MET X-Mailer: ELM [version 2.3 PL11] Hi, Dave ! Here are some fixes for the PARSE kernel modules. Basically they fix a memory leak on an open error condition and pronounce the Solaris 2.x stream module MT safe. Well, actually I should put something for you to eat here 8-). RCS file: /src/NTP/REPOSITORY/v3/parse/parsesolaris.c,v retrieving revision 1.1.1.7 diff -c -r1.1.1.7 parsesolaris.c *** parse/parsesolaris.c:1.1.1.7 1994/02/12 09:53:42 --- parse/parsesolaris.c 1994/02/15 22:20:51 *************** *** 1,7 **** /* ! * /src/NTP/REPOSITORY/v3/parse/parsesolaris.c,v 3.12 1994/02/02 17:45:35 kardel Exp * ! * parsesolaris.c,v 3.12 1994/02/02 17:45:35 kardel Exp * * STREAMS module for reference clocks * (SunOS5.x - not fully tested - buyer beware ! - OS KILLERS may still be --- 1,7 ---- /* ! * /src/NTP/REPOSITORY/v3/parse/parsesolaris.c,v 3.15 1994/02/15 22:20:51 kardel Exp * ! * parsesolaris.c,v 3.15 1994/02/15 22:20:51 kardel Exp * * STREAMS module for reference clocks * (SunOS5.x - not fully tested - buyer beware ! - OS KILLERS may still be *************** *** 19,25 **** */ #ifndef lint ! static char rcsid[] = "parsesolaris.c,v 3.9 1994/01/25 19:05:26 kardel Exp"; #endif /* --- 19,25 ---- */ #ifndef lint ! static char rcsid[] = "parsesolaris.c,v 3.15 1994/02/15 22:20:51 kardel Exp"; #endif /* *************** *** 65,71 **** { "parse", /* module name */ &parseinfo, /* module information */ ! D_NEW, /* not clean yet */ /* lock ptr */ }; --- 65,71 ---- { "parse", /* module name */ &parseinfo, /* module information */ ! D_NEW|D_MP|D_MTQPAIR, /* exclusive for q pair */ /* lock ptr */ }; *************** *** 139,145 **** /*ARGSUSED*/ int _init(void) { ! static char revision[] = "3.12"; char *s, *S, *t; /* --- 139,145 ---- /*ARGSUSED*/ int _init(void) { ! static char revision[] = "3.15"; char *s, *S, *t; /* *************** *** 413,418 **** --- 413,420 ---- parse->parse_ppsclockev.tv.tv_usec = 0; parse->parse_ppsclockev.serial = 0; + qprocson(q); + parseprintf(DD_OPEN,("parse: OPEN - initializing io subsystem q=%x\n", q)); if (!parse_ioinit(&parse->parse_io)) *************** *** 420,425 **** --- 422,429 ---- /* * ok guys - beat it */ + qprocsoff(q); + kmem_free((caddr_t)parse, sizeof(parsestream_t)); parsebusy--; *************** *** 441,447 **** */ if (!notice) { ! printf("%s: Copyright (c) 1991-1993, Frank Kardel\n", modlstrmod.strmod_linkinfo); notice = 1; } --- 445,451 ---- */ if (!notice) { ! printf("%s: Copyright (c) 1991-1994, Frank Kardel\n", modlstrmod.strmod_linkinfo); notice = 1; } *************** *** 449,455 **** --- 453,464 ---- } else { + qprocsoff(q); + + kmem_free((caddr_t)parse, sizeof(parsestream_t)); + parsebusy--; + return EIO; } } *************** *** 462,467 **** --- 471,478 ---- parseprintf(DD_CLOSE,("parse: CLOSE\n")); + qprocsoff(q); + s = splhigh(); if (parse->parse_dqueue) *************** *** 1178,1184 **** /* * History: * ! * parsesolaris.c,v * Revision 3.12 1994/02/02 17:45:35 kardel * rcs ids fixed * --- 1189,1204 ---- /* * History: * ! * parsesolaris.c,v ! * Revision 3.15 1994/02/15 22:20:51 kardel ! * rcsid fixed ! * ! * Revision 3.14 1994/02/15 22:06:04 kardel ! * added qprocsx & flags for MT capability ! * ! * Revision 3.13 1994/02/13 19:16:47 kardel ! * updated verbose Copyright message ! * * Revision 3.12 1994/02/02 17:45:35 kardel * rcs ids fixed * RCS file: /src/NTP/REPOSITORY/v3/parse/parsestreams.c,v retrieving revision 1.1.1.8 diff -c -r1.1.1.8 parsestreams.c *** parse/parsestreams.c:1.1.1.8 1994/02/12 09:53:45 --- parse/parsestreams.c 1994/02/15 22:39:50 *************** *** 1,7 **** /* ! * /src/NTP/REPOSITORY/v3/parse/parsestreams.c,v 3.14 1994/02/02 17:45:38 kardel Exp * ! * parsestreams.c,v 3.14 1994/02/02 17:45:38 kardel Exp * * STREAMS module for reference clocks * (SunOS4.x) --- 1,7 ---- /* ! * /src/NTP/REPOSITORY/v3/parse/parsestreams.c,v 3.16 1994/02/15 22:39:50 kardel Exp * ! * parsestreams.c,v 3.16 1994/02/15 22:39:50 kardel Exp * * STREAMS module for reference clocks * (SunOS4.x) *************** *** 527,533 **** */ if (!notice) { ! printf("%s: Copyright (c) 1991-1993, Frank Kardel\n", parsesync_vd.Drv_name); notice = 1; } --- 527,533 ---- */ if (!notice) { ! printf("%s: Copyright (c) 1991-1994, Frank Kardel\n", parsesync_vd.Drv_name); notice = 1; } *************** *** 535,540 **** --- 535,542 ---- } else { + kmem_free((caddr_t)parse, sizeof(parsestream_t)); + #ifdef VDDRV parsebusy--; #endif *************** *** 1257,1263 **** /* * History: * ! * parsestreams.c,v * Revision 3.14 1994/02/02 17:45:38 kardel * rcs ids fixed * --- 1259,1271 ---- /* * History: * ! * parsestreams.c,v ! * Revision 3.16 1994/02/15 22:39:50 kardel ! * memory leak on open failure closed ! * ! * Revision 3.15 1994/02/13 19:16:50 kardel ! * updated verbose Copyright message ! * * Revision 3.14 1994/02/02 17:45:38 kardel * rcs ids fixed * -- Frank Kardel (kardel@informatik.uni-erlangen.de) All SCSI disks will from now on be required to send an email notice 24 hours prior to complete hardware failure!