diff options
author | Rasesh Mody <rmody@brocade.com> | 2011-09-16 17:06:47 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-09-17 06:47:57 +0200 |
commit | 3fb9852f98ffb4cdd3bad6eb50b1a6d58cee1298 (patch) | |
tree | 89d2d7fef55023e6c5c670b66804980710a95f66 /drivers/net/ethernet/brocade | |
parent | bna: Semaphore Lock Fix (diff) | |
download | linux-3fb9852f98ffb4cdd3bad6eb50b1a6d58cee1298.tar.xz linux-3fb9852f98ffb4cdd3bad6eb50b1a6d58cee1298.zip |
bna: Set Ring Param Fix
When Rx queue size is changed, queues are torn down and setup with the new queue
size. During this operation, clear promiscuous mode and restore the original
VLAN filter.
Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/brocade')
-rw-r--r-- | drivers/net/ethernet/brocade/bna/bnad_ethtool.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c index 48422244397c..ac6b49561bf0 100644 --- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c +++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c @@ -471,16 +471,17 @@ bnad_set_ringparam(struct net_device *netdev, current_err = bnad_setup_rx(bnad, i); if (current_err && !err) err = current_err; - if (!err) - bnad_restore_vlans(bnad, i); } if (!err && bnad->rx_info[0].rx) { /* restore rx configuration */ + bnad_restore_vlans(bnad, 0); bnad_enable_default_bcast(bnad); spin_lock_irqsave(&bnad->bna_lock, flags); bnad_mac_addr_set_locked(bnad, netdev->dev_addr); spin_unlock_irqrestore(&bnad->bna_lock, flags); + bnad->cfg_flags &= ~(BNAD_CF_ALLMULTI | + BNAD_CF_PROMISC); bnad_set_rx_mode(netdev); } } |