Prevent the full restart cycle every time arge_start() is called. Only

(re)start the interface when it is down.  This change fix a race with
BOOTP where the response packet is lost because the interface is being
reset by a netmask change right after send the packet.

PR:		178318
Approved by:	adrian (mentor)
This commit is contained in:
Luiz Otavio O Souza 2013-08-29 12:48:12 +00:00
parent e9fb2ea069
commit 973bf10594

View File

@ -1019,7 +1019,8 @@ arge_init_locked(struct arge_softc *sc)
ARGE_LOCK_ASSERT(sc); ARGE_LOCK_ASSERT(sc);
arge_stop(sc); if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING))
return;
/* Init circular RX list. */ /* Init circular RX list. */
if (arge_rx_ring_init(sc) != 0) { if (arge_rx_ring_init(sc) != 0) {