]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/qlge/qlge_main.c
drivers/net/qlge: Remove unnecessary casts of netdev_priv
[net-next-2.6.git] / drivers / net / qlge / qlge_main.c
index ba0053d8515e24096854ee7cb7a07e99da32617b..d9a76260880b6d8e8c21ba815ba42f7ed04fdece 100644 (file)
@@ -94,6 +94,9 @@ static DEFINE_PCI_DEVICE_TABLE(qlge_pci_tbl) = {
 
 MODULE_DEVICE_TABLE(pci, qlge_pci_tbl);
 
+static int ql_wol(struct ql_adapter *qdev);
+static void qlge_set_multicast_list(struct net_device *ndev);
+
 /* This hardware semaphore causes exclusive access to
  * resources shared between the NIC driver, MPI firmware,
  * FCOE firmware and the FC driver.
@@ -2382,6 +2385,20 @@ static void qlge_vlan_rx_kill_vid(struct net_device *ndev, u16 vid)
 
 }
 
+static void qlge_restore_vlan(struct ql_adapter *qdev)
+{
+       qlge_vlan_rx_register(qdev->ndev, qdev->vlgrp);
+
+       if (qdev->vlgrp) {
+               u16 vid;
+               for (vid = 0; vid < VLAN_N_VID; vid++) {
+                       if (!vlan_group_get_device(qdev->vlgrp, vid))
+                               continue;
+                       qlge_vlan_rx_add_vid(qdev->ndev, vid);
+               }
+       }
+}
+
 /* MSI-X Multiple Vector Interrupt Handler for inbound completions. */
 static irqreturn_t qlge_msix_rx_isr(int irq, void *dev_id)
 {
@@ -3827,7 +3844,7 @@ static int ql_adapter_reset(struct ql_adapter *qdev)
 
 static void ql_display_dev_info(struct net_device *ndev)
 {
-       struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
+       struct ql_adapter *qdev = netdev_priv(ndev);
 
        netif_info(qdev, probe, qdev->ndev,
                   "Function #%d, Port %d, NIC Roll %d, NIC Rev = %d, "
@@ -3842,7 +3859,7 @@ static void ql_display_dev_info(struct net_device *ndev)
                   "MAC address %pM\n", ndev->dev_addr);
 }
 
-int ql_wol(struct ql_adapter *qdev)
+static int ql_wol(struct ql_adapter *qdev)
 {
        int status = 0;
        u32 wol = MB_WOL_DISABLE;
@@ -3957,6 +3974,9 @@ static int ql_adapter_up(struct ql_adapter *qdev)
        clear_bit(QL_PROMISCUOUS, &qdev->flags);
        qlge_set_multicast_list(qdev->ndev);
 
+       /* Restore vlan setting. */
+       qlge_restore_vlan(qdev);
+
        ql_enable_interrupts(qdev);
        ql_enable_all_completion_interrupts(qdev);
        netif_tx_start_all_queues(qdev->ndev);
@@ -4242,9 +4262,9 @@ static struct net_device_stats *qlge_get_stats(struct net_device
        return &ndev->stats;
 }
 
-void qlge_set_multicast_list(struct net_device *ndev)
+static void qlge_set_multicast_list(struct net_device *ndev)
 {
-       struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
+       struct ql_adapter *qdev = netdev_priv(ndev);
        struct netdev_hw_addr *ha;
        int i, status;
 
@@ -4334,7 +4354,7 @@ exit:
 
 static int qlge_set_mac_address(struct net_device *ndev, void *p)
 {
-       struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
+       struct ql_adapter *qdev = netdev_priv(ndev);
        struct sockaddr *addr = p;
        int status;
 
@@ -4357,7 +4377,7 @@ static int qlge_set_mac_address(struct net_device *ndev, void *p)
 
 static void qlge_tx_timeout(struct net_device *ndev)
 {
-       struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
+       struct ql_adapter *qdev = netdev_priv(ndev);
        ql_queue_asic_error(qdev);
 }