Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/net

Module Name:    src
Committed By:   ozaki-r
Date:           Mon May 14 02:55:03 UTC 2018

Modified Files:
        src/sys/net: bpf.c if.c if_bridge.c

Log Message:
Protect packet input routines with KERNEL_LOCK and splsoftnet

if_input, i.e, ether_input and friends, now runs in softint without any
protections.  It's ok for ether_input itself because it's already MP-safe,
however, subsequent routines called from it such as carp_input and agr_input
aren't safe because they're not MP-safe.  Protect if_input with KERNEL_LOCK.

if_input can be called from a normal LWP context.  In that case we need to
prevent interrupts (softint) from running by splsoftnet to protect non-MP-safe
codes (e.g., carp_input and agr_input).

Pointed out by mlelstv@

To generate a diff of this commit:
cvs rdiff -u -r1.223 -r1.224 src/sys/net/bpf.c
cvs rdiff -u -r1.421 -r1.422 src/sys/net/if.c
cvs rdiff -u -r1.154 -r1.155 src/sys/net/if_bridge.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index