Index: bthidev.c
===================================================================
RCS file: /cvsroot/src/sys/dev/bluetooth/bthidev.c,v
retrieving revision 1.19
diff -u -r1.19 bthidev.c
--- bthidev.c   28 Apr 2010 06:13:51 -0000      1.19
+++ bthidev.c   31 Dec 2011 00:50:05 -0000
@@ -919,9 +919,8 @@
       memcpy(mtod(m, uint8_t *) + 2, report, rlen);
       m->m_pkthdr.len = m->m_len = rlen + 2;

-       mutex_enter(bt_lock);
+       KASSERT(mutex_owned(bt_lock));
       err = l2cap_send(sc->sc_int, m);
-       mutex_exit(bt_lock);

       return err;
}
Index: btkbd.c
===================================================================
RCS file: /cvsroot/src/sys/dev/bluetooth/btkbd.c,v
retrieving revision 1.11
diff -u -r1.11 btkbd.c
--- btkbd.c     12 May 2009 12:10:46 -0000      1.11
+++ btkbd.c     31 Dec 2011 00:50:05 -0000
@@ -378,7 +378,9 @@
               break;

       case WSKBDIO_SETLEDS:
+               mutex_enter(bt_lock);
               btkbd_set_leds(sc, *(int *)data);
+               mutex_exit(bt_lock);
               break;

       case WSKBDIO_GETLEDS: