diff --git a/src/add-ons/kernel/drivers/network/3com/pci/glue.c b/src/add-ons/kernel/drivers/network/3com/pci/glue.c index 8f2f726962..c136a2e8a5 100644 --- a/src/add-ons/kernel/drivers/network/3com/pci/glue.c +++ b/src/add-ons/kernel/drivers/network/3com/pci/glue.c @@ -47,7 +47,7 @@ __haiku_disable_interrupts(device_t dev) CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STAT_ENB); CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_INTR_ACK | (status & XL_INTRS)); - atomic_or((int32 *)&sc->xl_intr_status, status); + atomic_set((int32 *)&sc->xl_intr_status, status); return 1; } diff --git a/src/add-ons/kernel/drivers/network/3com/pci/if_xl.c b/src/add-ons/kernel/drivers/network/3com/pci/if_xl.c index 30645bbb89..04da8f9be9 100644 --- a/src/add-ons/kernel/drivers/network/3com/pci/if_xl.c +++ b/src/add-ons/kernel/drivers/network/3com/pci/if_xl.c @@ -2289,8 +2289,8 @@ xl_intr(void *arg) #ifndef __HAIKU__ while ((status = CSR_READ_2(sc, XL_STATUS)) & XL_INTRS && status != 0xFFFF) { -#else - status = atomic_and((int32 *)&sc->xl_intr_status, 0); +#else + status = atomic_get((int32 *)&sc->xl_intr_status); while (true) { #endif if (status & XL_STAT_UP_COMPLETE) { diff --git a/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/glue.c b/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/glue.c index 39bd383d48..67079dbce0 100644 --- a/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/glue.c +++ b/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/glue.c @@ -71,7 +71,7 @@ __haiku_disable_interrupts(device_t dev) HAIKU_INTR_REGISTER_LEAVE(); - atomic_or((int32 *)&sc->sk_intstatus, status); + atomic_set((int32 *)&sc->sk_intstatus, status); return status & sc->sk_intrmask; } diff --git a/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/if_sk.c b/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/if_sk.c index 672117eef0..11375167db 100644 --- a/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/if_sk.c +++ b/src/add-ons/kernel/drivers/network/syskonnect/dev/sk/if_sk.c @@ -1815,10 +1815,6 @@ skc_attach(dev) goto fail; } - /* Hook interrupt last to avoid having to lock softc */ -#ifdef __HAIKU__ - atomic_and((int32 *)&sc->sk_intstatus, 0); -#endif error = bus_setup_intr(dev, sc->sk_res[1], INTR_TYPE_NET|INTR_MPSAFE/*|INTR_FAST*/, NULL, sk_intr, sc, &sc->sk_intrhand); @@ -3264,8 +3260,8 @@ sk_intr(xsc) #ifndef __HAIKU__ for (; (status &= sc->sk_intrmask) != 0;) { -#else - status = atomic_and((int32 *)&sc->sk_intstatus, 0); +#else + status = atomic_get((int32 *)&sc->sk_intstatus); status &= sc->sk_intrmask; while (true) {