aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2012-07-27 14:31:16 -0400
committerBen Hutchings <bhutchings@solarflare.com>2012-08-24 15:10:18 -0400
commitf16aeea0e679d5fd43fc02e99569c52d77d5e5d3 (patch)
treea22f669f90d69705f56718130744d196876b95c7
parent9714284f83387d330496758e5c10a649fd9a677d (diff)
sfc: Change state names to be clearer, and comment them
STATE_INIT and STATE_FINI are equivalent and represent incompletely initialised states; combine them as STATE_UNINIT. Rename STATE_RUNNING to STATE_READY, to avoid confusion with netif_running() and IFF_RUNNING. The comments do not quite match current usage, but this will be corrected in subsequent fixes. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
-rw-r--r--drivers/net/ethernet/sfc/efx.c24
-rw-r--r--drivers/net/ethernet/sfc/ethtool.c2
-rw-r--r--drivers/net/ethernet/sfc/falcon_boards.c2
-rw-r--r--drivers/net/ethernet/sfc/net_driver.h10
4 files changed, 17 insertions, 21 deletions
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 3b3f08489a5e..9f88ad86f4e3 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -202,7 +202,7 @@ static void efx_stop_all(struct efx_nic *efx);
202 202
203#define EFX_ASSERT_RESET_SERIALISED(efx) \ 203#define EFX_ASSERT_RESET_SERIALISED(efx) \
204 do { \ 204 do { \
205 if ((efx->state == STATE_RUNNING) || \ 205 if ((efx->state == STATE_READY) || \
206 (efx->state == STATE_DISABLED)) \ 206 (efx->state == STATE_DISABLED)) \
207 ASSERT_RTNL(); \ 207 ASSERT_RTNL(); \
208 } while (0) 208 } while (0)
@@ -1556,7 +1556,7 @@ static void efx_start_all(struct efx_nic *efx)
1556 * of these flags are safe to read under just the rtnl lock */ 1556 * of these flags are safe to read under just the rtnl lock */
1557 if (efx->port_enabled) 1557 if (efx->port_enabled)
1558 return; 1558 return;
1559 if ((efx->state != STATE_RUNNING) && (efx->state != STATE_INIT)) 1559 if ((efx->state != STATE_READY) && (efx->state != STATE_UNINIT))
1560 return; 1560 return;
1561 if (!netif_running(efx->net_dev)) 1561 if (!netif_running(efx->net_dev))
1562 return; 1562 return;
@@ -2286,11 +2286,11 @@ static void efx_reset_work(struct work_struct *data)
2286 if (!pending) 2286 if (!pending)
2287 return; 2287 return;
2288 2288
2289 /* If we're not RUNNING then don't reset. Leave the reset_pending 2289 /* If we're not READY then don't reset. Leave the reset_pending
2290 * flags set so that efx_pci_probe_main will be retried */ 2290 * flags set so that efx_pci_probe_main will be retried */
2291 if (efx->state != STATE_RUNNING) { 2291 if (efx->state != STATE_READY) {
2292 netif_info(efx, drv, efx->net_dev, 2292 netif_info(efx, drv, efx->net_dev,
2293 "scheduled reset quenched. NIC not RUNNING\n"); 2293 "scheduled reset quenched; NIC not ready\n");
2294 return; 2294 return;
2295 } 2295 }
2296 2296
@@ -2402,7 +2402,7 @@ static int efx_init_struct(struct efx_nic *efx, const struct efx_nic_type *type,
2402 INIT_DELAYED_WORK(&efx->selftest_work, efx_selftest_async_work); 2402 INIT_DELAYED_WORK(&efx->selftest_work, efx_selftest_async_work);
2403 efx->pci_dev = pci_dev; 2403 efx->pci_dev = pci_dev;
2404 efx->msg_enable = debug; 2404 efx->msg_enable = debug;
2405 efx->state = STATE_INIT; 2405 efx->state = STATE_UNINIT;
2406 strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name)); 2406 strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name));
2407 2407
2408 efx->net_dev = net_dev; 2408 efx->net_dev = net_dev;
@@ -2490,7 +2490,7 @@ static void efx_pci_remove(struct pci_dev *pci_dev)
2490 2490
2491 /* Mark the NIC as fini, then stop the interface */ 2491 /* Mark the NIC as fini, then stop the interface */
2492 rtnl_lock(); 2492 rtnl_lock();
2493 efx->state = STATE_FINI; 2493 efx->state = STATE_UNINIT;
2494 dev_close(efx->net_dev); 2494 dev_close(efx->net_dev);
2495 2495
2496 /* Allow any queued efx_resets() to complete */ 2496 /* Allow any queued efx_resets() to complete */
@@ -2684,9 +2684,9 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
2684 goto fail4; 2684 goto fail4;
2685 } 2685 }
2686 2686
2687 /* Switch to the running state before we expose the device to the OS, 2687 /* Switch to the READY state before we expose the device to the OS,
2688 * so that dev_open()|efx_start_all() will actually start the device */ 2688 * so that dev_open()|efx_start_all() will actually start the device */
2689 efx->state = STATE_RUNNING; 2689 efx->state = STATE_READY;
2690 2690
2691 rc = efx_register_netdev(efx); 2691 rc = efx_register_netdev(efx);
2692 if (rc) 2692 if (rc)
@@ -2727,7 +2727,7 @@ static int efx_pm_freeze(struct device *dev)
2727{ 2727{
2728 struct efx_nic *efx = pci_get_drvdata(to_pci_dev(dev)); 2728 struct efx_nic *efx = pci_get_drvdata(to_pci_dev(dev));
2729 2729
2730 efx->state = STATE_FINI; 2730 efx->state = STATE_UNINIT;
2731 2731
2732 netif_device_detach(efx->net_dev); 2732 netif_device_detach(efx->net_dev);
2733 2733
@@ -2741,8 +2741,6 @@ static int efx_pm_thaw(struct device *dev)
2741{ 2741{
2742 struct efx_nic *efx = pci_get_drvdata(to_pci_dev(dev)); 2742 struct efx_nic *efx = pci_get_drvdata(to_pci_dev(dev));
2743 2743
2744 efx->state = STATE_INIT;
2745
2746 efx_start_interrupts(efx, false); 2744 efx_start_interrupts(efx, false);
2747 2745
2748 mutex_lock(&efx->mac_lock); 2746 mutex_lock(&efx->mac_lock);
@@ -2753,7 +2751,7 @@ static int efx_pm_thaw(struct device *dev)
2753 2751
2754 netif_device_attach(efx->net_dev); 2752 netif_device_attach(efx->net_dev);
2755 2753
2756 efx->state = STATE_RUNNING; 2754 efx->state = STATE_READY;
2757 2755
2758 efx->type->resume_wol(efx); 2756 efx->type->resume_wol(efx);
2759 2757
diff --git a/drivers/net/ethernet/sfc/ethtool.c b/drivers/net/ethernet/sfc/ethtool.c
index 8cba2df82b18..5d0e2a3241b1 100644
--- a/drivers/net/ethernet/sfc/ethtool.c
+++ b/drivers/net/ethernet/sfc/ethtool.c
@@ -531,7 +531,7 @@ static void efx_ethtool_self_test(struct net_device *net_dev,
531 531
532 532
533 ASSERT_RTNL(); 533 ASSERT_RTNL();
534 if (efx->state != STATE_RUNNING) { 534 if (efx->state != STATE_READY) {
535 rc = -EIO; 535 rc = -EIO;
536 goto fail1; 536 goto fail1;
537 } 537 }
diff --git a/drivers/net/ethernet/sfc/falcon_boards.c b/drivers/net/ethernet/sfc/falcon_boards.c
index 8687a6c3db0d..ec1e99d0dcad 100644
--- a/drivers/net/ethernet/sfc/falcon_boards.c
+++ b/drivers/net/ethernet/sfc/falcon_boards.c
@@ -380,7 +380,7 @@ static ssize_t set_phy_flash_cfg(struct device *dev,
380 new_mode = PHY_MODE_SPECIAL; 380 new_mode = PHY_MODE_SPECIAL;
381 if (!((old_mode ^ new_mode) & PHY_MODE_SPECIAL)) { 381 if (!((old_mode ^ new_mode) & PHY_MODE_SPECIAL)) {
382 err = 0; 382 err = 0;
383 } else if (efx->state != STATE_RUNNING || netif_running(efx->net_dev)) { 383 } else if (efx->state != STATE_READY || netif_running(efx->net_dev)) {
384 err = -EBUSY; 384 err = -EBUSY;
385 } else { 385 } else {
386 /* Reset the PHY, reconfigure the MAC and enable/disable 386 /* Reset the PHY, reconfigure the MAC and enable/disable
diff --git a/drivers/net/ethernet/sfc/net_driver.h b/drivers/net/ethernet/sfc/net_driver.h
index a4fe9a786ef8..7ab1232494ef 100644
--- a/drivers/net/ethernet/sfc/net_driver.h
+++ b/drivers/net/ethernet/sfc/net_driver.h
@@ -430,11 +430,9 @@ enum efx_int_mode {
430#define EFX_INT_MODE_USE_MSI(x) (((x)->interrupt_mode) <= EFX_INT_MODE_MSI) 430#define EFX_INT_MODE_USE_MSI(x) (((x)->interrupt_mode) <= EFX_INT_MODE_MSI)
431 431
432enum nic_state { 432enum nic_state {
433 STATE_INIT = 0, 433 STATE_UNINIT = 0, /* device being probed/removed or is frozen */
434 STATE_RUNNING = 1, 434 STATE_READY = 1, /* hardware ready and netdev registered */
435 STATE_FINI = 2, 435 STATE_DISABLED = 2, /* device disabled due to hardware errors */
436 STATE_DISABLED = 3,
437 STATE_MAX,
438}; 436};
439 437
440/* 438/*
@@ -654,7 +652,7 @@ struct vfdi_status;
654 * @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues 652 * @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues
655 * @irq_rx_moderation: IRQ moderation time for RX event queues 653 * @irq_rx_moderation: IRQ moderation time for RX event queues
656 * @msg_enable: Log message enable flags 654 * @msg_enable: Log message enable flags
657 * @state: Device state flag. Serialised by the rtnl_lock. 655 * @state: Device state number (%STATE_*). Serialised by the rtnl_lock.
658 * @reset_pending: Bitmask for pending resets 656 * @reset_pending: Bitmask for pending resets
659 * @tx_queue: TX DMA queues 657 * @tx_queue: TX DMA queues
660 * @rx_queue: RX DMA queues 658 * @rx_queue: RX DMA queues