runtime: fix bug in preemption checks; was causing "lock count" panics

R=r
CC=golang-dev
https://golang.org/cl/186078
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c
index 6324b4b..99fa26a 100644
--- a/src/pkg/runtime/proc.c
+++ b/src/pkg/runtime/proc.c
@@ -523,6 +523,8 @@
 void
 gosched(void)
 {
+	if(m->locks != 0)
+		throw("gosched holding locks");
 	if(g == m->g0)
 		throw("gosched of g0");
 	if(gosave(&g->sched) == 0)