Staging: usbip: usbip_start_threads(): handle kernel_thread failure
kernel_thread may fail, notice this. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e48d94dac7
commit
05d6d677ab
1 changed files with 14 additions and 2 deletions
|
@ -406,8 +406,20 @@ void usbip_start_threads(struct usbip_device *ud)
|
|||
/*
|
||||
* threads are invoked per one device (per one connection).
|
||||
*/
|
||||
kernel_thread(usbip_thread, (void *)&ud->tcp_rx, 0);
|
||||
kernel_thread(usbip_thread, (void *)&ud->tcp_tx, 0);
|
||||
int retval;
|
||||
|
||||
retval = kernel_thread(usbip_thread, (void *)&ud->tcp_rx, 0);
|
||||
if (retval < 0) {
|
||||
printk(KERN_ERR "Creating tcp_rx thread for ud %p failed.\n",
|
||||
ud);
|
||||
return;
|
||||
}
|
||||
retval = kernel_thread(usbip_thread, (void *)&ud->tcp_tx, 0);
|
||||
if (retval < 0) {
|
||||
printk(KERN_ERR "Creating tcp_tx thread for ud %p failed.\n",
|
||||
ud);
|
||||
return;
|
||||
}
|
||||
|
||||
/* confirm threads are starting */
|
||||
wait_for_completion(&ud->tcp_rx.thread_done);
|
||||
|
|
Loading…
Reference in a new issue