Fix vldc(4) event filters
authorvisa <visa@openbsd.org>
Wed, 17 Aug 2022 15:26:56 +0000 (15:26 +0000)
committervisa <visa@openbsd.org>
Wed, 17 Aug 2022 15:26:56 +0000 (15:26 +0000)
Indicate non-activeness when the device is not ready for reading
or writing. This should make the event filters behave more like
the old poll code.

"makes sense to me" mpi@

sys/arch/sparc64/dev/vldcp.c

index ca48a46..0757b3f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vldcp.c,v 1.24 2022/07/10 08:33:00 visa Exp $ */
+/*     $OpenBSD: vldcp.c,v 1.25 2022/08/17 15:26:56 visa Exp $ */
 /*
  * Copyright (c) 2009, 2012 Mark Kettenis
  *
@@ -617,6 +617,7 @@ filt_vldcpread(struct knote *kn, long hint)
        } else {
                cbus_intr_setenabled(sc->sc_bustag, sc->sc_rx_ino,
                    INTR_ENABLED);
+               kn->kn_data = 0;
        }
        splx(s);
 
@@ -641,6 +642,7 @@ filt_vldcwrite(struct knote *kn, long hint)
        } else {
                cbus_intr_setenabled(sc->sc_bustag, sc->sc_tx_ino,
                    INTR_ENABLED);
+               kn->kn_data = 0;
        }
        splx(s);