Source-Changes archive

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

CVS commit: src/sys/netinet



Module Name:    src
Committed By:   tls
Date:           Thu Apr  1 00:24:41 UTC 2010

Modified Files:
        src/sys/netinet: ip_flow.c tcp_input.c

Log Message:
After discussion with ad@: it appears that KERNEL_LOCK also protects
the driver output path (that is, ifp->if_output()).  In the case of
entry through the socket code, we are fine, because pru_usrreq takes
KERNEL_LOCK.  However, there are a few other ways to cause output
which require protection:

        1) direct calls to tcp_output() in tcp_input()
        2) fast-forwarding code (ip_flow) -- protected elsewise
           against itself by the softnet lock.
        3) *Possibly* the ARP code.  I have currently persuaded
           myself that it is safe because of how it's called.
        4) Possibly the ICMP code.

This change addresses #1 and #2.


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/sys/netinet/ip_flow.c
cvs rdiff -u -r1.300 -r1.301 src/sys/netinet/tcp_input.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