Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Feb 2006 11:38:19 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/netinet ip_dummynet.c
Message-ID:  <200602031138.k13BcK09081443@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
glebius     2006-02-03 11:38:19 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          ip_dummynet.c 
  Log:
  Dropping the lock in the transmit_event() is not safe, because we
  store some pipe pointers on stack. If user reconfigures dummynet
  in the interlock gap, we can work with freed pipes after relock.
  
  To fix this, we decided not to send packets in transmit_event(),
  but fill a queue. At the end of dummynet() and dummynet_io(),
  after the lock is dropped, if there is something in the queue
  we run dummynet_send() to process the queue.
  
  In collaboration with:  ru
  
  Revision  Changes    Path
  1.98      +115 -94   src/sys/netinet/ip_dummynet.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602031138.k13BcK09081443>