2421 mac_link_update(Adapter->mh,
2422 Adapter->link_state);
2423 if (Adapter->link_state == LINK_STATE_UP)
2424 Adapter->reset_flag = B_FALSE;
2425 }
2426
2427 start_watchdog_timer(Adapter);
2428 }
2429 }
2430
2431 static void
2432 e1000g_init_unicst(struct e1000g *Adapter)
2433 {
2434 struct e1000_hw *hw;
2435 int slot;
2436
2437 hw = &Adapter->shared;
2438
2439 if (Adapter->init_count == 0) {
2440 /* Initialize the multiple unicast addresses */
2441 Adapter->unicst_total = MAX_NUM_UNICAST_ADDRESSES;
2442
2443 /* Workaround for an erratum of 82571 chipst */
2444 if ((hw->mac.type == e1000_82571) &&
2445 (e1000_get_laa_state_82571(hw) == B_TRUE))
2446 Adapter->unicst_total--;
2447
2448 /* VMware doesn't support multiple mac addresses properly */
2449 if (hw->subsystem_vendor_id == 0x15ad)
2450 Adapter->unicst_total = 1;
2451
2452 Adapter->unicst_avail = Adapter->unicst_total;
2453
2454 for (slot = 0; slot < Adapter->unicst_total; slot++) {
2455 /* Clear both the flag and MAC address */
2456 Adapter->unicst_addr[slot].reg.high = 0;
2457 Adapter->unicst_addr[slot].reg.low = 0;
2458 }
2459 } else {
2460 /* Workaround for an erratum of 82571 chipst */
2461 if ((hw->mac.type == e1000_82571) &&
|
2421 mac_link_update(Adapter->mh,
2422 Adapter->link_state);
2423 if (Adapter->link_state == LINK_STATE_UP)
2424 Adapter->reset_flag = B_FALSE;
2425 }
2426
2427 start_watchdog_timer(Adapter);
2428 }
2429 }
2430
2431 static void
2432 e1000g_init_unicst(struct e1000g *Adapter)
2433 {
2434 struct e1000_hw *hw;
2435 int slot;
2436
2437 hw = &Adapter->shared;
2438
2439 if (Adapter->init_count == 0) {
2440 /* Initialize the multiple unicast addresses */
2441 Adapter->unicst_total = min(hw->mac.rar_entry_count,
2442 MAX_NUM_UNICAST_ADDRESSES);
2443
2444 /* Workaround for an erratum of 82571 chipst */
2445 if ((hw->mac.type == e1000_82571) &&
2446 (e1000_get_laa_state_82571(hw) == B_TRUE))
2447 Adapter->unicst_total--;
2448
2449 /* VMware doesn't support multiple mac addresses properly */
2450 if (hw->subsystem_vendor_id == 0x15ad)
2451 Adapter->unicst_total = 1;
2452
2453 Adapter->unicst_avail = Adapter->unicst_total;
2454
2455 for (slot = 0; slot < Adapter->unicst_total; slot++) {
2456 /* Clear both the flag and MAC address */
2457 Adapter->unicst_addr[slot].reg.high = 0;
2458 Adapter->unicst_addr[slot].reg.low = 0;
2459 }
2460 } else {
2461 /* Workaround for an erratum of 82571 chipst */
2462 if ((hw->mac.type == e1000_82571) &&
|