Module Name:    src
Committed By:   riastradh
Date:           Tue Jul 22 02:38:31 UTC 2014

Modified Files:
        src/sys/external/bsd/drm2/include/linux: ww_mutex.h

Log Message:
Make Linux ww_mutex use a spin lock inside, not an adaptive lock.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/external/bsd/drm2/include/linux/ww_mutex.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/include/linux/ww_mutex.h
diff -u src/sys/external/bsd/drm2/include/linux/ww_mutex.h:1.1 src/sys/external/bsd/drm2/include/linux/ww_mutex.h:1.2
--- src/sys/external/bsd/drm2/include/linux/ww_mutex.h:1.1	Wed Jul 16 20:59:58 2014
+++ src/sys/external/bsd/drm2/include/linux/ww_mutex.h	Tue Jul 22 02:38:31 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: ww_mutex.h,v 1.1 2014/07/16 20:59:58 riastradh Exp $	*/
+/*	$NetBSD: ww_mutex.h,v 1.2 2014/07/22 02:38:31 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -144,7 +144,11 @@ static inline void
 ww_mutex_init(struct ww_mutex *mutex, struct ww_class *class)
 {
 
-	mutex_init(&mutex->wwm_lock, MUTEX_DEFAULT, IPL_NONE);
+	/*
+	 * XXX Apparently Linux takes these with spin locks held.  That
+	 * strikes me as a bad idea, but so it is...
+	 */
+	mutex_init(&mutex->wwm_lock, MUTEX_DEFAULT, IPL_VM);
 	mutex->wwm_state = WW_UNLOCKED;
 	mutex->wwm_class = class;
 	rb_tree_init(&mutex->wwm_waiters, &ww_acquire_ctx_rb_ops);

Reply via email to