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

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'intel-wired-lan-driver-updates-2023-10-17'

Jacob Keller says:

====================
Intel Wired LAN Driver Updates 2023-10-17

This series contains cleanups for all the Intel drivers relating to their
use of format specifiers and the use of strncpy.

Jesse fixes various -Wformat warnings across all the Intel networking,
including various cases where a "%s" string format specifier is preferred,
and using kasprintf instead of snprintf.

Justin replaces all of the uses of the now deprecated strncpy with a more
modern string function, primarily strscpy.
====================

Link: https://lore.kernel.org/r/20231017190411.2199743-1-jacob.e.keller@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+58 -64
+1 -1
drivers/net/ethernet/intel/e100.c
··· 2841 2841 netdev->netdev_ops = &e100_netdev_ops; 2842 2842 netdev->ethtool_ops = &e100_ethtool_ops; 2843 2843 netdev->watchdog_timeo = E100_WATCHDOG_PERIOD; 2844 - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); 2844 + strscpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); 2845 2845 2846 2846 nic = netdev_priv(netdev); 2847 2847 netif_napi_add_weight(netdev, &nic->napi, e100_poll, E100_NAPI_WEIGHT);
+1 -1
drivers/net/ethernet/intel/e1000/e1000_main.c
··· 1014 1014 netdev->watchdog_timeo = 5 * HZ; 1015 1015 netif_napi_add(netdev, &adapter->napi, e1000_clean); 1016 1016 1017 - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); 1017 + strscpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); 1018 1018 1019 1019 adapter->bd_number = cards_found; 1020 1020
+4 -4
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
··· 448 448 { 449 449 struct fm10k_intfc *interface = netdev_priv(dev); 450 450 451 - strncpy(info->driver, fm10k_driver_name, 452 - sizeof(info->driver) - 1); 453 - strncpy(info->bus_info, pci_name(interface->pdev), 454 - sizeof(info->bus_info) - 1); 451 + strscpy(info->driver, fm10k_driver_name, 452 + sizeof(info->driver)); 453 + strscpy(info->bus_info, pci_name(interface->pdev), 454 + sizeof(info->bus_info)); 455 455 } 456 456 457 457 static void fm10k_get_pauseparam(struct net_device *dev,
+3 -4
drivers/net/ethernet/intel/i40e/i40e_ddp.c
··· 456 456 char profile_name[sizeof(I40E_DDP_PROFILE_PATH) 457 457 + I40E_DDP_PROFILE_NAME_MAX]; 458 458 459 - profile_name[sizeof(profile_name) - 1] = 0; 460 - strncpy(profile_name, I40E_DDP_PROFILE_PATH, 461 - sizeof(profile_name) - 1); 462 - strncat(profile_name, flash->data, I40E_DDP_PROFILE_NAME_MAX); 459 + scnprintf(profile_name, sizeof(profile_name), "%s%s", 460 + I40E_DDP_PROFILE_PATH, flash->data); 461 + 463 462 /* Load DDP recipe. */ 464 463 status = request_firmware(&ddp_config, profile_name, 465 464 &netdev->dev);
+4 -2
drivers/net/ethernet/intel/i40e/i40e_ethtool.c
··· 2514 2514 u8 *p = data; 2515 2515 2516 2516 for (i = 0; i < I40E_PRIV_FLAGS_STR_LEN; i++) 2517 - ethtool_sprintf(&p, i40e_gstrings_priv_flags[i].flag_string); 2517 + ethtool_sprintf(&p, "%s", 2518 + i40e_gstrings_priv_flags[i].flag_string); 2518 2519 if (pf->hw.pf_id != 0) 2519 2520 return; 2520 2521 for (i = 0; i < I40E_GL_PRIV_FLAGS_STR_LEN; i++) 2521 - ethtool_sprintf(&p, i40e_gl_gstrings_priv_flags[i].flag_string); 2522 + ethtool_sprintf(&p, "%s", 2523 + i40e_gl_gstrings_priv_flags[i].flag_string); 2522 2524 } 2523 2525 2524 2526 static void i40e_get_strings(struct net_device *netdev, u32 stringset,
+3 -5
drivers/net/ethernet/intel/iavf/iavf_ethtool.c
··· 395 395 { 396 396 unsigned int i; 397 397 398 - for (i = 0; i < IAVF_PRIV_FLAGS_STR_LEN; i++) { 399 - snprintf(data, ETH_GSTRING_LEN, "%s", 400 - iavf_gstrings_priv_flags[i].flag_string); 401 - data += ETH_GSTRING_LEN; 402 - } 398 + for (i = 0; i < IAVF_PRIV_FLAGS_STR_LEN; i++) 399 + ethtool_sprintf(&data, "%s", 400 + iavf_gstrings_priv_flags[i].flag_string); 403 401 } 404 402 405 403 /**
+8 -14
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
··· 1378 1378 VIRTCHNL_OP_DISABLE_VLAN_INSERTION_V2); 1379 1379 } 1380 1380 1381 - #define IAVF_MAX_SPEED_STRLEN 13 1382 - 1383 1381 /** 1384 1382 * iavf_print_link_message - print link up or down 1385 1383 * @adapter: adapter structure ··· 1394 1396 netdev_info(netdev, "NIC Link is Down\n"); 1395 1397 return; 1396 1398 } 1397 - 1398 - speed = kzalloc(IAVF_MAX_SPEED_STRLEN, GFP_KERNEL); 1399 - if (!speed) 1400 - return; 1401 1399 1402 1400 if (ADV_LINK_SUPPORT(adapter)) { 1403 1401 link_speed_mbps = adapter->link_speed_mbps; ··· 1432 1438 1433 1439 print_link_msg: 1434 1440 if (link_speed_mbps > SPEED_1000) { 1435 - if (link_speed_mbps == SPEED_2500) 1436 - snprintf(speed, IAVF_MAX_SPEED_STRLEN, "2.5 Gbps"); 1437 - else 1441 + if (link_speed_mbps == SPEED_2500) { 1442 + speed = kasprintf(GFP_KERNEL, "%s", "2.5 Gbps"); 1443 + } else { 1438 1444 /* convert to Gbps inline */ 1439 - snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%d %s", 1440 - link_speed_mbps / 1000, "Gbps"); 1445 + speed = kasprintf(GFP_KERNEL, "%d Gbps", 1446 + link_speed_mbps / 1000); 1447 + } 1441 1448 } else if (link_speed_mbps == SPEED_UNKNOWN) { 1442 - snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%s", "Unknown Mbps"); 1449 + speed = kasprintf(GFP_KERNEL, "%s", "Unknown Mbps"); 1443 1450 } else { 1444 - snprintf(speed, IAVF_MAX_SPEED_STRLEN, "%d %s", 1445 - link_speed_mbps, "Mbps"); 1451 + speed = kasprintf(GFP_KERNEL, "%d Mbps", link_speed_mbps); 1446 1452 } 1447 1453 1448 1454 netdev_info(netdev, "NIC Link is Up Speed is %s Full Duplex\n", speed);
+4 -3
drivers/net/ethernet/intel/ice/ice_ethtool.c
··· 1133 1133 switch (stringset) { 1134 1134 case ETH_SS_STATS: 1135 1135 for (i = 0; i < ICE_VSI_STATS_LEN; i++) 1136 - ethtool_sprintf(&p, 1136 + ethtool_sprintf(&p, "%s", 1137 1137 ice_gstrings_vsi_stats[i].stat_string); 1138 1138 1139 1139 if (ice_is_port_repr_netdev(netdev)) ··· 1153 1153 return; 1154 1154 1155 1155 for (i = 0; i < ICE_PF_STATS_LEN; i++) 1156 - ethtool_sprintf(&p, 1156 + ethtool_sprintf(&p, "%s", 1157 1157 ice_gstrings_pf_stats[i].stat_string); 1158 1158 1159 1159 for (i = 0; i < ICE_MAX_USER_PRIORITY; i++) { ··· 1170 1170 break; 1171 1171 case ETH_SS_PRIV_FLAGS: 1172 1172 for (i = 0; i < ICE_PRIV_FLAG_ARRAY_SIZE; i++) 1173 - ethtool_sprintf(&p, ice_gstrings_priv_flags[i].name); 1173 + ethtool_sprintf(&p, "%s", 1174 + ice_gstrings_priv_flags[i].name); 1174 1175 break; 1175 1176 default: 1176 1177 break;
+2 -2
drivers/net/ethernet/intel/ice/ice_ptp.c
··· 39 39 40 40 /* initialize with defaults */ 41 41 for (i = 0; i < NUM_PTP_PINS_E810T; i++) { 42 - snprintf(ptp_pins[i].name, sizeof(ptp_pins[i].name), 43 - "%s", ice_pin_desc_e810t[i].name); 42 + strscpy(ptp_pins[i].name, ice_pin_desc_e810t[i].name, 43 + sizeof(ptp_pins[i].name)); 44 44 ptp_pins[i].index = ice_pin_desc_e810t[i].index; 45 45 ptp_pins[i].func = ice_pin_desc_e810t[i].func; 46 46 ptp_pins[i].chan = ice_pin_desc_e810t[i].chan;
+2 -2
drivers/net/ethernet/intel/igb/igb_ethtool.c
··· 2356 2356 break; 2357 2357 case ETH_SS_STATS: 2358 2358 for (i = 0; i < IGB_GLOBAL_STATS_LEN; i++) 2359 - ethtool_sprintf(&p, 2359 + ethtool_sprintf(&p, "%s", 2360 2360 igb_gstrings_stats[i].stat_string); 2361 2361 for (i = 0; i < IGB_NETDEV_STATS_LEN; i++) 2362 - ethtool_sprintf(&p, 2362 + ethtool_sprintf(&p, "%s", 2363 2363 igb_gstrings_net_stats[i].stat_string); 2364 2364 for (i = 0; i < adapter->num_tx_queues; i++) { 2365 2365 ethtool_sprintf(&p, "tx_queue_%u_packets", i);
+19 -20
drivers/net/ethernet/intel/igb/igb_main.c
··· 3069 3069 { 3070 3070 struct e1000_hw *hw = &adapter->hw; 3071 3071 struct e1000_fw_version fw; 3072 + char *lbuf; 3072 3073 3073 3074 igb_get_fw_version(hw, &fw); 3074 3075 ··· 3077 3076 case e1000_i210: 3078 3077 case e1000_i211: 3079 3078 if (!(igb_get_flash_presence_i210(hw))) { 3080 - snprintf(adapter->fw_version, 3081 - sizeof(adapter->fw_version), 3082 - "%2d.%2d-%d", 3083 - fw.invm_major, fw.invm_minor, 3084 - fw.invm_img_type); 3079 + lbuf = kasprintf(GFP_KERNEL, "%2d.%2d-%d", 3080 + fw.invm_major, fw.invm_minor, 3081 + fw.invm_img_type); 3085 3082 break; 3086 3083 } 3087 3084 fallthrough; 3088 3085 default: 3089 - /* if option is rom valid, display its version too */ 3086 + /* if option rom is valid, display its version too */ 3090 3087 if (fw.or_valid) { 3091 - snprintf(adapter->fw_version, 3092 - sizeof(adapter->fw_version), 3093 - "%d.%d, 0x%08x, %d.%d.%d", 3094 - fw.eep_major, fw.eep_minor, fw.etrack_id, 3095 - fw.or_major, fw.or_build, fw.or_patch); 3088 + lbuf = kasprintf(GFP_KERNEL, "%d.%d, 0x%08x, %d.%d.%d", 3089 + fw.eep_major, fw.eep_minor, 3090 + fw.etrack_id, fw.or_major, fw.or_build, 3091 + fw.or_patch); 3096 3092 /* no option rom */ 3097 3093 } else if (fw.etrack_id != 0X0000) { 3098 - snprintf(adapter->fw_version, 3099 - sizeof(adapter->fw_version), 3100 - "%d.%d, 0x%08x", 3101 - fw.eep_major, fw.eep_minor, fw.etrack_id); 3094 + lbuf = kasprintf(GFP_KERNEL, "%d.%d, 0x%08x", 3095 + fw.eep_major, fw.eep_minor, 3096 + fw.etrack_id); 3102 3097 } else { 3103 - snprintf(adapter->fw_version, 3104 - sizeof(adapter->fw_version), 3105 - "%d.%d.%d", 3106 - fw.eep_major, fw.eep_minor, fw.eep_build); 3098 + lbuf = kasprintf(GFP_KERNEL, "%d.%d.%d", fw.eep_major, 3099 + fw.eep_minor, fw.eep_build); 3107 3100 } 3108 3101 break; 3109 3102 } 3103 + 3104 + /* the truncate happens here if it doesn't fit */ 3105 + strscpy(adapter->fw_version, lbuf, sizeof(adapter->fw_version)); 3106 + kfree(lbuf); 3110 3107 } 3111 3108 3112 3109 /** ··· 3263 3264 igb_set_ethtool_ops(netdev); 3264 3265 netdev->watchdog_timeo = 5 * HZ; 3265 3266 3266 - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); 3267 + strscpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); 3267 3268 3268 3269 netdev->mem_start = pci_resource_start(pdev, 0); 3269 3270 netdev->mem_end = pci_resource_end(pdev, 0);
+1 -1
drivers/net/ethernet/intel/igbvf/netdev.c
··· 2785 2785 2786 2786 igbvf_set_ethtool_ops(netdev); 2787 2787 netdev->watchdog_timeo = 5 * HZ; 2788 - strncpy(netdev->name, pci_name(pdev), sizeof(netdev->name) - 1); 2788 + strscpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); 2789 2789 2790 2790 adapter->bd_number = cards_found++; 2791 2791
+3 -2
drivers/net/ethernet/intel/igc/igc_ethtool.c
··· 773 773 break; 774 774 case ETH_SS_STATS: 775 775 for (i = 0; i < IGC_GLOBAL_STATS_LEN; i++) 776 - ethtool_sprintf(&p, igc_gstrings_stats[i].stat_string); 776 + ethtool_sprintf(&p, "%s", 777 + igc_gstrings_stats[i].stat_string); 777 778 for (i = 0; i < IGC_NETDEV_STATS_LEN; i++) 778 - ethtool_sprintf(&p, 779 + ethtool_sprintf(&p, "%s", 779 780 igc_gstrings_net_stats[i].stat_string); 780 781 for (i = 0; i < adapter->num_tx_queues; i++) { 781 782 ethtool_sprintf(&p, "tx_queue_%u_packets", i);
+1 -1
drivers/net/ethernet/intel/igc/igc_main.c
··· 6935 6935 */ 6936 6936 igc_get_hw_control(adapter); 6937 6937 6938 - strncpy(netdev->name, "eth%d", IFNAMSIZ); 6938 + strscpy(netdev->name, "eth%d", sizeof(netdev->name)); 6939 6939 err = register_netdev(netdev); 6940 6940 if (err) 6941 6941 goto err_register;
+2 -2
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
··· 1413 1413 switch (stringset) { 1414 1414 case ETH_SS_TEST: 1415 1415 for (i = 0; i < IXGBE_TEST_LEN; i++) 1416 - ethtool_sprintf(&p, ixgbe_gstrings_test[i]); 1416 + ethtool_sprintf(&p, "%s", ixgbe_gstrings_test[i]); 1417 1417 break; 1418 1418 case ETH_SS_STATS: 1419 1419 for (i = 0; i < IXGBE_GLOBAL_STATS_LEN; i++) 1420 - ethtool_sprintf(&p, 1420 + ethtool_sprintf(&p, "%s", 1421 1421 ixgbe_gstrings_stats[i].stat_string); 1422 1422 for (i = 0; i < netdev->num_tx_queues; i++) { 1423 1423 ethtool_sprintf(&p, "tx_queue_%u_packets", i);