diff options
Diffstat (limited to 'drivers/staging/usbip/vhci_sysfs.c')
-rw-r--r-- | drivers/staging/usbip/vhci_sysfs.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/staging/usbip/vhci_sysfs.c b/drivers/staging/usbip/vhci_sysfs.c index 3f2459f3041..e2dadbd5ef1 100644 --- a/drivers/staging/usbip/vhci_sysfs.c +++ b/drivers/staging/usbip/vhci_sysfs.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include "vhci.h" | 21 | #include "vhci.h" |
22 | 22 | ||
23 | #include <linux/in.h> | 23 | #include <linux/in.h> |
24 | #include <linux/kthread.h> | ||
24 | 25 | ||
25 | /* TODO: refine locking ?*/ | 26 | /* TODO: refine locking ?*/ |
26 | 27 | ||
@@ -220,13 +221,13 @@ static ssize_t store_attach(struct device *dev, struct device_attribute *attr, | |||
220 | vdev->ud.tcp_socket = socket; | 221 | vdev->ud.tcp_socket = socket; |
221 | vdev->ud.status = VDEV_ST_NOTASSIGNED; | 222 | vdev->ud.status = VDEV_ST_NOTASSIGNED; |
222 | 223 | ||
223 | wake_up_process(vdev->ud.tcp_rx); | ||
224 | wake_up_process(vdev->ud.tcp_tx); | ||
225 | |||
226 | spin_unlock(&vdev->ud.lock); | 224 | spin_unlock(&vdev->ud.lock); |
227 | spin_unlock(&the_controller->lock); | 225 | spin_unlock(&the_controller->lock); |
228 | /* end the lock */ | 226 | /* end the lock */ |
229 | 227 | ||
228 | vdev->ud.tcp_rx = kthread_run(vhci_rx_loop, &vdev->ud, "vhci_rx"); | ||
229 | vdev->ud.tcp_tx = kthread_run(vhci_tx_loop, &vdev->ud, "vhci_tx"); | ||
230 | |||
230 | rh_port_connect(rhport, speed); | 231 | rh_port_connect(rhport, speed); |
231 | 232 | ||
232 | return count; | 233 | return count; |