aboutsummaryrefslogtreecommitdiff
path: root/contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h
diff options
context:
space:
mode:
authorPatrick Tudor <ptudor@ptudor.net>2026-11-04 18:41:37 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2026-11-04 19:12:09 +0000
commite9e4115a0bb41416bf5e1277627fc6c565073972 (patch)
tree22edd47b651f2f9daae6fe56e620e7092297fbcb /contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h
parentb61024d6efe6c5d9da1f31ad24884bd70e3300e2 (diff)
cp2112: Check status errors and bound I2C waitsHEADmain
A USB error during an I2C transfer can leave `cp2112(4)` blocked indefinitely, preventing USB detach and even reboot from completing. `cp2112iic_check_req_status()` uses the status response without checking whether the exchange succeeded. A failed exchange can therefore reuse a stale busy response and retry indefinitely. The output callback also records an error without marking the transfer done, causing its waiter to sleep again. Check the exchange result before using the response, and mark failed output transfers complete. Use absolute deadlines based on `USB_DEFAULT_TIMEOUT` (five seconds) for output and input condition-variable waits, and stop repeated busy status responses after the status loop's own deadline. Clear pending input state when the paired output request fails. These are per-wait and status-loop bounds; they do not impose a single five-second limit on the entire I2C operation. Add `HQ_HID_IGNORE` entries for both VID/PID pairs matched by `cp2112`, so `usbhid` does not claim the interface ahead of the bridge driver. Define `LUMANATE` in `usbdevs` and use `USB_VENDOR_LUMANATE` for the existing `0x1009` entry in both device tables. PR: 300017 Related hardware testing: https://reviews.freebsd.org/D60989, the RNG90 I2C slave driver. This controller fix applies independently of that driver. Reviewed by: wulf, adrian Differential Revision: https://reviews.freebsd.org/D61065 Event: NetApp/Vendor Summit Hackathon 202611
Diffstat (limited to 'contrib/processor-trace/libipt/internal/include/pt_image_section_cache.h')
0 files changed, 0 insertions, 0 deletions