cvs commit: src/sys/net if_ethersubr.c

Kip Macy kmacy at FreeBSD.org
Wed Mar 19 22:35:03 PDT 2008


kmacy       2008-03-20 05:35:02 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_ethersubr.c 
  Log:
  Don't re-initialize the interface if it is already running.
  
  This one line change makes the following code found in many ethernet device drivers
  (at least em, igb, ixgbe, and cxgb) gratuitous
  
          case SIOCSIFADDR:
                  if (ifa->ifa_addr->sa_family == AF_INET) {
                          /*
                           * XXX
                           * Since resetting hardware takes a very long time
                           * and results in link renegotiation we only
                           * initialize the hardware only when it is absolutely
                           * required.
                           */
                          ifp->if_flags |= IFF_UP;
                          if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
                                  EM_CORE_LOCK(adapter);
                                  em_init_locked(adapter);
                                  EM_CORE_UNLOCK(adapter);
                          }
                          arp_ifinit(ifp, ifa);
                  } else
                          error = ether_ioctl(ifp, command, data);
                  break;
  
  Revision  Changes    Path
  1.242     +2 -1      src/sys/net/if_ethersubr.c


More information about the cvs-src mailing list