2293,2296c2293,2296
< switch (regs.rctl.rdmts()) {
< case 2: if (descLeft > .125 * regs.rdlen()) break;
< case 1: if (descLeft > .250 * regs.rdlen()) break;
< case 0: if (descLeft > .500 * regs.rdlen()) break;
---
>
> // rdmts 2->1/8, 1->1/4, 0->1/2
> int ratio = (1ULL << (regs.rctl.rdmts() + 1));
> if (descLeft * ratio <= regs.rdlen()) {
2300d2299
< break;