• R/O
  • HTTP
  • SSH
  • HTTPS

linux-2.4.36: Commit

2.4.36-stable kernel tree


Commit MetaInfo

Revisionc46296338fd99b419e501384e82e87fae9a9be5a (tree)
Zeit2006-12-05 17:29:38
AutorOliver Neukum <oliver@neuk...>
CommiterWilly Tarreau

Log Message

[PATCH] task stte leak in pegasus usb driver

Hi,

this is a conservative port of a 2.6 fix for the pegasus driver which leaks
TASK_UNINTERRUPTIBLE in error cases. In case of an error the state
needs to be reset to TASK_RUNNING.

Regards
Oliver

Signed-off-by: Oliver Neukum <oliver@neukum.name>
Acked-by: Petko Manolov <petkan@nucleusys.com>

Ändern Zusammenfassung

Diff

--- a/drivers/usb/pegasus.c
+++ b/drivers/usb/pegasus.c
@@ -147,6 +147,7 @@ static int get_registers(pegasus_t * pegasus, u16 indx, u16 size,
147147 set_current_state(TASK_UNINTERRUPTIBLE);
148148
149149 if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
150+ set_current_state(TASK_RUNNING);
150151 err("%s: BAD CTRLs %d", __FUNCTION__, ret);
151152 goto out;
152153 }
@@ -197,6 +198,7 @@ static int set_registers(pegasus_t * pegasus, u16 indx, u16 size,
197198 set_current_state(TASK_UNINTERRUPTIBLE);
198199
199200 if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
201+ set_current_state(TASK_RUNNING);
200202 err("%s: BAD CTRL %d", __FUNCTION__, ret);
201203 goto out;
202204 }
@@ -244,6 +246,7 @@ static int set_register(pegasus_t * pegasus, u16 indx, u8 data)
244246 set_current_state(TASK_UNINTERRUPTIBLE);
245247
246248 if ((ret = usb_submit_urb(pegasus->ctrl_urb))) {
249+ set_current_state(TASK_RUNNING);
247250 err("%s: BAD CTRL %d", __FUNCTION__, ret);
248251 goto out;
249252 }
Show on old repository browser