.. | .. |
---|
12 | 12 | #include "igb.h" |
---|
13 | 13 | |
---|
14 | 14 | static s32 igb_set_default_fc(struct e1000_hw *hw); |
---|
15 | | -static s32 igb_set_fc_watermarks(struct e1000_hw *hw); |
---|
| 15 | +static void igb_set_fc_watermarks(struct e1000_hw *hw); |
---|
16 | 16 | |
---|
17 | 17 | /** |
---|
18 | 18 | * igb_get_bus_info_pcie - Get PCIe bus information |
---|
.. | .. |
---|
166 | 166 | * @vlan: VLAN id to add or remove |
---|
167 | 167 | * @vind: VMDq output index that maps queue to VLAN id |
---|
168 | 168 | * @vlan_on: if true add filter, if false remove |
---|
| 169 | + * @vlvf_bypass: skip VLVF if no match is found |
---|
169 | 170 | * |
---|
170 | 171 | * Sets or clears a bit in the VLAN filter table array based on VLAN id |
---|
171 | 172 | * and if we are adding or removing the filter |
---|
.. | .. |
---|
425 | 426 | static u32 igb_hash_mc_addr(struct e1000_hw *hw, u8 *mc_addr) |
---|
426 | 427 | { |
---|
427 | 428 | u32 hash_value, hash_mask; |
---|
428 | | - u8 bit_shift = 0; |
---|
| 429 | + u8 bit_shift = 1; |
---|
429 | 430 | |
---|
430 | 431 | /* Register count multiplied by bits per register */ |
---|
431 | 432 | hash_mask = (hw->mac.mta_reg_count * 32) - 1; |
---|
.. | .. |
---|
433 | 434 | /* For a mc_filter_type of 0, bit_shift is the number of left-shifts |
---|
434 | 435 | * where 0xFF would still fall within the hash mask. |
---|
435 | 436 | */ |
---|
436 | | - while (hash_mask >> bit_shift != 0xFF) |
---|
| 437 | + while (hash_mask >> bit_shift != 0xFF && bit_shift < 4) |
---|
437 | 438 | bit_shift++; |
---|
438 | 439 | |
---|
439 | 440 | /* The portion of the address that is used for the hash table |
---|
.. | .. |
---|
687 | 688 | |
---|
688 | 689 | wr32(E1000_FCTTV, hw->fc.pause_time); |
---|
689 | 690 | |
---|
690 | | - ret_val = igb_set_fc_watermarks(hw); |
---|
| 691 | + igb_set_fc_watermarks(hw); |
---|
691 | 692 | |
---|
692 | 693 | out: |
---|
693 | 694 | |
---|
.. | .. |
---|
723 | 724 | * flow control XON frame transmission is enabled, then set XON frame |
---|
724 | 725 | * tansmission as well. |
---|
725 | 726 | **/ |
---|
726 | | -static s32 igb_set_fc_watermarks(struct e1000_hw *hw) |
---|
| 727 | +static void igb_set_fc_watermarks(struct e1000_hw *hw) |
---|
727 | 728 | { |
---|
728 | | - s32 ret_val = 0; |
---|
729 | 729 | u32 fcrtl = 0, fcrth = 0; |
---|
730 | 730 | |
---|
731 | 731 | /* Set the flow control receive threshold registers. Normally, |
---|
.. | .. |
---|
747 | 747 | } |
---|
748 | 748 | wr32(E1000_FCRTL, fcrtl); |
---|
749 | 749 | wr32(E1000_FCRTH, fcrth); |
---|
750 | | - |
---|
751 | | - return ret_val; |
---|
752 | 750 | } |
---|
753 | 751 | |
---|
754 | 752 | /** |
---|