panic: munhash (4.2BSD crash) (A fix)

Chris Maloney chris at mddc.UUCP
Thu Dec 22 06:16:47 AEST 1983


---

I belive that the correction mention previously by RWS at mit-xx
will fix this problem (It did for use anyway).

Chris Maloney
7209 Dixie Highway
Fairfield, Ohio   45014
Management Decisions Development Corp.
(513)874-6464

...{ucbvax,decvax,inhp4,mhuxi}!cbosgd!qusavx!mddc!chris		(uucp)

----

>From qusavx!cbosgd!mhuxl!eagle!harpo!seismo!hao!hplabs!sri-unix!RWS at mit-xx Wed Dec 31 19:00:00 1969
Path: mddc!qusavx!cbosgd!mhuxl!eagle!harpo!seismo!hao!hplabs!sri-unix!RWS at mit-xx
From: RWS%mit-xx at sri-unix.UUCP
Newsgroups: net.unix-wizards
Subject: sundry 4.2 bugs
Message-ID: <13280 at sri-arpa.UUCP>
Date: Wed, 2-Nov-83 17:15:00 EST
Article-I.D.: sri-arpa.13280
Posted: Wed Nov  2 17:15:00 1983
Date-Received: Fri, 4-Nov-83 09:05:00 EST
Lines: 64
Status: RO

Despite claims to the contrary, the block number sign extension problem still
exists.  Berkeley put in a fix that should have worked, but a C compiler bug
apparently keeps it from working.  In /sys/sys/vm_mem.c in memall() the code
      swapdev : mount[c->c_mdev].m_dev, (daddr_t)(u_long)c->c_blkno
should be changed to
      swapdev : mount[c->c_mdev].m_dev, c->c_blkno
and in /sys/vax/vm_machdep.c in chgprot() the code
          munhash(mount[c->c_mdev].m_dev, (daddr_t)(u_long)c->c_blkno);
should be changed to
          munhash(mount[c->c_mdev].m_dev, c->c_blkno);
because the C compiler apparently incorrectly folds the (daddr_t) and (u_long)
together and sign extends anyway.  Simply taking out the (daddr_t)(u_long)
works, although lint will probably complain about it.

---



More information about the Comp.unix.wizards mailing list