From owner-cvs-all@FreeBSD.ORG Thu Jul 20 04:18:45 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C576616A4DA; Thu, 20 Jul 2006 04:18:45 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9729243D45; Thu, 20 Jul 2006 04:18:45 +0000 (GMT) (envelope-from yongari@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6K4Ij8A041950; Thu, 20 Jul 2006 04:18:45 GMT (envelope-from yongari@repoman.freebsd.org) Received: (from yongari@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6K4IjGJ041949; Thu, 20 Jul 2006 04:18:45 GMT (envelope-from yongari) Message-Id: <200607200418.k6K4IjGJ041949@repoman.freebsd.org> From: Pyun YongHyeon Date: Thu, 20 Jul 2006 04:18:45 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/dev/em if_em.c if_em.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Jul 2006 04:18:45 -0000 yongari 2006-07-20 04:18:45 UTC FreeBSD src repository Modified files: sys/dev/em if_em.c if_em.h Log: Since resetting hardware takes a very long time and results in link renegotiation, we only initialize the hardware only when it is absolutely required. Process SIOCGIFADDR ioctl in em(4) when we know an IPv4 address is added. Handling SIOCGIFADDR in a driver is layering violation but it seems that there is no easy way without rewritting hardware initialization code to reduce settle time after reset. This should fix a long standing bug which didn't send ARP packet when interface address is changed or an alias address is added. Another effect of this fix is it doesn't need additional delays anymore when adding an alias address to the interface. While I'm here add a new if_flags into softc which remembers current prgroammed interface flags and make use of it when we have to program promiscuous mode. Tested by: Atanas Analyzed by: rwatson Discussed with: -stable Revision Changes Path 1.119 +29 -9 src/sys/dev/em/if_em.c 1.45 +1 -0 src/sys/dev/em/if_em.h