Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/bluetooth Fix panic triggered by pressing the caps l...



details:   https://anonhg.NetBSD.org/src/rev/e6289bb34098
branches:  trunk
changeset: 772365:e6289bb34098
user:      rkujawa <rkujawa%NetBSD.org@localhost>
date:      Sat Dec 31 01:16:09 2011 +0000

description:
Fix panic triggered by pressing the caps lock key:
http://c0ff33.net/drop/bt_caps_panic.jpg

OK'd mrg.

diffstat:

 sys/dev/bluetooth/bthidev.c |  7 +++----
 sys/dev/bluetooth/btkbd.c   |  6 ++++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diffs (57 lines):

diff -r 52df093cfe18 -r e6289bb34098 sys/dev/bluetooth/bthidev.c
--- a/sys/dev/bluetooth/bthidev.c       Sat Dec 31 00:11:20 2011 +0000
+++ b/sys/dev/bluetooth/bthidev.c       Sat Dec 31 01:16:09 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: bthidev.c,v 1.19 2010/04/28 06:13:51 plunky Exp $      */
+/*     $NetBSD: bthidev.c,v 1.20 2011/12/31 01:16:09 rkujawa Exp $     */
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bthidev.c,v 1.19 2010/04/28 06:13:51 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bthidev.c,v 1.20 2011/12/31 01:16:09 rkujawa Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -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;
 }
diff -r 52df093cfe18 -r e6289bb34098 sys/dev/bluetooth/btkbd.c
--- a/sys/dev/bluetooth/btkbd.c Sat Dec 31 00:11:20 2011 +0000
+++ b/sys/dev/bluetooth/btkbd.c Sat Dec 31 01:16:09 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: btkbd.c,v 1.11 2009/05/12 12:10:46 cegger Exp $        */
+/*     $NetBSD: btkbd.c,v 1.12 2011/12/31 01:16:09 rkujawa Exp $       */
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: btkbd.c,v 1.11 2009/05/12 12:10:46 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btkbd.c,v 1.12 2011/12/31 01:16:09 rkujawa Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -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:



Home | Main Index | Thread Index | Old Index