Module Name: src Committed By: rkujawa Date: Sat Dec 31 01:16:09 UTC 2011
Modified Files: src/sys/dev/bluetooth: bthidev.c btkbd.c Log Message: Fix panic triggered by pressing the caps lock key: http://c0ff33.net/drop/bt_caps_panic.jpg OK'd mrg. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/sys/dev/bluetooth/bthidev.c cvs rdiff -u -r1.11 -r1.12 src/sys/dev/bluetooth/btkbd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/bluetooth/bthidev.c diff -u src/sys/dev/bluetooth/bthidev.c:1.19 src/sys/dev/bluetooth/bthidev.c:1.20 --- src/sys/dev/bluetooth/bthidev.c:1.19 Wed Apr 28 06:13:51 2010 +++ src/sys/dev/bluetooth/bthidev.c Sat Dec 31 01:16:09 2011 @@ -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 @@ bthidev_output(struct bthidev *hidev, ui 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: src/sys/dev/bluetooth/btkbd.c diff -u src/sys/dev/bluetooth/btkbd.c:1.11 src/sys/dev/bluetooth/btkbd.c:1.12 --- src/sys/dev/bluetooth/btkbd.c:1.11 Tue May 12 12:10:46 2009 +++ src/sys/dev/bluetooth/btkbd.c Sat Dec 31 01:16:09 2011 @@ -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 @@ btkbd_ioctl(void *self, unsigned long cm break; case WSKBDIO_SETLEDS: + mutex_enter(bt_lock); btkbd_set_leds(sc, *(int *)data); + mutex_exit(bt_lock); break; case WSKBDIO_GETLEDS: