DragonFly BSD
DragonFly commits List (threaded) for 2005-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/net if.c netisr.c netisr.h src/sys/netinet ip_demux.c


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Jan 2005 09:30:54 -0800 (PST)

dillon      2005/01/19 09:30:54 PST

DragonFly src repository

  Modified files:
    sys/net              if.c netisr.c netisr.h 
    sys/netinet          ip_demux.c 
  Log:
  When a PCMCIA networking card is removed the IF code may free() the network
  interface before processing has completed on pending packets, leaving a
  dangling pointer in the mbuf and causing a crash.
  
  The two solutions are to either ref-count the network interface on a
  per-packet basis or to synchronize against consumers of the packet.
  ref-counting is very expensive in an MP system so we have chosen to
  synchronize against consumers by sending a NOP message to all protocol
  processing threads and waiting for it to be replied.  This only occurs when
  an interface is being brought down and is not expected to introduce any
  performance issues.
  
  Crash-Reported-by: Jonathon McKitrick <jcm@xxxxxxxxxxxxxxxxx>
  
  Revision  Changes    Path
  1.25      +7 -2      src/sys/net/if.c
  1.23      +78 -3     src/sys/net/netisr.c
  1.21      +2 -1      src/sys/net/netisr.h
  1.30      +2 -2      src/sys/netinet/ip_demux.c


http://www.dragonflybsd.org/cvsweb/src/sys/net/if.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/net/netisr.h.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_demux.c.diff?r1=1.29&r2=1.30&f=u



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