Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ixgbe: cleanup short msleep's (<20ms) to use usleep_range

Since msleep might not sleep for the desired amount when less
than 20ms use usleep_range.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

authored by

Don Skidmore and committed by
Jeff Kirsher
032b4325 0fa6d832

+36 -28
+1 -1
drivers/net/ixgbe/ixgbe_82598.c
··· 1083 1083 sfp_stat = sfp_stat & IXGBE_I2C_EEPROM_STATUS_MASK; 1084 1084 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_IN_PROGRESS) 1085 1085 break; 1086 - msleep(10); 1086 + usleep_range(10000, 20000); 1087 1087 } 1088 1088 1089 1089 if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) {
+9 -5
drivers/net/ixgbe/ixgbe_82599.c
··· 130 130 131 131 /* Release the semaphore */ 132 132 ixgbe_release_swfw_sync(hw, IXGBE_GSSR_MAC_CSR_SM); 133 - /* Delay obtaining semaphore again to allow FW access */ 134 - msleep(hw->eeprom.semaphore_delay); 133 + /* 134 + * Delay obtaining semaphore again to allow FW access, 135 + * semaphore_delay is in ms usleep_range needs us. 136 + */ 137 + usleep_range(hw->eeprom.semaphore_delay * 1000, 138 + hw->eeprom.semaphore_delay * 2000); 135 139 136 140 /* Now restart DSP by setting Restart_AN and clearing LMS */ 137 141 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, ((IXGBE_READ_REG(hw, ··· 144 140 145 141 /* Wait for AN to leave state 0 */ 146 142 for (i = 0; i < 10; i++) { 147 - msleep(4); 143 + usleep_range(4000, 8000); 148 144 reg_anlp1 = IXGBE_READ_REG(hw, IXGBE_ANLP1); 149 145 if (reg_anlp1 & IXGBE_ANLP1_AN_STATE_MASK) 150 146 break; ··· 1182 1178 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) & 1183 1179 IXGBE_FDIRCTRL_INIT_DONE) 1184 1180 break; 1185 - msleep(1); 1181 + usleep_range(1000, 2000); 1186 1182 } 1187 1183 if (i >= IXGBE_FDIR_INIT_DONE_POLL) 1188 1184 hw_dbg(hw, "Flow Director Signature poll time exceeded!\n"); ··· 1277 1273 if (IXGBE_READ_REG(hw, IXGBE_FDIRCTRL) & 1278 1274 IXGBE_FDIRCTRL_INIT_DONE) 1279 1275 break; 1280 - msleep(1); 1276 + usleep_range(1000, 2000); 1281 1277 } 1282 1278 if (i >= IXGBE_FDIR_INIT_DONE_POLL) 1283 1279 hw_dbg(hw, "Flow Director Perfect poll time exceeded!\n");
+9 -5
drivers/net/ixgbe/ixgbe_common.c
··· 503 503 reg_val &= ~(IXGBE_RXCTRL_RXEN); 504 504 IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, reg_val); 505 505 IXGBE_WRITE_FLUSH(hw); 506 - msleep(2); 506 + usleep_range(2000, 4000); 507 507 508 508 /* Clear interrupt mask to stop from interrupts being generated */ 509 509 IXGBE_WRITE_REG(hw, IXGBE_EIMC, IXGBE_IRQ_CLEAR_MASK); ··· 1151 1151 1152 1152 hw->mac.ops.release_swfw_sync(hw, IXGBE_GSSR_EEP_SM); 1153 1153 1154 - /* Delay before attempt to obtain semaphore again to allow FW access */ 1155 - msleep(hw->eeprom.semaphore_delay); 1154 + /* 1155 + * Delay before attempt to obtain semaphore again to allow FW 1156 + * access. semaphore_delay is in ms we need us for usleep_range 1157 + */ 1158 + usleep_range(hw->eeprom.semaphore_delay * 1000, 1159 + hw->eeprom.semaphore_delay * 2000); 1156 1160 } 1157 1161 1158 1162 /** ··· 2232 2228 * thread currently using resource (swmask) 2233 2229 */ 2234 2230 ixgbe_release_eeprom_semaphore(hw); 2235 - msleep(5); 2231 + usleep_range(5000, 10000); 2236 2232 timeout--; 2237 2233 } 2238 2234 ··· 2306 2302 autoc_reg |= IXGBE_AUTOC_AN_RESTART; 2307 2303 autoc_reg |= IXGBE_AUTOC_FLU; 2308 2304 IXGBE_WRITE_REG(hw, IXGBE_AUTOC, autoc_reg); 2309 - msleep(10); 2305 + usleep_range(10000, 20000); 2310 2306 } 2311 2307 2312 2308 led_reg &= ~IXGBE_LED_MODE_MASK(index);
+1 -1
drivers/net/ixgbe/ixgbe_dcb_nl.c
··· 376 376 */ 377 377 if (adapter->dcb_set_bitmap & BIT_APP_UPCHG) { 378 378 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 379 - msleep(1); 379 + usleep_range(1000, 2000); 380 380 381 381 ixgbe_fcoe_setapp(adapter, up); 382 382
+7 -7
drivers/net/ixgbe/ixgbe_ethtool.c
··· 931 931 } 932 932 933 933 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 934 - msleep(1); 934 + usleep_range(1000, 2000); 935 935 936 936 if (!netif_running(adapter->netdev)) { 937 937 for (i = 0; i < adapter->num_tx_queues; i++) ··· 1417 1417 1418 1418 /* Disable all the interrupts */ 1419 1419 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); 1420 - msleep(10); 1420 + usleep_range(10000, 20000); 1421 1421 1422 1422 /* Test each interrupt */ 1423 1423 for (; i < 10; i++) { ··· 1437 1437 ~mask & 0x00007FFF); 1438 1438 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, 1439 1439 ~mask & 0x00007FFF); 1440 - msleep(10); 1440 + usleep_range(10000, 20000); 1441 1441 1442 1442 if (adapter->test_icr & mask) { 1443 1443 *data = 3; ··· 1454 1454 adapter->test_icr = 0; 1455 1455 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMS, mask); 1456 1456 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, mask); 1457 - msleep(10); 1457 + usleep_range(10000, 20000); 1458 1458 1459 1459 if (!(adapter->test_icr &mask)) { 1460 1460 *data = 4; ··· 1474 1474 ~mask & 0x00007FFF); 1475 1475 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EICS, 1476 1476 ~mask & 0x00007FFF); 1477 - msleep(10); 1477 + usleep_range(10000, 20000); 1478 1478 1479 1479 if (adapter->test_icr) { 1480 1480 *data = 5; ··· 1485 1485 1486 1486 /* Disable all the interrupts */ 1487 1487 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, 0xFFFFFFFF); 1488 - msleep(10); 1488 + usleep_range(10000, 20000); 1489 1489 1490 1490 /* Unhook test interrupt handler */ 1491 1491 free_irq(irq, netdev); ··· 1613 1613 reg_data |= IXGBE_AUTOC_LMS_10G_LINK_NO_AN | IXGBE_AUTOC_FLU; 1614 1614 IXGBE_WRITE_REG(&adapter->hw, IXGBE_AUTOC, reg_data); 1615 1615 IXGBE_WRITE_FLUSH(&adapter->hw); 1616 - msleep(10); 1616 + usleep_range(10000, 20000); 1617 1617 1618 1618 /* Disable Atlas Tx lanes; re-enabled in reset path */ 1619 1619 if (hw->mac.type == ixgbe_mac_82598EB) {
+4 -4
drivers/net/ixgbe/ixgbe_main.c
··· 2731 2731 2732 2732 /* poll to verify queue is enabled */ 2733 2733 do { 2734 - msleep(1); 2734 + usleep_range(1000, 2000); 2735 2735 txdctl = IXGBE_READ_REG(hw, IXGBE_TXDCTL(reg_idx)); 2736 2736 } while (--wait_loop && !(txdctl & IXGBE_TXDCTL_ENABLE)); 2737 2737 if (!wait_loop) ··· 3023 3023 return; 3024 3024 3025 3025 do { 3026 - msleep(1); 3026 + usleep_range(1000, 2000); 3027 3027 rxdctl = IXGBE_READ_REG(hw, IXGBE_RXDCTL(reg_idx)); 3028 3028 } while (--wait_loop && !(rxdctl & IXGBE_RXDCTL_ENABLE)); 3029 3029 ··· 3945 3945 { 3946 3946 WARN_ON(in_interrupt()); 3947 3947 while (test_and_set_bit(__IXGBE_RESETTING, &adapter->state)) 3948 - msleep(1); 3948 + usleep_range(1000, 2000); 3949 3949 ixgbe_down(adapter); 3950 3950 /* 3951 3951 * If SR-IOV enabled then wait a bit before bringing the adapter ··· 4150 4150 /* this call also flushes the previous write */ 4151 4151 ixgbe_disable_rx_queue(adapter, adapter->rx_ring[i]); 4152 4152 4153 - msleep(10); 4153 + usleep_range(10000, 20000); 4154 4154 4155 4155 netif_tx_stop_all_queues(netdev); 4156 4156
+2 -2
drivers/net/ixgbe/ixgbe_phy.c
··· 753 753 &phy_data); 754 754 if ((phy_data & MDIO_CTRL1_RESET) == 0) 755 755 break; 756 - msleep(10); 756 + usleep_range(10000, 20000); 757 757 } 758 758 759 759 if ((phy_data & MDIO_CTRL1_RESET) != 0) { ··· 782 782 case IXGBE_DELAY_NL: 783 783 data_offset++; 784 784 hw_dbg(hw, "DELAY: %d MS\n", edata); 785 - msleep(edata); 785 + usleep_range(edata * 1000, edata * 2000); 786 786 break; 787 787 case IXGBE_DATA_NL: 788 788 hw_dbg(hw, "DATA:\n");
+3 -3
drivers/net/ixgbe/ixgbe_x540.c
··· 563 563 * resource (swmask) 564 564 */ 565 565 ixgbe_release_swfw_sync_semaphore(hw); 566 - msleep(5); 566 + usleep_range(5000, 10000); 567 567 } 568 568 } 569 569 ··· 585 585 } 586 586 } 587 587 588 - msleep(5); 588 + usleep_range(5000, 10000); 589 589 return 0; 590 590 } 591 591 ··· 609 609 IXGBE_WRITE_REG(hw, IXGBE_SWFW_SYNC, swfw_sync); 610 610 611 611 ixgbe_release_swfw_sync_semaphore(hw); 612 - msleep(5); 612 + usleep_range(5000, 10000); 613 613 } 614 614 615 615 /**