USB: serial: fix up urb->status usage

Some of the usb-serial drivers are starting to use urb->status in ways
they should not be doing.  This fixes up some of them to prevent that.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Greg Kroah-Hartman
2008-12-10 16:00:30 -08:00
parent 6013bbbab0
commit 50de36f7af
6 changed files with 68 additions and 65 deletions

View File

@@ -190,10 +190,12 @@ static void iuu_rxcmd(struct urb *urb)
{
struct usb_serial_port *port = urb->context;
int result;
int status = urb->status;
dbg("%s - enter", __func__);
if (urb->status) {
dbg("%s - urb->status = %d", __func__, urb->status);
if (status) {
dbg("%s - status = %d", __func__, status);
/* error stop all */
return;
}
@@ -245,10 +247,12 @@ static void iuu_update_status_callback(struct urb *urb)
struct usb_serial_port *port = urb->context;
struct iuu_private *priv = usb_get_serial_port_data(port);
u8 *st;
int status = urb->status;
dbg("%s - enter", __func__);
if (urb->status) {
dbg("%s - urb->status = %d", __func__, urb->status);
if (status) {
dbg("%s - status = %d", __func__, status);
/* error stop all */
return;
}
@@ -274,9 +278,9 @@ static void iuu_status_callback(struct urb *urb)
{
struct usb_serial_port *port = urb->context;
int result;
dbg("%s - enter", __func__);
int status = urb->status;
dbg("%s - urb->status = %d", __func__, urb->status);
dbg("%s - status = %d", __func__, status);
usb_fill_bulk_urb(port->read_urb, port->serial->dev,
usb_rcvbulkpipe(port->serial->dev,
port->bulk_in_endpointAddress),
@@ -618,11 +622,12 @@ static void read_buf_callback(struct urb *urb)
struct usb_serial_port *port = urb->context;
unsigned char *data = urb->transfer_buffer;
struct tty_struct *tty;
dbg("%s - urb->status = %d", __func__, urb->status);
int status = urb->status;
if (urb->status) {
dbg("%s - urb->status = %d", __func__, urb->status);
if (urb->status == -EPROTO) {
dbg("%s - status = %d", __func__, status);
if (status) {
if (status == -EPROTO) {
/* reschedule needed */
}
return;
@@ -695,7 +700,7 @@ static void iuu_uart_read_callback(struct urb *urb)
struct usb_serial_port *port = urb->context;
struct iuu_private *priv = usb_get_serial_port_data(port);
unsigned long flags;
int status;
int status = urb->status;
int error = 0;
int len = 0;
unsigned char *data = urb->transfer_buffer;
@@ -703,8 +708,8 @@ static void iuu_uart_read_callback(struct urb *urb)
dbg("%s - enter", __func__);
if (urb->status) {
dbg("%s - urb->status = %d", __func__, urb->status);
if (status) {
dbg("%s - status = %d", __func__, status);
/* error stop all */
return;
}
@@ -782,12 +787,11 @@ static void read_rxcmd_callback(struct urb *urb)
{
struct usb_serial_port *port = urb->context;
int result;
dbg("%s - enter", __func__);
int status = urb->status;
dbg("%s - urb->status = %d", __func__, urb->status);
dbg("%s - status = %d", __func__, status);
if (urb->status) {
dbg("%s - urb->status = %d", __func__, urb->status);
if (status) {
/* error stop all */
return;
}