send_adb_cuda() would assume the returned value of splhigh() is the macintr
authormiod <miod@openbsd.org>
Mon, 26 Dec 2022 19:17:00 +0000 (19:17 +0000)
committermiod <miod@openbsd.org>
Mon, 26 Dec 2022 19:17:00 +0000 (19:17 +0000)
interrupt enable register; this used to be true more than 20 years ago but
the interrupt code has changed a lot since, and it is nevertheless bad
practice from md drivers to know to much about spl*() return values.

The check should become a "spl >= IPL_TTY", but management of the
adb_polling variable is good enough to need this at all.

sys/arch/macppc/dev/adb.c

index 8a351cd..b94c028 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: adb.c,v 1.48 2022/10/23 03:43:03 gkoehler Exp $       */
+/*     $OpenBSD: adb.c,v 1.49 2022/12/26 19:17:00 miod Exp $   */
 /*     $NetBSD: adb.c,v 1.6 1999/08/16 06:28:09 tsubai Exp $   */
 /*     $NetBSD: adb_direct.c,v 1.14 2000/06/08 22:10:45 tsubai Exp $   */
 
@@ -612,7 +612,7 @@ send_adb_cuda(u_char * in, u_char * buffer, void *compRout, void *data,
 
        splx(s);
 
-       if ((s & (1 << 18)) || adb_polling) /* XXX were VIA1 interrupts blocked ? */
+       if (adb_polling) /* XXX were VIA1 interrupts blocked ? */
                /* poll until byte done */
                while ((adbActionState != ADB_ACTION_IDLE) || (ADB_INTR_IS_ON)
                    || (adbWaiting == 1))