Procházet zdrojové kódy

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>
Rasesh Mody před 14 roky
rodič
revize
3fb9852f98
1 změnil soubory, kde provedl 3 přidání a 2 odebrání
  1. 3 2
      drivers/net/ethernet/brocade/bna/bnad_ethtool.c

+ 3 - 2
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);
 		}
 	}