Print this page
3492 some e1000g devices don't support 15 unicast addresses

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/e1000g/e1000g_main.c
          +++ new/usr/src/uts/common/io/e1000g/e1000g_main.c
↓ open down ↓ 2430 lines elided ↑ open up ↑
2431 2431  static void
2432 2432  e1000g_init_unicst(struct e1000g *Adapter)
2433 2433  {
2434 2434          struct e1000_hw *hw;
2435 2435          int slot;
2436 2436  
2437 2437          hw = &Adapter->shared;
2438 2438  
2439 2439          if (Adapter->init_count == 0) {
2440 2440                  /* Initialize the multiple unicast addresses */
2441      -                Adapter->unicst_total = MAX_NUM_UNICAST_ADDRESSES;
     2441 +                Adapter->unicst_total = min(hw->mac.rar_entry_count,
     2442 +                    MAX_NUM_UNICAST_ADDRESSES);
2442 2443  
2443 2444                  /* Workaround for an erratum of 82571 chipst */
2444 2445                  if ((hw->mac.type == e1000_82571) &&
2445 2446                      (e1000_get_laa_state_82571(hw) == B_TRUE))
2446 2447                          Adapter->unicst_total--;
2447 2448  
2448 2449                  /* VMware doesn't support multiple mac addresses properly */
2449 2450                  if (hw->subsystem_vendor_id == 0x15ad)
2450 2451                          Adapter->unicst_total = 1;
2451 2452  
↓ open down ↓ 4027 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX