diff options
Diffstat (limited to 'drivers/usb/serial/digi_acceleport.c')
-rw-r--r-- | drivers/usb/serial/digi_acceleport.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c index 565644765..b1435bbd0 100644 --- a/drivers/usb/serial/digi_acceleport.c +++ b/drivers/usb/serial/digi_acceleport.c @@ -1282,12 +1282,10 @@ priv->dp_port_num, count, from_user, in_interrupt() ); || priv->dp_write_urb_in_use ) { /* buffer data if count is 1 (probably put_char) if possible */ - if( count == 1 ) { - new_len = MIN( count, - DIGI_OUT_BUF_SIZE-priv->dp_out_buf_len ); - memcpy( priv->dp_out_buf+priv->dp_out_buf_len, buf, - new_len ); - priv->dp_out_buf_len += new_len; + if( count == 1 && priv->dp_out_buf_len < DIGI_OUT_BUF_SIZE ) { + priv->dp_out_buf[priv->dp_out_buf_len++] + = *(from_user ? user_buf : buf); + new_len = 1; } else { new_len = 0; } |