| .. | .. |
|---|
| 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 |
|---|