diff options
| author | Ryan Wendland <[email protected]> | 2022-06-04 22:49:07 +0930 |
|---|---|---|
| committer | Ryan Wendland <[email protected]> | 2023-02-18 10:24:21 +1030 |
| commit | f87262185ec64e6ad616972720a72ffed65708ac (patch) | |
| tree | 741f46adb01121dbee3bb70fe39b13ad022a6714 /src | |
| parent | cc9c3feeaee69b369aea4fb4f70e4f0fb1033990 (diff) | |
ohci: Set skip on ed prior to removal
Diffstat (limited to 'src')
| -rw-r--r-- | src/portable/ohci/ohci.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/portable/ohci/ohci.c b/src/portable/ohci/ohci.c index 59ffd2725..d51b9a883 100644 --- a/src/portable/ohci/ohci.c +++ b/src/portable/ohci/ohci.c @@ -377,12 +377,16 @@ static void ed_list_remove_by_addr(ohci_ed_t * p_head, uint8_t dev_addr) if (ed->dev_addr == dev_addr) { + //Prevent Host Controller from processing this ED while we remove it + ed->skip = 1; + // unlink ed p_prev->next = ed->next; // point the removed ED's next pointer to list head to make sure HC can always safely move away from this ED ed->next = (uint32_t) p_head; ed->used = 0; + ed->skip = 0; continue; } |
