.. | .. |
---|
426 | 426 | static u32 igb_hash_mc_addr(struct e1000_hw *hw, u8 *mc_addr) |
---|
427 | 427 | { |
---|
428 | 428 | u32 hash_value, hash_mask; |
---|
429 | | - u8 bit_shift = 0; |
---|
| 429 | + u8 bit_shift = 1; |
---|
430 | 430 | |
---|
431 | 431 | /* Register count multiplied by bits per register */ |
---|
432 | 432 | hash_mask = (hw->mac.mta_reg_count * 32) - 1; |
---|
.. | .. |
---|
434 | 434 | /* For a mc_filter_type of 0, bit_shift is the number of left-shifts |
---|
435 | 435 | * where 0xFF would still fall within the hash mask. |
---|
436 | 436 | */ |
---|
437 | | - while (hash_mask >> bit_shift != 0xFF) |
---|
| 437 | + while (hash_mask >> bit_shift != 0xFF && bit_shift < 4) |
---|
438 | 438 | bit_shift++; |
---|
439 | 439 | |
---|
440 | 440 | /* The portion of the address that is used for the hash table |
---|