On Wed, Jan 23, 2002 at 09:49:41PM +0530, Francis S Nazareth wrote: > > From the first chunk of 64 bytes, the length is rightly calculated as 200 > - ACL_HDR_SIZE. (195); from the header information. But when the second > packet comes, which doesn't contain an ACL header (since this is the > continuation packet); the length variable is again calculated. ( since the > second packet is also of size 64 bytes, which satisfies the condition > bluetooth->bulk_packet_pos >= ACL_HDR_SIZE.) and this will result in a > garbage value. The packet will never be submitted to the tty flip buffer, > (unless in the exceptional case, where the new length (garbage) matches > the original length.). The same case applies to any packet of length > greater than bulk read buffer size. The point is, the packet_length should > be calculated only from the first packet.
But packet_size is calculated from the start of the original buffer, not the buffer that was just read: packet_size = CHAR2INT16(bluetooth->bulk_buffer[4],bluetooth->bulk_buffer[3]); So for your senario, packet_size will still be caculated properly, right? Or am I missing something? Does your patch fix any problems that you have been seeing in the driver? thanks, greg k-h _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel