Data loss when sending to native USB port (SerialUSB)

I've modified my code so that readBytes now also uses the multi-byte read and now Paul Stoffregen's benchmark will run as intended. Here are the results:

~/arduino/sketchbook/usb_serial_receive/host_software$ ./receive_test /dev/ttyACM0 
port /dev/ttyACM0 opened
ignoring startup buffering...
ignoring startup buffering...
ignoring startup buffering...
ignoring startup buffering...
ignoring startup buffering...
Bytes per second = 7385524
Bytes per second = 7273609
Bytes per second = 7414731
Bytes per second = 7309051
Bytes per second = 7339450
Bytes per second = 7260407
Bytes per second = 7387343
Bytes per second = 7384615
Bytes per second = 7293946
Bytes per second = 7390073
Bytes per second = 7265682
Bytes per second = 7386434
Bytes per second = 7385524
Bytes per second = 7275373
Bytes per second = 7384615
Average bytes per second = 7342425

$) $) $) $) $)
I've reattached the 3 files that need to be changed (in the arduino/hardware/arduino/sam/cores/arduino/USB directory)

USBAPI.h (7.07 KB)

CDC.cpp (7.83 KB)

USBCore.cpp (22.7 KB)