diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-04-22 17:08:10 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-04-22 17:08:10 +0000 |
commit | 30310ed8e002b62a92673e2485607da8830bcb85 (patch) | |
tree | ad3cdcdae8a41de670d6abe848c78cdc9bd26fd1 /sys/dev/usb/controller | |
parent | c2a5eaf2ddb3fb9f79b11ad4d29a69313faff288 (diff) | |
download | FreeBSD-src-30310ed8e002b62a92673e2485607da8830bcb85.zip FreeBSD-src-30310ed8e002b62a92673e2485607da8830bcb85.tar.gz |
MFp4 //depot/projects/usb@160706
Resolve possible device side mode deadlock by creating another thread.
Submitted by: Hans Petter Selasky
Diffstat (limited to 'sys/dev/usb/controller')
-rw-r--r-- | sys/dev/usb/controller/usb_controller.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/usb_controller.c b/sys/dev/usb/controller/usb_controller.c index 474cbe5..cf30051 100644 --- a/sys/dev/usb/controller/usb_controller.c +++ b/sys/dev/usb/controller/usb_controller.c @@ -169,6 +169,10 @@ usb2_detach(device_t dev) usb2_proc_free(&bus->explore_proc); + /* Get rid of control transfer process */ + + usb2_proc_free(&bus->control_xfer_proc); + return (0); } @@ -412,6 +416,10 @@ usb2_attach_sub(device_t dev, struct usb2_bus *bus) &bus->bus_mtx, pname, USB_PRI_MED)) { printf("WARNING: Creation of USB explore " "process failed.\n"); + } else if (usb2_proc_create(&bus->control_xfer_proc, + &bus->bus_mtx, pname, USB_PRI_MED)) { + printf("WARNING: Creation of USB control transfer " + "process failed.\n"); } else { /* Get final attach going */ USB_BUS_LOCK(bus); |