From: Eric A. <et...@lc...> - 2003-10-20 03:15:02
|
On Sun, 2003-10-19 at 16:35, Eric Anholt wrote: > CVSROOT: /cvs/dri > Module name: xc > Repository: xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/ > Changes by: anholt@pdx. 03/10/19 16:35:59 > > Log message: > - SMPng lock the DRM. This is only partial -- there are a few code paths used > by root (the X Server) which are not locked. However, it should deal with > lost-IRQ issues on -current which I think people have been experiencing but > I am unable to reproduce (though I understand why they would occur, because of > a bug of mine). Note that most of the locking (DRM_LOCK()/UNLOCK()) > is all covered by Giant still, so it doesn't matter yet. > - Remove locking on FreeBSD-stable and NetBSD. These are covered by the fact > that there is no reentrancy of the kernel except by interrupts, which are > locked using spldrm()/splx() instead. I thought I had this one tested pretty thoroughly, but I just found a rough spot: We could sleep in the sysctl code with the device's lock held. Witness will complain loudly on a sysctl hw.dri. I'll fix this when I can. -- Eric Anholt et...@lc... http://people.freebsd.org/~anholt/ anholt@FreeBSD.org |