summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/brocade/bna/bna_tx_rx.c
diff options
context:
space:
mode:
authorRasesh Mody <rmody@brocade.com>2013-05-20 10:08:02 +0000
committerDavid S. Miller <davem@davemloft.net>2013-05-20 14:07:59 -0700
commitf489a4ba769ca1d7dd4657a4f68ea93746dd669b (patch)
treed6a295e2cafd3578b0fcd0ced9217fd6ec2c38ff /drivers/net/ethernet/brocade/bna/bna_tx_rx.c
parent4b2305826ccd57a8b22d3daff543837ba27cfd43 (diff)
bna: Fix Ucast Failure Handling
Failure of the UCAST set for base mac address fails when user configures a duplicate mac address that matches that of another vNIC on the same port. The bna does not handle the ucast failure and keeps this address in cache. On disable of the vNIC, bna tries to delete the failed base mac address and the fw asserts. On failure of ucast address, mark ucast address set to false. Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/brocade/bna/bna_tx_rx.c')
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_tx_rx.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bna_tx_rx.c b/drivers/net/ethernet/brocade/bna/bna_tx_rx.c
index ea6f4a036401..57cd1bff59f1 100644
--- a/drivers/net/ethernet/brocade/bna/bna_tx_rx.c
+++ b/drivers/net/ethernet/brocade/bna/bna_tx_rx.c
@@ -711,6 +711,21 @@ bna_bfi_rxf_cfg_rsp(struct bna_rxf *rxf, struct bfi_msgq_mhdr *msghdr)
}
void
+bna_bfi_rxf_ucast_set_rsp(struct bna_rxf *rxf,
+ struct bfi_msgq_mhdr *msghdr)
+{
+ struct bfi_enet_rsp *rsp =
+ (struct bfi_enet_rsp *)msghdr;
+
+ if (rsp->error) {
+ /* Clear ucast from cache */
+ rxf->ucast_active_set = 0;
+ }
+
+ bfa_fsm_send_event(rxf, RXF_E_FW_RESP);
+}
+
+void
bna_bfi_rxf_mcast_add_rsp(struct bna_rxf *rxf,
struct bfi_msgq_mhdr *msghdr)
{