'munhash' panic

Doug McCallum mccallum at opus.UUCP
Tue May 28 23:56:04 AEST 1985


This bug and fix have been reported several times before.  Here is the
fix:


> 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