Missing USB packet sometimes

Hi, I’ve got a problem that looks like a received USB packet gets
skipped/overwritten sometimes. In my driver, on receiving from the
interrupt in endpoint, I expect to see the following sequence:

0e fc 01 14 0c 00 41 20 76 65 72 79 20 6c 6f 6e
67 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 20 55
53 42 20 77 69 74 68 00 00 …

Instead I sometimes see the following:

67 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 20 55
53 42 20 77 69 74 68 00 00 00 00 00 00 00 00 00
00 00 …

or

67 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 20 55
67 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 20 55
00 00 …

I’ve truncated a bunch of trailing zeros in both sequences. Note that the
second sequence either skips the first packet, or duplicates the second one.
These sequences are the raw data as received from the callback registered
via the usbd_setup_interrupt, usbd_io pair of functions. The USB packets
received up to this point are OK.

I’m running on the Total 5200 platform:

QNX localhost 6.3.0 2004/10/28-16:27:20UTC MGT5200 ppcbe

I’m wondering if there could be something amiss in the lower layers, or if
I’m mishandling the USB callback function. Thanks in advance for any help,

Todd Malsbary
Software Engineer
Open Interface