Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1b60092 authored by Ron Mercer's avatar Ron Mercer Committed by David S. Miller
Browse files

qlge: bugfix: Restoring the vlan setting.

parent f203af70
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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)
{
@@ -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);