Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Jun 2010 23:29:24 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h
Message-ID:  <201006052329.o55NTkWQ060303@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2010-06-05 23:29:24 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/bge          if_bge.c if_bgereg.h 
  Log:
  SVN rev 208862 on 2010-06-05 23:29:24Z by yongari
  
  Fix a bug introduced in r199011. When bge(4) reuses loaded RX
  buffers it should also reinitialize RX descriptors otherwise some
  stale data could be passed to controller. This could end up with
  mbuf double free or unexpected NULL pointer dereference in upper
  stack. To fix the issue, save loaded buffer's length and
  reinitialize RX descriptors with the saved value whenever bge(4)
  reuses the loaded RX buffers.
  While I'm here, increase the number of RX buffers to 512 from 256.
  This simplifies RX buffer handling as well as giving more RX
  buffers. Controller supports just fixed number of RX buffers
  (i.e. 512) and bge(4) used to rely on hope that our CPU is fast
  enough to keep up with the controller. With this change, bge(4)
  will use 1MB for RX buffers but I don't think it would cause
  problems in these days.
  
  Reported by:    marcel
  Tested by:      marcel
  
  Revision  Changes    Path
  1.286     +49 -16    src/sys/dev/bge/if_bge.c
  1.98      +2 -0      src/sys/dev/bge/if_bgereg.h



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