USB: pegasus error path not resetting task's state
there is an error path in the pegasus driver which can leave the task in TASK_UNINTERRUPTIBLE. Depending on when it schedules next, this can be bad. Signed-off-by: Oliver Neukum <oliver@neukum.name> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
9aa742ef7c
commit
10c8211c63
1 changed files with 1 additions and 0 deletions
|
@ -163,6 +163,7 @@ static int get_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
|
|||
|
||||
/* using ATOMIC, we'd never wake up if we slept */
|
||||
if ((ret = usb_submit_urb(pegasus->ctrl_urb, GFP_ATOMIC))) {
|
||||
set_current_state(TASK_RUNNING);
|
||||
if (ret == -ENODEV)
|
||||
netif_device_detach(pegasus->net);
|
||||
if (netif_msg_drv(pegasus))
|
||||
|
|
Reference in a new issue