David Malone <[EMAIL PROTECTED]> writes:
> On Sun, May 20, 2001 at 12:59:51PM -0400, Mike Heffner wrote:
> > The machine is up for about one minute and then I ran `startx' and the
> > screen turned black and it appeared to lockup, after about 30 seconds
> > plus some banging on the keyboard it rebooted. I have 256mb ram, so it
> > shouldn't be swapping at this point. The kernel and world are cvsupd
> > to about 12am May 20 EDT, the following is the panic message:
>
> I'm getting a panic whenever I start X too (with a kernel from
> earlier today). I managed to get a DDB trace from a serial console.
Please try the attached patch. I make no claims of its correctness,
but this e-mail is coming to you via X on -current updated a few hours
ago so it works here :-).
I had to manually edit out some unrelated local changes, so if you
have trouble applying it fetch the full one from
http://www.unixfreak.org/~dima/home/shm-full.diff. That one has local
changes (new sysctls), but they (probably) won't hurt you.
Thanks,
Dima Dorfman
[EMAIL PROTECTED]
Index: sysv_shm.c
===================================================================
RCS file: /stl/src/FreeBSD/src/sys/kern/sysv_shm.c,v
retrieving revision 1.56
diff -u -r1.56 sysv_shm.c
--- sysv_shm.c 2001/05/19 01:28:03 1.56
+++ sysv_shm.c 2001/05/20 20:26:28
@@ -182,7 +186,9 @@
size_t size;
shm_handle = shmseg->shm_internal;
+ mtx_lock(&vm_mtx);
vm_object_deallocate(shm_handle->shm_object);
+ mtx_unlock(&vm_mtx);
free((caddr_t)shm_handle, M_SHM);
shmseg->shm_internal = NULL;
size = round_page(shmseg->shm_segsz);
@@ -203,7 +209,9 @@
segnum = IPCID_TO_IX(shmmap_s->shmid);
shmseg = &shmsegs[segnum];
size = round_page(shmseg->shm_segsz);
+ mtx_lock(&vm_mtx);
result = vm_map_remove(&p->p_vmspace->vm_map, shmmap_s->va, shmmap_s->va +
size);
+ mtx_unlock(&vm_mtx);
if (result != KERN_SUCCESS)
return EINVAL;
shmmap_s->shmid = -1;
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message