Return to BSD News archive
Path: sserve!manuel!munnari.oz.au!mips!mips!swrinde!news.dell.com!raid.dell.com!james From: james@raid.dell.com (James Van Artsdalen) Newsgroups: comp.unix.bsd Subject: 386BSD 0.1 bug: npx.c Message-ID: <1992Jul27.042209.19609@raid.dell.com> Date: 27 Jul 92 04:22:09 GMT Sender: james@raid.dell.com (James Van Artsdalen) Reply-To: james@raid.dell.com (James Van Artsdalen) Organization: Dell Computer Co Lines: 51 npx.c has a bug that causes it to write to I/O port 0xB1 instead of 0xF1. Depending on the chipset, this could be bad: some chipsets don't fully decode the I/O space, and a write to port 0xB1 could wind up going to the mask register for PIC1, ie, the routine could wind up masking IRQ 8 through IRQ 15. It should be noted that a lot of 386 designs ignore port 0xF1. I would guess that all 486s ignore it. The second chunk fixes an incorrect comment. *** npx.c.~1~ Mon Jul 13 04:24:27 1992 --- npx.c Sun Jul 26 22:14:02 1992 *************** *** 130,136 **** curpcb->pcb_flags |= FP_NEEDSRESTORE; } load_cr0(rcr0() | CR0_EM); /* start emulating */ ! outb(0xb1,0); /* reset processor */ } /* --- 130,136 ---- curpcb->pcb_flags |= FP_NEEDSRESTORE; } load_cr0(rcr0() | CR0_EM); /* start emulating */ ! outb(0xf1,0); /* reset coprocessor */ } /* *************** *** 161,167 **** int code; static status; ! outb(0xf0,0); /* reset processor */ /*pg("npxintr");*/ asm (" fnstsw %0 " : "=m" (status) : "m" (status) ); --- 161,167 ---- int code; static status; ! outb(0xf0,0); /* clear BUSY# latch */ /*pg("npxintr");*/ asm (" fnstsw %0 " : "=m" (status) : "m" (status) ); -- -- James R. Van Artsdalen james@bigtex.cactus.org "Live Free or Die" Dell Computer Co 9505 Arboretum Blvd Austin TX 78759 512-338-8789