Commit 5a3eb620 authored by Peter Grehan's avatar Peter Grehan
Browse files

igc: correctly update RCTL when changing multicast filters.

Fix clearing of bits in RCTL for the non-bpf/non-allmulti case.
Update RCTL after modifying the multicast filter registers as per
the Linux driver.

This fixes LACP on igc interfaces, where incoming LACP multicasti
control packets were being dropped.

Reviewed by:	kbowling
Obtained from:	Rubicon Communications, LLC ("Netgate")
MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D32574
parent 3dc7a189
......@@ -1172,12 +1172,12 @@ igc_if_multi_set(if_ctx_t ctx)
reg_rctl |= IGC_RCTL_MPE;
reg_rctl &= ~IGC_RCTL_UPE;
} else
reg_rctl = ~(IGC_RCTL_UPE | IGC_RCTL_MPE);
IGC_WRITE_REG(&adapter->hw, IGC_RCTL, reg_rctl);
reg_rctl &= ~(IGC_RCTL_UPE | IGC_RCTL_MPE);
if (mcnt < MAX_NUM_MULTICAST_ADDRESSES)
igc_update_mc_addr_list(&adapter->hw, mta, mcnt);
IGC_WRITE_REG(&adapter->hw, IGC_RCTL, reg_rctl);
}
/*********************************************************************
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment