[PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [3/5] Initialize link state at probe time

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Shreyas Bhatewara
Date: Tuesday, July 13, 2010 - 5:48 pm

Initialize vmxnet3 link state at probe time

This change initializes the state of link at the time when driver is
loaded. The ethtool output for 'link detected' and 'link speed'
is thus valid even before the interface is brought up.

Signed-off-by: Shreyas Bhatewara <sbhatewara@vmware.com>

---
 drivers/net/vmxnet3/vmxnet3_drv.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 7792a44..1e31d40 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -130,7 +130,7 @@ vmxnet3_tq_stop(struct vmxnet3_tx_queue *tq, struct vmxnet3_adapter *adapter)
  * Check the link state. This may start or stop the tx queue.
  */
 static void
-vmxnet3_check_link(struct vmxnet3_adapter *adapter)
+vmxnet3_check_link(struct vmxnet3_adapter *adapter, bool affectTxQueue)
 {
 	u32 ret;
 
@@ -143,14 +143,16 @@ vmxnet3_check_link(struct vmxnet3_adapter *adapter)
 		if (!netif_carrier_ok(adapter->netdev))
 			netif_carrier_on(adapter->netdev);
 
-		vmxnet3_tq_start(&adapter->tx_queue, adapter);
+		if (affectTxQueue)
+			vmxnet3_tq_start(&adapter->tx_queue, adapter);
 	} else {
 		printk(KERN_INFO "%s: NIC Link is Down\n",
 		       adapter->netdev->name);
 		if (netif_carrier_ok(adapter->netdev))
 			netif_carrier_off(adapter->netdev);
 
-		vmxnet3_tq_stop(&adapter->tx_queue, adapter);
+		if (affectTxQueue)
+			vmxnet3_tq_stop(&adapter->tx_queue, adapter);
 	}
 }
 
@@ -165,7 +167,7 @@ vmxnet3_process_events(struct vmxnet3_adapter *adapter)
 
 	/* Check if link state has changed */
 	if (events & VMXNET3_ECR_LINK)
-		vmxnet3_check_link(adapter);
+		vmxnet3_check_link(adapter, true);
 
 	/* Check if there is an error on xmit/recv queues */
 	if (events & (VMXNET3_ECR_TQERR | VMXNET3_ECR_RQERR)) {
@@ -1947,7 +1949,7 @@ vmxnet3_activate_dev(struct vmxnet3_adapter *adapter)
 	 * Check link state when first activating device. It will start the
 	 * tx queue if the link is up.
 	 */
-	vmxnet3_check_link(adapter);
+	vmxnet3_check_link(adapter, true);
 
 	napi_enable(&adapter->napi);
 	vmxnet3_enable_all_intrs(adapter);
@@ -2549,6 +2551,7 @@ vmxnet3_probe_device(struct pci_dev *pdev,
 	}
 
 	set_bit(VMXNET3_STATE_BIT_QUIESCED, &adapter->state);
+	vmxnet3_check_link(adapter, false);
 	atomic_inc(&devices_found);
 	return 0;

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
RE: [PATCH 2.6.35-rc1] net: vmxnet3 fixes [0/5] Spare skb ..., Shreyas Bhatewara, (Wed Jul 7, 3:19 pm)
[PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [2/5] Interrupt ..., Shreyas Bhatewara, (Tue Jul 13, 5:48 pm)
[PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [3/5] Initializ ..., Shreyas Bhatewara, (Tue Jul 13, 5:48 pm)
[PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [4/5] Do not re ..., Shreyas Bhatewara, (Tue Jul 13, 5:49 pm)
[PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [5/5] Respect t ..., Shreyas Bhatewara, (Tue Jul 13, 5:51 pm)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [2/5] Inter ..., Shreyas Bhatewara, (Thu Jul 15, 6:20 pm)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [3/5] Initi ..., Shreyas Bhatewara, (Thu Jul 15, 6:20 pm)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [4/5] Do no ..., Shreyas Bhatewara, (Thu Jul 15, 6:20 pm)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [5/5] Respe ..., Shreyas Bhatewara, (Thu Jul 15, 6:21 pm)
[PATCH 2.6.35-rc1] net-next: fix LRO feature update in vmxnet3, Shreyas Bhatewara, (Thu Jul 15, 6:28 pm)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [3/5] Initi ..., Shreyas Bhatewara, (Fri Jul 16, 12:51 am)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [4/5] Do no ..., Shreyas Bhatewara, (Fri Jul 16, 1:17 am)
Re: [PATCH 2.6.35-rc1] net-next: vmxnet3 fixes [4/5] Do no ..., Shreyas Bhatewara, (Mon Jul 19, 10:02 am)