Index: sys/kern/sys_generic.c =================================================================== --- sys/kern/sys_generic.c +++ sys/kern/sys_generic.c @@ -1794,10 +1794,10 @@ */ for (;;) { selfdalloc(td, NULL); - error = sopoll(so, events, NULL, td); - /* error here is actually the ready events. */ - if (error) - return (0); + if (sopoll(so, events, NULL, td) != 0) { + error = 0; + break; + } error = seltdwait(td, asbt, precision); if (error) break;