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