Module Name: src Committed By: ozaki-r Date: Wed Dec 6 09:54:47 UTC 2017
Modified Files: src/sys/net: if.c src/sys/netinet: ip_carp.c Log Message: Make if_link_queue MP-safe if IFEF_MPSAFE if_link_queue is a queue to store events of link state changes, which is used to pass events from (typically) an interrupt handler to if_link_state_change softint. The queue was protected by KERNEL_LOCK so far, but if IFEF_MPSAFE is enabled, it becomes unsafe because (perhaps) an interrupt handler of an interface with IFEF_MPSAFE doesn't take KERNEL_LOCK. Protect it by a spin mutex. Additionally with this change KERNEL_LOCK of if_link_state_change softint is omitted if NET_MPSAFE is enabled. Note that the spin mutex is now ifp->if_snd.ifq_lock as well as the case of if_timer (see the comment). To generate a diff of this commit: cvs rdiff -u -r1.405 -r1.406 src/sys/net/if.c cvs rdiff -u -r1.93 -r1.94 src/sys/netinet/ip_carp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.