Mask off IPL flags before storing the IPL for an interrupt.
authorpatrick <patrick@openbsd.org>
Sun, 5 Mar 2023 14:45:07 +0000 (14:45 +0000)
committerpatrick <patrick@openbsd.org>
Sun, 5 Mar 2023 14:45:07 +0000 (14:45 +0000)
ok kettenis@ jmatthew@

sys/arch/arm64/dev/apldc.c
sys/arch/arm64/dev/aplpinctrl.c
sys/arch/armv7/omap/omgpio.c
sys/dev/fdt/imxgpio.c
sys/dev/fdt/rkgpio.c

index 6cd8e5a..678191d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: apldc.c,v 1.4 2022/09/16 16:30:10 robert Exp $        */
+/*     $OpenBSD: apldc.c,v 1.5 2023/03/05 14:45:07 patrick Exp $       */
 /*
  * Copyright (c) 2022 Mark Kettenis <kettenis@openbsd.org>
  *
@@ -212,7 +212,7 @@ apldc_intr_establish(void *cookie, int *cells, int ipl,
        ih = malloc(sizeof(*ih), M_DEVBUF, M_WAITOK);
        ih->ih_func = func;
        ih->ih_arg = arg;
-       ih->ih_ipl = ipl;
+       ih->ih_ipl = ipl & IPL_IRQMASK;
        ih->ih_irq = irq;
        ih->ih_name = name;
        ih->ih_level = level;
index 394b69a..e2145b0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: aplpinctrl.c,v 1.5 2022/12/06 16:07:14 kettenis Exp $ */
+/*     $OpenBSD: aplpinctrl.c,v 1.6 2023/03/05 14:45:07 patrick Exp $  */
 /*
  * Copyright (c) 2021 Mark Kettenis <kettenis@openbsd.org>
  *
@@ -337,7 +337,7 @@ aplpinctrl_intr_establish(void *cookie, int *cells, int ipl,
        ih->ih_arg = arg;
        ih->ih_irq = pin;
        ih->ih_type = type;
-       ih->ih_ipl = ipl;
+       ih->ih_ipl = ipl & IPL_IRQMASK;
        ih->ih_name = name;
        ih->ih_sc = sc;
        if (name != NULL)
index 7a3e3bc..5c94f39 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: omgpio.c,v 1.14 2021/10/24 17:52:27 mpi Exp $ */
+/* $OpenBSD: omgpio.c,v 1.15 2023/03/05 14:45:07 patrick Exp $ */
 /*
  * Copyright (c) 2007,2009 Dale Rahn <drahn@openbsd.org>
  *
@@ -671,7 +671,7 @@ omgpio_intr_establish(struct omgpio_softc *sc, unsigned int gpio, int level, int
        ih = malloc(sizeof(*ih), M_DEVBUF, M_WAITOK);
        ih->ih_func = func;
        ih->ih_arg = arg;
-       ih->ih_ipl = level;
+       ih->ih_ipl = level & IPL_IRQMASK;
        ih->ih_gpio = gpio;
        ih->ih_irq = gpio + 512;
        ih->ih_name = name;
index 86ba12b..d877cc8 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: imxgpio.c,v 1.6 2021/10/24 17:52:26 mpi Exp $ */
+/* $OpenBSD: imxgpio.c,v 1.7 2023/03/05 14:45:07 patrick Exp $ */
 /*
  * Copyright (c) 2007,2009 Dale Rahn <drahn@openbsd.org>
  * Copyright (c) 2012-2013 Patrick Wildt <patrick@blueri.se>
@@ -255,7 +255,7 @@ imxgpio_intr_establish(void *cookie, int *cells, int ipl,
        ih = malloc(sizeof(*ih), M_DEVBUF, M_WAITOK);
        ih->ih_func = func;
        ih->ih_arg = arg;
-       ih->ih_ipl = ipl;
+       ih->ih_ipl = ipl & IPL_IRQMASK;
        ih->ih_irq = irqno;
        ih->ih_name = name;
        ih->ih_level = level;
index 34c9d73..ebfad54 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: rkgpio.c,v 1.9 2023/03/04 22:54:35 kettenis Exp $     */
+/*     $OpenBSD: rkgpio.c,v 1.10 2023/03/05 14:45:07 patrick Exp $     */
 /*
  * Copyright (c) 2017 Mark Kettenis <kettenis@openbsd.org>
  * Copyright (c) 2019 Patrick Wildt <patrick@blueri.se>
@@ -321,7 +321,7 @@ rkgpio_intr_establish(void *cookie, int *cells, int ipl,
        ih = malloc(sizeof(*ih), M_DEVBUF, M_WAITOK);
        ih->ih_func = func;
        ih->ih_arg = arg;
-       ih->ih_ipl = ipl;
+       ih->ih_ipl = ipl & IPL_IRQMASK;
        ih->ih_irq = irqno;
        ih->ih_name = name;
        ih->ih_level = level;