Skip to content

Commit

Permalink
be2net: fix accesses to unicast list
Browse files Browse the repository at this point in the history
Commit 988d44b "be2net: Avoid redundant addition of mac address in HW"
introduced be_dev_mac_add & be_uc_mac_add helpers that incorrectly
access adapter->uc_list as an array of bytes instead of an array of
be_eth_addr. Consequently NIC is not filled with valid data so unicast
filtering is broken.

Cc: Sathya Perla <sathya.perla@broadcom.com>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>
Cc: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Cc: Somnath Kotur <somnath.kotur@broadcom.com>
Fixes: 988d44b be2net: Avoid redundant addition of mac address in HW
Signed-off-by: Ivan Vecera <cera@cera.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ivan Vecera authored and David S. Miller committed Jan 7, 2017
1 parent bcd5e1a commit 1d0f110
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions drivers/net/ethernet/emulex/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,8 +275,7 @@ static int be_dev_mac_add(struct be_adapter *adapter, u8 *mac)

/* Check if mac has already been added as part of uc-list */
for (i = 0; i < adapter->uc_macs; i++) {
if (ether_addr_equal((u8 *)&adapter->uc_list[i * ETH_ALEN],
mac)) {
if (ether_addr_equal(adapter->uc_list[i].mac, mac)) {
/* mac already added, skip addition */
adapter->pmac_id[0] = adapter->pmac_id[i + 1];
return 0;
Expand Down Expand Up @@ -1655,14 +1654,12 @@ static void be_clear_mc_list(struct be_adapter *adapter)

static int be_uc_mac_add(struct be_adapter *adapter, int uc_idx)
{
if (ether_addr_equal((u8 *)&adapter->uc_list[uc_idx * ETH_ALEN],
adapter->dev_mac)) {
if (ether_addr_equal(adapter->uc_list[uc_idx].mac, adapter->dev_mac)) {
adapter->pmac_id[uc_idx + 1] = adapter->pmac_id[0];
return 0;
}

return be_cmd_pmac_add(adapter,
(u8 *)&adapter->uc_list[uc_idx * ETH_ALEN],
return be_cmd_pmac_add(adapter, adapter->uc_list[uc_idx].mac,
adapter->if_handle,
&adapter->pmac_id[uc_idx + 1], 0);
}
Expand Down

0 comments on commit 1d0f110

Please sign in to comment.