Loading drivers/net/qlge/qlge_main.c +17 −0 Original line number Diff line number Diff line Loading @@ -2385,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) { Loading Loading @@ -3960,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); Loading Loading
drivers/net/qlge/qlge_main.c +17 −0 Original line number Diff line number Diff line Loading @@ -2385,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) { Loading Loading @@ -3960,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); Loading