cvs commit: src/sys/kern uipc_mbuf.c

From: Randall Stewart <rrs_at_FreeBSD.org>
Date: Thu, 21 Sep 2006 09:55:43 +0000 (UTC)
rrs         2006-09-21 09:55:43 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             uipc_mbuf.c 
  Log:
  atomic_fetchadd_int is used by mb_free_ext(), but it
  returns the previous value that the "add" effected (In
  this case we are adding -1), afterwhich we compare it
  to '0'... to see if we free the mbuf... we should
  be comparing it to '1'... Note that this only effects
  when there is contention since there is a first part
  to the comparison that checks to see if its '1'. So
  this bug would only crop up if two CPU's are trying
  to free the same mbuf refcount at the same time. This
  will happen in SCTP but I doubt can happen in TCP or
  UDP.
  PR:             N/A
  Submitted by:   rrs
  Reviewed by:    gnn,sam
  Approved by:    gnn,sam
  
  Revision  Changes    Path
  1.167     +1 -1      src/sys/kern/uipc_mbuf.c
Received on Thu Sep 21 2006 - 09:55:46 UTC