Index: /trunk/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c	(revision 29474)
+++ /trunk/src/VBox/Runtime/r0drv/solaris/vbi/i86pc/os/vbi.c	(revision 29475)
@@ -1369,7 +1369,9 @@
 		/*
 		 * prepare pages for mapping into kernel/user space, we need to
-		 * downgrade the exclusive page lock to a shared lock.
+		 * downgrade the exclusive page lock to a shared lock if the
+		 * pages is locked exclusively.
 		 */
-		page_downgrade(pp_pages[i]);
+		if (page_tryupgrade(pp_pages[i]) == 1)
+    		page_downgrade(pp_pages[i]);
 		pphysaddrs[i] = vbi_page_to_pa(pp_pages, i);
 	}
