fork of 9front i guess
![]() double the td abort delay and make sure the tsleep() isnt shortened by a pending note. in that case, tsleep() would raise error(Eintr); immidiately and would not sleep the requested amount potentially cauing us to release active dma memory too early! so we wrap the tsleep() call in a while(waserror()) so we will at least wait the Abortdelay amount if error is raised. also, only try to idle the still active td's. do not copy data in epio() when there was an error, theres no reason to touch user buffer in that case. for uhci, we also check that theres not more data in the buffers than requested to avoid overflowing user buffer in epio(). this should not happen but we'r paranoid. for ehci, we also halt the queue head first in aborttds(). mark the queue heads as Qfree after unlinking and remove some silly nil checks that are impossible. |
||
---|---|---|
386 | ||
68000 | ||
68020 | ||
acme | ||
adm/timezone | ||
alpha | ||
amd64 | ||
arm | ||
lib | ||
mips | ||
power | ||
power64 | ||
rc | ||
sparc | ||
sparc64 | ||
sys | ||
.hgignore |