summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/ssh-agent.c
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2017-01-04 01:47:32 +0000
committerdlg <dlg@openbsd.org>2017-01-04 01:47:32 +0000
commit30af9693212364d96d1aa460e7246e8293a1f7a7 (patch)
treecf78795bede5b0c43c4d3e9513ad70741cdc5d0b /usr.bin/ssh/ssh-agent.c
parentunifdef CPU_XSCALE_PXA2X0, ARM_MMU_XSCALE, ARM_MMU_GENERIC (armv3) (diff)
downloadwireguard-openbsd-30af9693212364d96d1aa460e7246e8293a1f7a7.tar.xz
wireguard-openbsd-30af9693212364d96d1aa460e7246e8293a1f7a7.zip
better handle empty or full rx rings.
currently re appears to end up spinning on landisk. the most obvious cause of this would be an inability to add entries on the rx ring when we run out of mbufs. cope with this by calling rxeof from the isr when the FIFO_OVERFLOW status bit is set. rxeof in turn unconditionally tries to fill the rx ring, even if it doesnt dequeue any packets off the ring. while here limit the number of entries that can go on the rx ring to 1 less than the size of the ring. a full ring looks the same as an empty ring (cos the producer and consumer are the same in both cases), so avoid letting this happen. ok deraadt@ who hit problems on his landisk and tested this diff
Diffstat (limited to 'usr.bin/ssh/ssh-agent.c')
0 files changed, 0 insertions, 0 deletions