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

ethernet/intel: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly. Switches test of .data field to
.function, since .data will be going away.

Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: intel-wired-lan@lists.osuosl.org
Cc: netdev@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Kees Cook and committed by
David S. Miller
26566eae d039ef68

+43 -50
+3 -3
drivers/net/ethernet/intel/e100.c
··· 1710 1710 } 1711 1711 } 1712 1712 1713 - static void e100_watchdog(unsigned long data) 1713 + static void e100_watchdog(struct timer_list *t) 1714 1714 { 1715 - struct nic *nic = (struct nic *)data; 1715 + struct nic *nic = from_timer(nic, t, watchdog); 1716 1716 struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; 1717 1717 u32 speed; 1718 1718 ··· 2920 2920 2921 2921 pci_set_master(pdev); 2922 2922 2923 - setup_timer(&nic->watchdog, e100_watchdog, (unsigned long)nic); 2923 + timer_setup(&nic->watchdog, e100_watchdog, 0); 2924 2924 2925 2925 INIT_WORK(&nic->tx_timeout_task, e100_tx_timeout_task); 2926 2926
+6 -8
drivers/net/ethernet/intel/e1000e/netdev.c
··· 4823 4823 * Need to wait a few seconds after link up to get diagnostic information from 4824 4824 * the phy 4825 4825 **/ 4826 - static void e1000_update_phy_info(unsigned long data) 4826 + static void e1000_update_phy_info(struct timer_list *t) 4827 4827 { 4828 - struct e1000_adapter *adapter = (struct e1000_adapter *)data; 4828 + struct e1000_adapter *adapter = from_timer(adapter, t, phy_info_timer); 4829 4829 4830 4830 if (test_bit(__E1000_DOWN, &adapter->state)) 4831 4831 return; ··· 5159 5159 * e1000_watchdog - Timer Call-back 5160 5160 * @data: pointer to adapter cast into an unsigned long 5161 5161 **/ 5162 - static void e1000_watchdog(unsigned long data) 5162 + static void e1000_watchdog(struct timer_list *t) 5163 5163 { 5164 - struct e1000_adapter *adapter = (struct e1000_adapter *)data; 5164 + struct e1000_adapter *adapter = from_timer(adapter, t, watchdog_timer); 5165 5165 5166 5166 /* Do the rest outside of interrupt context */ 5167 5167 schedule_work(&adapter->watchdog_task); ··· 7267 7267 goto err_eeprom; 7268 7268 } 7269 7269 7270 - setup_timer(&adapter->watchdog_timer, e1000_watchdog, 7271 - (unsigned long)adapter); 7272 - setup_timer(&adapter->phy_info_timer, e1000_update_phy_info, 7273 - (unsigned long)adapter); 7270 + timer_setup(&adapter->watchdog_timer, e1000_watchdog, 0); 7271 + timer_setup(&adapter->phy_info_timer, e1000_update_phy_info, 0); 7274 7272 7275 7273 INIT_WORK(&adapter->reset_task, e1000_reset_task); 7276 7274 INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);
+4 -4
drivers/net/ethernet/intel/fm10k/fm10k_pci.c
··· 213 213 * fm10k_service_timer - Timer Call-back 214 214 * @data: pointer to interface cast into an unsigned long 215 215 **/ 216 - static void fm10k_service_timer(unsigned long data) 216 + static void fm10k_service_timer(struct timer_list *t) 217 217 { 218 - struct fm10k_intfc *interface = (struct fm10k_intfc *)data; 218 + struct fm10k_intfc *interface = from_timer(interface, t, 219 + service_timer); 219 220 220 221 /* Reset the timer */ 221 222 mod_timer(&interface->service_timer, (HZ * 2) + jiffies); ··· 2316 2315 /* Initialize service timer and service task late in order to avoid 2317 2316 * cleanup issues. 2318 2317 */ 2319 - setup_timer(&interface->service_timer, &fm10k_service_timer, 2320 - (unsigned long)interface); 2318 + timer_setup(&interface->service_timer, fm10k_service_timer, 0); 2321 2319 INIT_WORK(&interface->service_task, fm10k_service_task); 2322 2320 2323 2321 /* Setup the MAC/VLAN queue */
+4 -4
drivers/net/ethernet/intel/i40e/i40e_main.c
··· 8800 8800 * i40e_service_timer - timer callback 8801 8801 * @data: pointer to PF struct 8802 8802 **/ 8803 - static void i40e_service_timer(unsigned long data) 8803 + static void i40e_service_timer(struct timer_list *t) 8804 8804 { 8805 - struct i40e_pf *pf = (struct i40e_pf *)data; 8805 + struct i40e_pf *pf = from_timer(pf, t, service_timer); 8806 8806 8807 8807 mod_timer(&pf->service_timer, 8808 8808 round_jiffies(jiffies + pf->service_timer_period)); ··· 12648 12648 #endif /* CONFIG_I40E_DCB */ 12649 12649 12650 12650 /* set up periodic task facility */ 12651 - setup_timer(&pf->service_timer, i40e_service_timer, (unsigned long)pf); 12651 + timer_setup(&pf->service_timer, i40e_service_timer, 0); 12652 12652 pf->service_timer_period = HZ; 12653 12653 12654 12654 INIT_WORK(&pf->service_task, i40e_service_task); ··· 12972 12972 /* no more scheduling of any task */ 12973 12973 set_bit(__I40E_SUSPENDED, pf->state); 12974 12974 set_bit(__I40E_DOWN, pf->state); 12975 - if (pf->service_timer.data) 12975 + if (pf->service_timer.function) 12976 12976 del_timer_sync(&pf->service_timer); 12977 12977 if (pf->service_task.func) 12978 12978 cancel_work_sync(&pf->service_task);
+4 -4
drivers/net/ethernet/intel/i40evf/i40evf_main.c
··· 1594 1594 * i40evf_watchdog_timer - Periodic call-back timer 1595 1595 * @data: pointer to adapter disguised as unsigned long 1596 1596 **/ 1597 - static void i40evf_watchdog_timer(unsigned long data) 1597 + static void i40evf_watchdog_timer(struct timer_list *t) 1598 1598 { 1599 - struct i40evf_adapter *adapter = (struct i40evf_adapter *)data; 1599 + struct i40evf_adapter *adapter = from_timer(adapter, t, 1600 + watchdog_timer); 1600 1601 1601 1602 schedule_work(&adapter->watchdog_task); 1602 1603 /* timer will be rescheduled in watchdog task */ ··· 2749 2748 ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr); 2750 2749 } 2751 2750 2752 - setup_timer(&adapter->watchdog_timer, &i40evf_watchdog_timer, 2753 - (unsigned long)adapter); 2751 + timer_setup(&adapter->watchdog_timer, i40evf_watchdog_timer, 0); 2754 2752 mod_timer(&adapter->watchdog_timer, jiffies + 1); 2755 2753 2756 2754 adapter->tx_desc_count = I40EVF_DEFAULT_TXD;
+8 -10
drivers/net/ethernet/intel/igb/igb_main.c
··· 133 133 static void igb_clean_tx_ring(struct igb_ring *); 134 134 static void igb_clean_rx_ring(struct igb_ring *); 135 135 static void igb_set_rx_mode(struct net_device *); 136 - static void igb_update_phy_info(unsigned long); 137 - static void igb_watchdog(unsigned long); 136 + static void igb_update_phy_info(struct timer_list *); 137 + static void igb_watchdog(struct timer_list *); 138 138 static void igb_watchdog_task(struct work_struct *); 139 139 static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *); 140 140 static void igb_get_stats64(struct net_device *dev, ··· 2538 2538 wr32(E1000_TXPBS, I210_TXPBSIZE_DEFAULT); 2539 2539 } 2540 2540 2541 - setup_timer(&adapter->watchdog_timer, igb_watchdog, 2542 - (unsigned long) adapter); 2543 - setup_timer(&adapter->phy_info_timer, igb_update_phy_info, 2544 - (unsigned long) adapter); 2541 + timer_setup(&adapter->watchdog_timer, igb_watchdog, 0); 2542 + timer_setup(&adapter->phy_info_timer, igb_update_phy_info, 0); 2545 2543 2546 2544 INIT_WORK(&adapter->reset_task, igb_reset_task); 2547 2545 INIT_WORK(&adapter->watchdog_task, igb_watchdog_task); ··· 4423 4425 /* Need to wait a few seconds after link up to get diagnostic information from 4424 4426 * the phy 4425 4427 */ 4426 - static void igb_update_phy_info(unsigned long data) 4428 + static void igb_update_phy_info(struct timer_list *t) 4427 4429 { 4428 - struct igb_adapter *adapter = (struct igb_adapter *) data; 4430 + struct igb_adapter *adapter = from_timer(adapter, t, phy_info_timer); 4429 4431 igb_get_phy_info(&adapter->hw); 4430 4432 } 4431 4433 ··· 4512 4514 * igb_watchdog - Timer Call-back 4513 4515 * @data: pointer to adapter cast into an unsigned long 4514 4516 **/ 4515 - static void igb_watchdog(unsigned long data) 4517 + static void igb_watchdog(struct timer_list *t) 4516 4518 { 4517 - struct igb_adapter *adapter = (struct igb_adapter *)data; 4519 + struct igb_adapter *adapter = from_timer(adapter, t, watchdog_timer); 4518 4520 /* Do the rest outside of interrupt context */ 4519 4521 schedule_work(&adapter->watchdog_task); 4520 4522 }
+3 -4
drivers/net/ethernet/intel/igbvf/netdev.c
··· 1915 1915 * igbvf_watchdog - Timer Call-back 1916 1916 * @data: pointer to adapter cast into an unsigned long 1917 1917 **/ 1918 - static void igbvf_watchdog(unsigned long data) 1918 + static void igbvf_watchdog(struct timer_list *t) 1919 1919 { 1920 - struct igbvf_adapter *adapter = (struct igbvf_adapter *)data; 1920 + struct igbvf_adapter *adapter = from_timer(adapter, t, watchdog_timer); 1921 1921 1922 1922 /* Do the rest outside of interrupt context */ 1923 1923 schedule_work(&adapter->watchdog_task); ··· 2878 2878 netdev->addr_len); 2879 2879 } 2880 2880 2881 - setup_timer(&adapter->watchdog_timer, &igbvf_watchdog, 2882 - (unsigned long)adapter); 2881 + timer_setup(&adapter->watchdog_timer, igbvf_watchdog, 0); 2883 2882 2884 2883 INIT_WORK(&adapter->reset_task, igbvf_reset_task); 2885 2884 INIT_WORK(&adapter->watchdog_task, igbvf_watchdog_task);
+4 -5
drivers/net/ethernet/intel/ixgb/ixgb_main.c
··· 83 83 static void ixgb_clean_tx_ring(struct ixgb_adapter *adapter); 84 84 static void ixgb_clean_rx_ring(struct ixgb_adapter *adapter); 85 85 static void ixgb_set_multi(struct net_device *netdev); 86 - static void ixgb_watchdog(unsigned long data); 86 + static void ixgb_watchdog(struct timer_list *t); 87 87 static netdev_tx_t ixgb_xmit_frame(struct sk_buff *skb, 88 88 struct net_device *netdev); 89 89 static int ixgb_change_mtu(struct net_device *netdev, int new_mtu); ··· 508 508 509 509 adapter->part_num = ixgb_get_ee_pba_number(&adapter->hw); 510 510 511 - setup_timer(&adapter->watchdog_timer, ixgb_watchdog, 512 - (unsigned long)adapter); 511 + timer_setup(&adapter->watchdog_timer, ixgb_watchdog, 0); 513 512 514 513 INIT_WORK(&adapter->tx_timeout_task, ixgb_tx_timeout_task); 515 514 ··· 1150 1151 **/ 1151 1152 1152 1153 static void 1153 - ixgb_watchdog(unsigned long data) 1154 + ixgb_watchdog(struct timer_list *t) 1154 1155 { 1155 - struct ixgb_adapter *adapter = (struct ixgb_adapter *)data; 1156 + struct ixgb_adapter *adapter = from_timer(adapter, t, watchdog_timer); 1156 1157 struct net_device *netdev = adapter->netdev; 1157 1158 struct ixgb_desc_ring *txdr = &adapter->tx_ring; 1158 1159
+3 -4
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
··· 7690 7690 * ixgbe_service_timer - Timer Call-back 7691 7691 * @data: pointer to adapter cast into an unsigned long 7692 7692 **/ 7693 - static void ixgbe_service_timer(unsigned long data) 7693 + static void ixgbe_service_timer(struct timer_list *t) 7694 7694 { 7695 - struct ixgbe_adapter *adapter = (struct ixgbe_adapter *)data; 7695 + struct ixgbe_adapter *adapter = from_timer(adapter, t, service_timer); 7696 7696 unsigned long next_event_offset; 7697 7697 7698 7698 /* poll faster when waiting for link */ ··· 10508 10508 ether_addr_copy(hw->mac.addr, hw->mac.perm_addr); 10509 10509 ixgbe_mac_set_default_filter(adapter); 10510 10510 10511 - setup_timer(&adapter->service_timer, &ixgbe_service_timer, 10512 - (unsigned long) adapter); 10511 + timer_setup(&adapter->service_timer, ixgbe_service_timer, 0); 10513 10512 10514 10513 if (ixgbe_removed(hw->hw_addr)) { 10515 10514 err = -EIO;
+4 -4
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
··· 2747 2747 * ixgbevf_service_timer - Timer Call-back 2748 2748 * @data: pointer to adapter cast into an unsigned long 2749 2749 **/ 2750 - static void ixgbevf_service_timer(unsigned long data) 2750 + static void ixgbevf_service_timer(struct timer_list *t) 2751 2751 { 2752 - struct ixgbevf_adapter *adapter = (struct ixgbevf_adapter *)data; 2752 + struct ixgbevf_adapter *adapter = from_timer(adapter, t, 2753 + service_timer); 2753 2754 2754 2755 /* Reset the timer */ 2755 2756 mod_timer(&adapter->service_timer, (HZ * 2) + jiffies); ··· 4121 4120 goto err_sw_init; 4122 4121 } 4123 4122 4124 - setup_timer(&adapter->service_timer, &ixgbevf_service_timer, 4125 - (unsigned long)adapter); 4123 + timer_setup(&adapter->service_timer, ixgbevf_service_timer, 0); 4126 4124 4127 4125 INIT_WORK(&adapter->service_task, ixgbevf_service_task); 4128 4126 set_bit(__IXGBEVF_SERVICE_INITED, &adapter->state);