#1153010 pxelinux: UNDI resource retries can starve the polling thread

Package:
syslinux
Source:
syslinux
Description:
collection of bootloaders (DOS FAT and NTFS bootloader)
Submitter:
Gianluigi Tiesi
Date:
2026-11-04 11:47:02 UTC
Severity:
normal
#1153010#5
Date:
2026-11-04 11:44:44 UTC
From:
To:
undi_transmit() retries PXENV_STATUS_OUT_OF_RESOURCES without blocking.
In polling mode, its higher-priority thread can prevent the polling thread
from running to reclaim transmit buffers. Other transmit failures are
also incorrectly reported as successful.

Reproduced in QEMU by returning OUT_OF_RESOURCES until the next UNDI ISR
call: the old loop stalls. Blocking briefly between bounded retries lets
the poll run and the transfer complete. Persistent failures return ERR_MEM;
other failures return ERR_IF. This cannot interrupt a stuck firmware call.

Patch: 0023-lpxelinux-bound-undi-tx-retries.patch
AI assistance was used for debugging, the patch and this report.