*BSD News Article 12932


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!wupost!udel!sbcs.sunysb.edu!stark.UUCP!gene
From: gene@stark.uucp (Gene Stark)
Newsgroups: comp.os.386bsd.bugs
Subject: Re: Software Solution to "com: silo overflow"
Date: 17 Mar 93 09:05:14
Organization: Gene Stark's home system
Lines: 56
Distribution: world
Message-ID: <GENE.93Mar17090514@stark.stark.uucp>
References: <GENE.93Mar15225407@stark.stark.uucp>
NNTP-Posting-Host: stark.uucp
In-reply-to: gene@stark.uucp's message of 15 Mar 93 22:54:07

As a followup to the com driver kit I posted a couple of days ago, I want
to say that I am now completely satisfied that it does the job.  I made one
further minor change since the original posting.  Since applying that, I have
had *no* silo overflows, and I have transferred a couple of 1.4MB disk images
at 9600 baud, besides using UUCP for mail and news.

Please note that my stuff is simple to install, and has not introduced any
instability into my system.  Like others that have been posting here, I have
been wishing desperately for a com driver that worked with my hardware.
After trying a number of things, I finally decided to do it myself.

Give it a try and let me know what happens!

							Gene Stark
							stark@cs.sunysb.edu

*** /sys/i386/isa/com.c~	Mon Mar 15 22:04:28 1993
--- /usr/gene/com/kernel/com.c	Wed Mar 17 08:43:42 1993
***************
*** 44,50 ****
   *	and Eugene W. Stark <stark@cs.sunsyb.edu> (rewrote comintr to run at
   *						  (splhigh, to reduce overflow)
   *
!  *	Mon Mar 15 22:02:01 EST 1993
   */
  
  #include "com.h"
--- 44,50 ----
   *	and Eugene W. Stark <stark@cs.sunsyb.edu> (rewrote comintr to run at
   *						  (splhigh, to reduce overflow)
   *
!  *	Wed Mar 17 08:43:22 EST 1993
   */
  
  #include "com.h"
***************
*** 889,894 ****
--- 889,903 ----
  	register com = com_addr[unit];
  	register cfcr = 0, cflag = t->c_cflag;
  	int ospeed = comspeed(t->c_ospeed);
+ 	int pri;
+ 
+ 	/*
+ 	 * Make sure that interrupt processing is up to date
+ 	 * before doing anything to the device.
+ 	 */
+ 	pri = spltty();
+ 	comprocessreqs();
+ 	splx(pri);
  
  	/* check requested parameters */
  	if (ospeed < 0 || (t->c_ispeed && t->c_ispeed != t->c_ospeed))

--
							stark@cs.sunysb.edu