From 0cf1887139eb1ce18d09f7be0567aa93d802040d Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sun, 19 Oct 2003 23:35:58 +0000 Subject: - 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. --- bsd-core/drm_vm.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bsd-core/drm_vm.c') diff --git a/bsd-core/drm_vm.c b/bsd-core/drm_vm.c index da815329..9e9f1e14 100644 --- a/bsd-core/drm_vm.c +++ b/bsd-core/drm_vm.c @@ -65,7 +65,9 @@ paddr_t DRM(mmap)(dev_t kdev, off_t offset, int prot) drm_map_list_entry_t *listentry = NULL; drm_file_t *priv; + DRM_LOCK(); priv = DRM(find_file_by_proc)(dev, DRM_CURPROC); + DRM_UNLOCK(); if (!priv) { DRM_DEBUG("can't find authenticator\n"); return EINVAL; -- cgit v1.2.3