--- linux-2.6.22.14/drivers/usb/serial/usb-serial.c 2008-01-22 14:03:10.000000000 +0200 +++ linux/drivers/usb/serial/usb-serial.c 2008-01-15 11:04:10.000000000 +0200 @@ -865,6 +865,7 @@ int usb_serial_probe(struct usb_interfac goto probe_error; } buffer_size = le16_to_cpu(endpoint->wMaxPacketSize); + if (type->max_buf_size) buffer_size = type->max_buf_size; port->bulk_in_size = buffer_size; port->bulk_in_endpointAddress = endpoint->bEndpointAddress; port->bulk_in_buffer = kmalloc (buffer_size, GFP_KERNEL);