DragonFly- master sys/kern uipc_msg.c uipc_socket.c sys/netinet tcp_syncache.c sys/sys socketops.h socketvar.h

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Fri Jan 30 22:31:00 PST 2009

commit fd86a41c7ed1881bb55e1ad5c825daf2f245a8b6
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date:   Thu Jan 22 17:13:20 2009 +0800

    syncache_socket(): fix abort path by calling pru_abort directly
    On syncache_socket() abort path, the inp's {fport,lport,faddr,laddr}
    is either incomplete or half destroyed, which causes tcp_soport()
    mapping the socket to a wrong CPU.  However, in syncache code, inp
    is only accessed or created by its owner CPU, i.e. we are already on
    the inp's owner CPU during the socket aborting.
    Add soabort_oncpu(), which calls pru_abort directly.  Use it on
    syncache_socket() abort path.

Summary of changes:
 sys/kern/uipc_msg.c        |   12 ++++++++++++
 sys/kern/uipc_socket.c     |    9 +++++++++
 sys/netinet/tcp_syncache.c |    2 +-
 sys/sys/socketops.h        |    1 +
 sys/sys/socketvar.h        |    1 +
 5 files changed, 24 insertions(+), 1 deletions(-)


DragonFly BSD source repository

More information about the Commits mailing list