Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b79cc26 authored by Oliver Neukum's avatar Oliver Neukum Committed by Greg Kroah-Hartman
Browse files

USB: unkill cxacru atm driver



it seems like you overdid it a bit in your quest to clean up the
use of urb->status. In this driver you read it the first thing, which
means that you are in a race against URB completion you'll
usually lose, returning -EINPROGRESS. This kills the driver.

Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 04cab132
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -456,7 +456,6 @@ static int cxacru_start_wait_urb(struct urb *urb, struct completion *done,
				 int* actual_length)
				 int* actual_length)
{
{
	struct timer_list timer;
	struct timer_list timer;
	int status = urb->status;


	init_timer(&timer);
	init_timer(&timer);
	timer.expires = jiffies + msecs_to_jiffies(CMD_TIMEOUT);
	timer.expires = jiffies + msecs_to_jiffies(CMD_TIMEOUT);
@@ -468,7 +467,7 @@ static int cxacru_start_wait_urb(struct urb *urb, struct completion *done,


	if (actual_length)
	if (actual_length)
		*actual_length = urb->actual_length;
		*actual_length = urb->actual_length;
	return status;
	return urb->status; /* must read status after completion */
}
}


static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,
static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm,