# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.527 -> 1.528 # drivers/usb/serial/kl5kusb105.c 1.4 -> 1.5 # drivers/usb/serial/io_edgeport.c 1.24 -> 1.25 # drivers/usb/serial/keyspan.c 1.22 -> 1.23 # drivers/usb/serial/ftdi_sio.c 1.25 -> 1.26 # drivers/usb/serial/ipaq.c 1.4 -> 1.5 # drivers/usb/serial/visor.c 1.25 -> 1.26 # drivers/usb/serial/omninet.c 1.16 -> 1.17 # drivers/usb/serial/whiteheat.c 1.15 -> 1.16 # drivers/usb/serial/usbserial.c 1.25 -> 1.26 # drivers/usb/serial/empeg.c 1.21 -> 1.22 # drivers/usb/serial/pl2303.c 1.11 -> 1.12 # drivers/usb/serial/ir-usb.c 1.11 -> 1.12 # drivers/usb/serial/digi_acceleport.c 1.16 -> 1.17 # drivers/usb/serial/keyspan_pda.c 1.13 -> 1.14 # drivers/usb/serial/mct_u232.c 1.20 -> 1.21 # drivers/usb/serial/cyberjack.c 1.11 -> 1.12 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/03/17 ganesh@tuxtop.vxindia.veritas.com 1.528 # USB serial drivers # # Several functions in the serial drivers can be called from bottom # half or interrupt context. They must use the GFP_ATOMIC flag for # calls to kmalloc() and usb_submit_urb(). # # Functions which must use GFP_ATOMIC: # 1. All *_callback() functions. # 2. Any code which is inside a spinlock. # 3. write(), throttle(), unthrottle(), which may be called by # the line discipline in bottom half context. # # Functions which can use GFP_KERNEL: # 1. open(), close(), startup(), shutdown(), set_termios(). # -------------------------------------------- # diff -Nru a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c --- a/drivers/usb/serial/cyberjack.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/cyberjack.c Sun Mar 17 11:01:28 2002 @@ -262,7 +262,7 @@ port); /* send the data out the bulk port */ - result = usb_submit_urb(port->write_urb, GFP_KERNEL); + result = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); /* Throw away data. No better idea what to do with it. */ @@ -331,7 +331,7 @@ if( !old_rdtodo ) { port->read_urb->dev = port->serial->dev; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if( result ) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); dbg(__FUNCTION__ " - usb_submit_urb(read urb)"); @@ -387,7 +387,7 @@ /* Continue to read if we have still urbs to do. */ if( priv->rdtodo /* || (urb->actual_length==port->bulk_in_endpointAddress)*/ ) { port->read_urb->dev = port->serial->dev; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); dbg(__FUNCTION__ " - usb_submit_urb(read urb)"); @@ -440,7 +440,7 @@ port); /* send the data out the bulk port */ - result = usb_submit_urb(port->write_urb, GFP_KERNEL); + result = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); /* Throw away data. No better idea what to do with it. */ diff -Nru a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c --- a/drivers/usb/serial/digi_acceleport.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/digi_acceleport.c Sun Mar 17 11:01:28 2002 @@ -676,7 +676,7 @@ oob_port->write_urb->transfer_buffer_length = len; oob_port->write_urb->dev = port->serial->dev; - if( (ret=usb_submit_urb(oob_port->write_urb, GFP_KERNEL)) == 0 ) { + if( (ret=usb_submit_urb(oob_port->write_urb, GFP_ATOMIC)) == 0 ) { oob_priv->dp_write_urb_in_use = 1; count -= len; buf += len; @@ -764,7 +764,7 @@ } port->write_urb->dev = port->serial->dev; - if( (ret=usb_submit_urb(port->write_urb, GFP_KERNEL)) == 0 ) { + if( (ret=usb_submit_urb(port->write_urb, GFP_ATOMIC)) == 0 ) { priv->dp_write_urb_in_use = 1; priv->dp_out_buf_len = 0; count -= len; @@ -841,7 +841,7 @@ oob_port->write_urb->transfer_buffer_length = 8; oob_port->write_urb->dev = port->serial->dev; - if( (ret=usb_submit_urb(oob_port->write_urb, GFP_KERNEL)) == 0 ) { + if( (ret=usb_submit_urb(oob_port->write_urb, GFP_ATOMIC)) == 0 ) { oob_priv->dp_write_urb_in_use = 1; port_priv->dp_modem_signals = (port_priv->dp_modem_signals&~(TIOCM_DTR|TIOCM_RTS)) @@ -962,7 +962,7 @@ /* restart read chain */ if( priv->dp_throttle_restart ) { port->read_urb->dev = port->serial->dev; - ret = usb_submit_urb( port->read_urb, GFP_KERNEL ); + ret = usb_submit_urb( port->read_urb, GFP_ATOMIC ); } /* turn throttle off */ @@ -1323,7 +1323,7 @@ /* copy in new data */ memcpy( data, from_user ? user_buf : buf, new_len ); - if( (ret=usb_submit_urb(port->write_urb, GFP_KERNEL)) == 0 ) { + if( (ret=usb_submit_urb(port->write_urb, GFP_ATOMIC)) == 0 ) { priv->dp_write_urb_in_use = 1; ret = new_len; priv->dp_out_buf_len = 0; @@ -1399,7 +1399,7 @@ memcpy( port->write_urb->transfer_buffer+2, priv->dp_out_buf, priv->dp_out_buf_len ); - if( (ret=usb_submit_urb(port->write_urb, GFP_KERNEL)) == 0 ) { + if( (ret=usb_submit_urb(port->write_urb, GFP_ATOMIC)) == 0 ) { priv->dp_write_urb_in_use = 1; priv->dp_out_buf_len = 0; } @@ -1837,7 +1837,7 @@ /* continue read */ urb->dev = port->serial->dev; - if( (ret=usb_submit_urb(urb, GFP_KERNEL)) != 0 ) { + if( (ret=usb_submit_urb(urb, GFP_ATOMIC)) != 0 ) { err( __FUNCTION__ ": failed resubmitting urb, ret=%d, port=%d", ret, priv->dp_port_num ); } diff -Nru a/drivers/usb/serial/empeg.c b/drivers/usb/serial/empeg.c --- a/drivers/usb/serial/empeg.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/empeg.c Sun Mar 17 11:01:28 2002 @@ -256,7 +256,7 @@ } if (urb->transfer_buffer == NULL) { - urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL); + urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_ATOMIC); if (urb->transfer_buffer == NULL) { err(__FUNCTION__" no more kernel memory..."); goto exit; @@ -288,7 +288,7 @@ urb->transfer_flags |= USB_QUEUE_BULK; /* send it down the pipe */ - status = usb_submit_urb(urb, GFP_KERNEL); + status = usb_submit_urb(urb, GFP_ATOMIC); if (status) { err(__FUNCTION__ " - usb_submit_urb(write bulk) failed with status = %d", status); bytes_sent = status; @@ -441,7 +441,7 @@ port->read_urb->transfer_flags |= USB_QUEUE_BULK; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); @@ -466,7 +466,7 @@ port->read_urb->dev = port->serial->dev; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting read urb, error %d", result); diff -Nru a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c --- a/drivers/usb/serial/ftdi_sio.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/ftdi_sio.c Sun Mar 17 11:01:28 2002 @@ -469,7 +469,7 @@ port->write_urb->transfer_buffer, count, ftdi_sio_write_bulk_callback, port); - result = usb_submit_urb(port->write_urb, GFP_KERNEL); + result = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); return 0; @@ -631,7 +631,7 @@ port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length, ftdi_sio_read_bulk_callback, port); - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); diff -Nru a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c --- a/drivers/usb/serial/io_edgeport.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/io_edgeport.c Sun Mar 17 11:01:28 2002 @@ -790,7 +790,7 @@ /* we have pending bytes on the bulk in pipe, send a request */ edge_serial->read_urb->dev = edge_serial->serial->dev; - result = usb_submit_urb(edge_serial->read_urb, GFP_KERNEL); + result = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC); if (result) { dbg(__FUNCTION__" - usb_submit_urb(read bulk) failed with result = %d", result); } @@ -867,7 +867,7 @@ /* there is, so resubmit our urb */ edge_serial->read_urb->dev = edge_serial->serial->dev; - status = usb_submit_urb(edge_serial->read_urb, GFP_KERNEL); + status = usb_submit_urb(edge_serial->read_urb, GFP_ATOMIC); if (status) { err(__FUNCTION__" - usb_submit_urb(read bulk) failed, status = %d", status); } @@ -1435,7 +1435,7 @@ /* build the data header for the buffer and port that we are about to send out */ count = fifo->count; - buffer = kmalloc (count+2, GFP_KERNEL); + buffer = kmalloc (count+2, GFP_ATOMIC); if (buffer == NULL) { err(__FUNCTION__" - no more kernel memory..."); edge_port->write_in_progress = FALSE; @@ -1474,7 +1474,7 @@ urb->transfer_flags |= USB_QUEUE_BULK; urb->dev = edge_serial->serial->dev; - status = usb_submit_urb(urb, GFP_KERNEL); + status = usb_submit_urb(urb, GFP_ATOMIC); if (status) { /* something went wrong */ dbg(__FUNCTION__" - usb_submit_urb(write bulk) failed"); @@ -2431,7 +2431,7 @@ dbg(__FUNCTION__" - %d, %d", command, param); - buffer = kmalloc (10, GFP_KERNEL); + buffer = kmalloc (10, GFP_ATOMIC); if (!buffer) { err(__FUNCTION__" - kmalloc(%d) failed.\n", 10); return -ENOMEM; @@ -2467,7 +2467,7 @@ usb_serial_debug_data (__FILE__, __FUNCTION__, length, buffer); /* Allocate our next urb */ - urb = usb_alloc_urb (0, GFP_KERNEL); + urb = usb_alloc_urb (0, GFP_ATOMIC); if (!urb) return -ENOMEM; @@ -2482,7 +2482,7 @@ urb->transfer_flags |= USB_QUEUE_BULK; edge_port->commandPending = TRUE; - status = usb_submit_urb(urb, GFP_KERNEL); + status = usb_submit_urb(urb, GFP_ATOMIC); if (status) { /* something went wrong */ @@ -2532,7 +2532,7 @@ } // Alloc memory for the string of commands. - cmdBuffer = kmalloc (0x100, GFP_KERNEL); + cmdBuffer = kmalloc (0x100, GFP_ATOMIC); if (!cmdBuffer) { err(__FUNCTION__" - kmalloc(%d) failed.\n", 0x100); return -ENOMEM; @@ -2618,7 +2618,7 @@ dbg (__FUNCTION__" - write to %s register 0x%02x", (regNum == MCR) ? "MCR" : "LCR", regValue); // Alloc memory for the string of commands. - cmdBuffer = kmalloc (0x10, GFP_KERNEL); + cmdBuffer = kmalloc (0x10, GFP_ATOMIC); if (cmdBuffer == NULL ) { return -ENOMEM; } diff -Nru a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c --- a/drivers/usb/serial/ipaq.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/ipaq.c Sun Mar 17 11:01:28 2002 @@ -297,7 +297,7 @@ usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length, ipaq_read_bulk_callback, port); - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); return; @@ -412,7 +412,7 @@ usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress), port->write_urb->transfer_buffer, count, ipaq_write_bulk_callback, port); - result = usb_submit_urb(urb, GFP_KERNEL); + result = usb_submit_urb(urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); } diff -Nru a/drivers/usb/serial/ir-usb.c b/drivers/usb/serial/ir-usb.c --- a/drivers/usb/serial/ir-usb.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/ir-usb.c Sun Mar 17 11:01:28 2002 @@ -405,7 +405,7 @@ = USB_QUEUE_BULK | USB_ZERO_PACKET; - result = usb_submit_urb (port->write_urb, GFP_KERNEL); + result = usb_submit_urb (port->write_urb, GFP_ATOMIC); if (result) err("%s - failed submitting write urb, error %d", __FUNCTION__, result); else @@ -515,7 +515,7 @@ port->read_urb->transfer_flags = USB_QUEUE_BULK; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err("%s - failed resubmitting read urb, error %d", diff -Nru a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c --- a/drivers/usb/serial/keyspan.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/keyspan.c Sun Mar 17 11:01:28 2002 @@ -378,7 +378,7 @@ this_urb->transfer_flags &= ~USB_ASYNC_UNLINK; this_urb->dev = port->serial->dev; - if ((err = usb_submit_urb(this_urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(this_urb, GFP_ATOMIC)) != 0) { dbg("usb_submit_urb(write bulk) failed (%d)\n", err); } p_priv->tx_start_time[flip] = jiffies; @@ -436,7 +436,7 @@ /* Resubmit urb so we continue receiving */ urb->dev = port->serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } return; @@ -535,7 +535,7 @@ exit: /* Resubmit urb so we continue receiving */ urb->dev = serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } } @@ -586,7 +586,7 @@ /* Resubmit urb so we continue receiving */ urb->dev = port->serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } @@ -671,7 +671,7 @@ exit: /* Resubmit urb so we continue receiving */ urb->dev = serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } } @@ -764,7 +764,7 @@ /* Resubmit urb so we continue receiving */ urb->dev = serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } } @@ -819,7 +819,7 @@ /* Resubmit urb so we continue receiving */ urb->dev = port->serial->dev; - if ((err = usb_submit_urb(urb, GFP_KERNEL)) != 0) { + if ((err = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { dbg(__FUNCTION__ "resubmit read urb failed. (%d)\n", err); } } diff -Nru a/drivers/usb/serial/keyspan_pda.c b/drivers/usb/serial/keyspan_pda.c --- a/drivers/usb/serial/keyspan_pda.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/keyspan_pda.c Sun Mar 17 11:01:28 2002 @@ -292,7 +292,7 @@ /* just restart the receive interrupt URB */ dbg("keyspan_pda_rx_unthrottle port %d", port->number); port->interrupt_in_urb->dev = port->serial->dev; - if (usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL)) + if (usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC)) dbg(" usb_submit_urb(read urb) failed"); return; } @@ -584,7 +584,7 @@ priv->tx_room -= count; port->write_urb->dev = port->serial->dev; - rc = usb_submit_urb(port->write_urb, GFP_KERNEL); + rc = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (rc) { dbg(" usb_submit_urb(write bulk) failed"); goto exit; diff -Nru a/drivers/usb/serial/kl5kusb105.c b/drivers/usb/serial/kl5kusb105.c --- a/drivers/usb/serial/kl5kusb105.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/kl5kusb105.c Sun Mar 17 11:01:28 2002 @@ -519,7 +519,7 @@ } if (urb->transfer_buffer == NULL) { - urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL); + urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_ATOMIC); if (urb->transfer_buffer == NULL) { err(__FUNCTION__ " - no more kernel memory..."); goto exit; @@ -555,7 +555,7 @@ /* send the data out the bulk port */ - result = usb_submit_urb(urb, GFP_KERNEL); + result = usb_submit_urb(urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); @@ -721,7 +721,7 @@ port->read_urb->transfer_buffer_length, klsi_105_read_bulk_callback, port); - rc = usb_submit_urb(port->read_urb, GFP_KERNEL); + rc = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (rc) err(__FUNCTION__ " - failed resubmitting read urb, error %d", rc); @@ -1019,7 +1019,7 @@ dbg(__FUNCTION__ " - port %d", port->number); port->read_urb->dev = port->serial->dev; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting read urb, error %d", result); diff -Nru a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c --- a/drivers/usb/serial/mct_u232.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/mct_u232.c Sun Mar 17 11:01:28 2002 @@ -470,7 +470,7 @@ port); /* send the data out the bulk port */ - result = usb_submit_urb(port->write_urb, GFP_KERNEL); + result = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (result) { err(__FUNCTION__ " - failed submitting write urb, error %d", result); diff -Nru a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c --- a/drivers/usb/serial/omninet.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/omninet.c Sun Mar 17 11:01:28 2002 @@ -265,7 +265,7 @@ usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), urb->transfer_buffer, urb->transfer_buffer_length, omninet_read_bulk_callback, port); - result = usb_submit_urb(urb, GFP_KERNEL); + result = usb_submit_urb(urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); @@ -316,7 +316,7 @@ wport->write_urb->transfer_buffer_length = 64; wport->write_urb->dev = serial->dev; - result = usb_submit_urb(wport->write_urb, GFP_KERNEL); + result = usb_submit_urb(wport->write_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting write urb, error %d", result); else diff -Nru a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c --- a/drivers/usb/serial/pl2303.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/pl2303.c Sun Mar 17 11:01:28 2002 @@ -195,7 +195,7 @@ port->write_urb->transfer_buffer_length = count; port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb, GFP_KERNEL); + result = usb_submit_urb (port->write_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting write urb, error %d", result); else @@ -643,7 +643,7 @@ dbg (__FUNCTION__ " - caught -EPROTO, resubmitting the urb"); urb->status = 0; urb->dev = serial->dev; - result = usb_submit_urb(urb, GFP_KERNEL); + result = usb_submit_urb(urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); return; @@ -668,7 +668,7 @@ /* Schedule the next read _if_ we are still open */ if (port->open_count) { urb->dev = serial->dev; - result = usb_submit_urb(urb, GFP_KERNEL); + result = usb_submit_urb(urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); } @@ -697,7 +697,7 @@ dbg (__FUNCTION__ " - nonzero write bulk status received: %d", urb->status); port->write_urb->transfer_buffer_length = 1; port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb, GFP_KERNEL); + result = usb_submit_urb (port->write_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting write urb, error %d", result); diff -Nru a/drivers/usb/serial/usbserial.c b/drivers/usb/serial/usbserial.c --- a/drivers/usb/serial/usbserial.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/usbserial.c Sun Mar 17 11:01:28 2002 @@ -899,7 +899,7 @@ generic_write_bulk_callback), port); /* send the data out the bulk port */ - result = usb_submit_urb(port->write_urb, GFP_KERNEL); + result = usb_submit_urb(port->write_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting write urb, error %d", result); else @@ -989,7 +989,7 @@ ((serial->type->read_bulk_callback) ? serial->type->read_bulk_callback : generic_read_bulk_callback), port); - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); } diff -Nru a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c --- a/drivers/usb/serial/visor.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/visor.c Sun Mar 17 11:01:28 2002 @@ -344,13 +344,13 @@ dbg(__FUNCTION__ " - port %d", port->number); - buffer = kmalloc (count, GFP_KERNEL); + buffer = kmalloc (count, GFP_ATOMIC); if (!buffer) { err ("out of memory"); return -ENOMEM; } - urb = usb_alloc_urb(0, GFP_KERNEL); + urb = usb_alloc_urb(0, GFP_ATOMIC); if (!urb) { err ("no more free urbs"); kfree (buffer); @@ -377,7 +377,7 @@ urb->transfer_flags |= USB_QUEUE_BULK; /* send it down the pipe */ - status = usb_submit_urb(urb, GFP_KERNEL); + status = usb_submit_urb(urb, GFP_ATOMIC); if (status) { err(__FUNCTION__ " - usb_submit_urb(write bulk) failed with status = %d", status); count = status; @@ -491,7 +491,7 @@ port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length, visor_read_bulk_callback, port); - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed resubmitting read urb, error %d", result); return; @@ -512,7 +512,7 @@ dbg(__FUNCTION__ " - port %d", port->number); port->read_urb->dev = port->serial->dev; - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) err(__FUNCTION__ " - failed submitting read urb, error %d", result); } diff -Nru a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c --- a/drivers/usb/serial/whiteheat.c Sun Mar 17 11:01:28 2002 +++ b/drivers/usb/serial/whiteheat.c Sun Mar 17 11:01:28 2002 @@ -240,7 +240,7 @@ usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length, command_port_read_callback, port); - result = usb_submit_urb(port->read_urb, GFP_KERNEL); + result = usb_submit_urb(port->read_urb, GFP_ATOMIC); if (result) dbg(__FUNCTION__ " - failed resubmitting read urb, error %d", result); }