Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbosgd!gatech!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.bugs.4bsd Subject: Re: VAX 4.2bsd /dev/kmem panic Message-ID: <438@umcp-cs.UUCP> Date: Sat, 22-Mar-86 13:30:27 EST Article-I.D.: umcp-cs.438 Posted: Sat Mar 22 13:30:27 1986 Date-Received: Mon, 24-Mar-86 03:41:31 EST References: <222@nyit.UUCP> Distribution: net Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 26 My 4.3ish kernel does not crash with Rick's example, but the bug is real. As a quick fix, I would suggest just disallowing accesses to discontiguous regions. (The only one that makes even slight sense is P1/S space, and no current programs cross the boundary in a single read, or at least not intentionally.) Change the very beginning of kernacc to read as follows (just add the lines marked): ENTRY(kernacc, 0) # in 4.2 it was `_kernacc:', I think movl 4(ap),r0 # virtual address + bicl3 $0x3fffffff,r0,r1 + addl3 8(ap),r0,r2 # ending virtual address + bicl2 $0x3fffffff,r2 + cmpl r1,r2 # same region? + bneq kacerr # no, disallow it bbcc $31,r0,kacc1 . . . Warning: the above is untested. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu