From owner-cvs-src-old@FreeBSD.ORG  Wed Nov  4 18:20:47 2009
Return-Path: <owner-cvs-src-old@FreeBSD.ORG>
Delivered-To: cvs-src-old@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 777D41065672
	for <cvs-src-old@freebsd.org>; Wed,  4 Nov 2009 18:20:47 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
	[IPv6:2001:4f8:fff6::29])
	by mx1.freebsd.org (Postfix) with ESMTP id 652238FC1D
	for <cvs-src-old@freebsd.org>; Wed,  4 Nov 2009 18:20:47 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
	by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id nA4IKlp8071790
	for <cvs-src-old@freebsd.org>; Wed, 4 Nov 2009 18:20:47 GMT
	(envelope-from yongari@repoman.freebsd.org)
Received: (from svn2cvs@localhost)
	by repoman.freebsd.org (8.14.3/8.14.3/Submit) id nA4IKl8l071789
	for cvs-src-old@freebsd.org; Wed, 4 Nov 2009 18:20:47 GMT
	(envelope-from yongari@repoman.freebsd.org)
Message-Id: <200911041820.nA4IKl8l071789@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to
	yongari@repoman.freebsd.org using -f
From: Pyun YongHyeon <yongari@FreeBSD.org>
Date: Wed, 4 Nov 2009 18:20:31 +0000 (UTC)
To: cvs-src-old@freebsd.org
X-FreeBSD-CVS-Branch: RELENG_7
Subject: cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h
X-BeenThere: cvs-src-old@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: **OBSOLETE** CVS commit messages for the src tree
	<cvs-src-old.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src-old>,
	<mailto:cvs-src-old-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/cvs-src-old>
List-Post: <mailto:cvs-src-old@freebsd.org>
List-Help: <mailto:cvs-src-old-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src-old>,
	<mailto:cvs-src-old-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2009 18:20:47 -0000

yongari     2009-11-04 18:20:31 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/dev/fxp          if_fxp.c if_fxpvar.h 
  Log:
  SVN rev 198917 on 2009-11-04 18:20:31Z by yongari
  
  MFC r194573:
    Overhaul fxp(4) multicast filter programming. fxp(4) hardwares do
    not allow multicast filter programming when controller is busy to
    send/receive frames. So it used to mark need_mcsetup bit and defer
    multicast filter programming until controller becomes idle state.
    To detect when the controller is idle fxp(4) relied on Tx
    completion interrupt with NOP command and fxp_start_body and
    fxp_intr_body had to see whether pending multicast filter
    programming was requested. This resulted in very complex logic and
    sometimes it did not work as expected.
    Since the controller should be in idle state before any multicast
    filter modifications I changed it to reinitialize the controller
    whenever multicast filter programming is required. This is the same
    way what OpenBSD and NetBSD does. Also I added IFF_DRV_RUNNING
    check in ioctl handler so controller would be reinitialized only if
    it is absolutely needed.
    With this change I guess we can remove fxp(4) DELAY hack in ifioctl
    for IPv6 case.
  
  Revision    Changes    Path
  1.266.2.21  +37 -132   src/sys/dev/fxp/if_fxp.c
  1.40.2.8    +1 -2      src/sys/dev/fxp/if_fxpvar.h