-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Commit 13c0db5
Fix race condition in USB CDC transmit
If the Start of Frame interrupt triggers just after the call
to USB_SendSpace in USB_Send then we can get data loss.
When the first bank is full and the second partially full,
the SOF handler will release the second bank via USB_Flush.
Data is then lost due to overflow as USB_Send continues writing data
to the now-closed bank.
Fix this by re-checking the FIFO status inside LockEP, immediately before
doing the data write.
Signed-off-by: Paul Brook <paul@nowt.org>1 parent b822091 commit 13c0db5
1 file changed
+4
-1
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
290 | 290 |
| |
291 | 291 |
| |
292 | 292 |
| |
293 | - | ||
294 | 293 |
| |
295 | 294 |
| |
295 | + | ||
296 | + | ||
297 | + | ||
298 | + | ||
296 | 299 |
| |
297 | 300 |
| |
298 | 301 |
| |
|
0 commit comments