Re: [net-next 4/8] i40evf: virtual channel interface
flat view
From: Ben Hutchings <hidden>
Date: 2014-01-08 14:16:34
On Tue, 2013-12-31 at 16:53 -0800, Jeff Kirsher wrote: [...]
quoted hunk ↗ jump to hunk
--- /dev/null +++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
[...]
quoted hunk ↗ jump to hunk
+void i40evf_virtchnl_completion(struct i40evf_adapter *adapter, + enum i40e_virtchnl_ops v_opcode, + i40e_status v_retval, + u8 *msg, u16 msglen) +{ + struct net_device *netdev = adapter->netdev; + + if (v_opcode == I40E_VIRTCHNL_OP_EVENT) { + struct i40e_virtchnl_pf_event *vpe = + (struct i40e_virtchnl_pf_event *)msg; + switch (vpe->event) { + case I40E_VIRTCHNL_EVENT_LINK_CHANGE: + adapter->link_up = + vpe->event_data.link_event.link_status; + if (adapter->link_up && !netif_carrier_ok(netdev)) { + dev_info(&adapter->pdev->dev, "NIC Link is Up\n"); + netif_carrier_on(netdev); + netif_tx_wake_all_queues(netdev); + } else if (!adapter->link_up) { + dev_info(&adapter->pdev->dev, "NIC Link is Down\n"); + netif_carrier_off(netdev); + netif_tx_stop_all_queues(netdev); + }
[...] The queue start/stop here should be redundant as linkwatch will do it automatically. Ben. -- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.