Hi,

arpintr() looks MP safe and I cannot trigger a crash with this diff.

Hrvoje, can you try it?

bluhm

Index: net/if.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/net/if.c,v
retrieving revision 1.654
diff -u -p -r1.654 if.c
--- net/if.c    27 Jun 2022 15:11:23 -0000      1.654
+++ net/if.c    27 Jun 2022 23:47:22 -0000
@@ -891,11 +891,8 @@ if_netisr(void *unused)
                atomic_clearbits_int(&netisr, n);
 
 #if NETHER > 0
-               if (n & (1 << NETISR_ARP)) {
-                       KERNEL_LOCK();
+               if (n & (1 << NETISR_ARP))
                        arpintr();
-                       KERNEL_UNLOCK();
-               }
 #endif
                if (n & (1 << NETISR_IP))
                        ipintr();

Reply via email to