Fixup incorrect EAGAIN handling
authormikeb <mikeb@openbsd.org>
Fri, 5 Aug 2016 18:12:48 +0000 (18:12 +0000)
committermikeb <mikeb@openbsd.org>
Fri, 5 Aug 2016 18:12:48 +0000 (18:12 +0000)
sys/dev/pv/hyperv.c

index 1e59669..1aba897 100644 (file)
@@ -1684,7 +1684,7 @@ hv_service_common(struct hv_channel *ch, uint32_t *rlen, uint64_t *rid,
        int rv;
 
        rv = hv_channel_recv(ch, ch->ch_buf, ch->ch_buflen, rlen, rid, 0);
-       if ((rv && rv != EAGAIN) || *rlen == 0)
+       if (rv || *rlen == 0)
                return (rv);
        *hdr = (struct hv_icmsg_hdr *)&ch->ch_buf[sizeof(struct hv_pipe_hdr)];
        if ((*hdr)->icmsgtype == HV_ICMSGTYPE_NEGOTIATE) {