libusb: dequeue next transfer on completion to prevent stalls
The transfer proxy callbacks (bulk/interrupt, control, isochronous)
only called libusb10_submit_transfer_sub() in the START path to
pipeline the second kernel transfer slot. On completion or error,
no attempt was made to dequeue the next pending transfer from
tr_head onto the now-free slot.
When more than two async transfers were submitted on the same
endpoint, the third (and subsequent) transfers would remain stuck
on tr_head indefinitely, since no completion ever triggered their
submission. This caused a protocol-level deadlock in applications
like adb that submit header + payload + zero-length terminator as
three separate bulk transfers in sequence.
Fix by calling libusb10_submit_transfer_sub() after every
libusb10_complete_transfer() in all three proxy callbacks.
MFC After: 2 weeks
[2 lines not shown]
[RISCV] Start zvlsseg-spill.mir test before regalloc. NFC
Currently this starts from the beginning of the codegen pipeline, but
because it has pseudos that directly define physical registers this
triggers an assertion in an upcoming change to RISCVVLOptimizer. In the
full pipeline a vector pseudo should only define virtual VR registers.
Move it to before regalloc to avoid the crash. It could probably be
moved further to just before prologepilog but we would need to change
the input to handle vsetvli insertion too.
[bolt][aarch64] Change indirect call instrumentation snippet (#180229)
Indirect call instrumentation snippet uses x16 register in exit handler
to go to destination target
__bolt_instr_ind_call_handler_func:
msr nzcv, x1
ldp x0, x1, [sp], #16
ldr x16, [sp], #16
ldp x0, x1, [sp], #16
br x16 <-----
This patch adds the instrumentation snippet by calling instrumentation
runtime library through indirect call instruction and adding the wrapper
to store/load target value and the register for original indirect
instruction.
Example:
mov x16, foo
[75 lines not shown]
Reapply "[libc++] Add test_iterators.h to the modulemap (#181351)"
Another test committed recently was missing an include.
This reverts commit ab88d9af5371ef62a636fc780c88cf6d3487c584.