kernel - Fix callout deadlock in u4b
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Nov 2014 18:20:41 +0000 (10:20 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Nov 2014 18:20:41 +0000 (10:20 -0800)
commit829b5b4784a0a87b2742bc076e3d1dacafb951e2
treeace3b6569d8ae4913af33f6427781588481e2b1a
parentd0f829f6fc7b1c33c7790ed3d68343f1153d9d31
kernel - Fix callout deadlock in u4b

* Fix a deadlock which could freeze systems prior to the callout work and
  cause X to deadlock (but not totally freeze a system) after the callout
  work.

* Use the new callout_init_lk() auto-locking feature to handle a particular
  usb callout.  This allows the callout to be canceled if it interferes with
  a frontend callout_reset() call and also fixes the related race.
sys/bus/u4b/usb_util.c