Ok, scan of ntnic with PVS studio after this bundle. Similar to Coverity it is a good automated tool for finding bugs. MESSAGES LocationCodeMessage Fails/Info nt4ga_adapter.c (129) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. Under certain conditions the pointer can be null. nt4ga_adapter.c (150) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. Under certain conditions the pointer can be null. nt4ga_stat.c (252) V595 The 'p_nt4ga_stat' pointer was utilized before it was verified against nullptr. Check lines: 252, 259. nt4ga_stat.c (47) V547 Expression 'p_nt4ga_stat' is always true. ntnic_dbsconfig.c (595) V595 The 'txvq' pointer was utilized before it was verified against nullptr. Check lines: 595, 597. ntnic_dbsconfig.c (765) V547 Expression 'irq_vector >= 0' is always false. ntnic_dbsconfig.c (400) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. hw_mod_backend.h (750) V1071 Consider inspecting the 'hw_mod_hsh_rcp_set' function. The return value is not always used. Total calls: 15, discarded results: 1. nt4ga_link_100g.c (259) V781 The value of the 'port' variable is checked after it was used. Perhaps there is a mistake in program logic. Check lines: 259, 261. nt4ga_link_100g.c (674) V560 A part of conditional expression is always true: res == 0. nt4ga_agx_link_100g.c (696) V523 The 'then' statement is equivalent to the 'else' statement. nt4ga_agx_link_100g.c (1012) V547 Expression 'res == 0' is always true. nt4ga_agx_link_100g.c (1021) V547 Expression 'res == 0' is always true. nt4ga_agx_link_100g.c (522) V781 The value of the 'port' variable is checked after it was used. Perhaps there is a mistake in program logic. Check lines: 522, 524. nt4ga_agx_link_100g.c (916) V619 The array 'nim_ctx' is being utilized as a pointer to single object. nt4ga_agx_link_100g.c (318) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nt4ga_agx_link_100g.c (370) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nt4ga_agx_link_100g.c (370) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nt4ga_agx_link_100g.c (385) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nt4ga_agx_link_100g.c (391) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nt4ga_agx_link_100g.c (976) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nt4ga_agx_link_100g.c (984) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nt4ga_agx_link_100g.c (380) V1051 Consider checking for misprints. It's possible that the 'state->link_up' should be checked here. i2c_nim.c (126) V547 Expression 'multi_byte == 1' is always true. i2c_nim.c (881) V519 The variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 880, 881. nthw_fpga_rst9563.c (62) V519 The 'p->mp_fld_rst_ptp' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 61, 62. nthw_fpga_rst9563.c (107) V547 Expression '!p->mp_fld_stat_tsm_ref_mmcm_locked' is always true. nthw_fpga_rst9563.c (129) V547 Expression '!p->mp_fld_sticky_tsm_ref_mmcm_unlocked' is always true. nthw_fpga_rst_nt200a0x.c (531) V519 The 'res' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 530, 531. nthw_fpga_rst_nt200a0x.c (62) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_fpga_rst_nt200a0x.c (72) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_fpga_nt400dxx.c (187) V547 Expression 'rst9574_ops' is always true. nthw_fpga_rst_nt400dxx.c (185) V595 The 'p_fpga_info' pointer was utilized before it was verified against nullptr. Check lines: 185, 194. nthw_fpga_rst_nt400dxx.c (60) V525 The code contains the collection of similar blocks. Check items 'nthw_prm_nt400dxx_platform_rst', 'nthw_prm_nt400dxx_periph_rst', 'nthw_prm_nt400dxx_periph_rst' in lines 60, 64, 66. nthw_fpga_rst_nt400dxx.c (116) V525 The code contains the collection of similar blocks. Check items '0', '1', '0', '0', '1' in lines 116, 122, 128, 134, 140. nthw_fpga.c (623) V595 The 'p_fpga_info' pointer was utilized before it was verified against nullptr. Check lines: 623, 639. nthw_fpga.c (317) V560 A part of conditional expression is always false: avr_vpd_info.n_avr_spi_version >= 3. nthw_fpga.c (387) V560 A part of conditional expression is always false: avr_vpd_info.n_avr_spi_version >= 3. nthw_fpga.c (469) V560 A part of conditional expression is always false: avr_vpd_info.n_avr_spi_version >= 3. nthw_fpga.c (831) V560 A part of conditional expression is always true: p_fpga_info. nthw_fpga.c (831) V571 Recurring check. The 'p_fpga_info' condition was already verified in line 830. nthw_fpga.c (524) V1086 A call of the 'memcpy' function will lead to underflow of the buffer '& p_vpd_board_info[0]'. nthw_hif.c (27) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_hif.c (82) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_iic.c (257) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_iic.c (242) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_pcie3.c (28) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_pcm_nt400dxx.c (45) V525 The code contains the collection of similar blocks. Check items 'nthw_register_query_field', 'nthw_register_get_field', 'nthw_register_get_field' in lines 45, 49, 53. nthw_phy_tile.c (821) V547 Expression 'i == 0' is always false. nthw_phy_tile.c (800) V1048 The 'xcvr_instance' variable was assigned the same value. nthw_phy_tile.c (86) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. nthw_rpf.c (26) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_sdc.c (26) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_sdc.c (135) V547 Expression 'pn_result_mask' is always true. nthw_si5340.c (48) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_spi_v3.c (140) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_spi_v3.c (148) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_spi_v3.c (154) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_spi_v3.c (159) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_tsm.c (92) V547 Expression 'p_ts' is always true. nthw_tsm.c (111) V547 Expression 'p_time' is always true. flow_api.c (833) V547 Expression 'ndev' is always true. flow_api.c (999) V1029 Numeric Truncation Error. Return value of the 'strlen' function is written to the 16-bit variable. flow_api.c (1001) V1029 Numeric Truncation Error. Return value of the 'strlen' function is written to the 16-bit variable. flow_api.c (214) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_api.c (227) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_api.c (428) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_group.c (35) V522 There might be dereferencing of a potential null pointer 'group_handle'. Check lines: 35, 32. flow_hsh_cfg.c (74) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_hsh_cfg.c (77) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_id_table.c (71) V522 There might be dereferencing of a potential null pointer 'handle'. Check lines: 71, 69. flow_km.c (583) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_km.c (614) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_km.c (791) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_km.c (92) V769 The '(char *) km->cam_dist' pointer in the expression could be nullptr. In such case, resulting value of arithmetic operations on this pointer will be senseless and it should not be used. Check lines: 92, 85. hw_mod_flm.c (836) V547 Expression 'be->flm.ver < 18' is always false. hw_mod_hsh.c (127) V568 It's odd that 'sizeof()' operator evaluates the size of a pointer to a class, but not the size of the 'be->hsh.v5.rcp' class object. hw_mod_hsh.c (130) V1064 The 'buffer_size' operand of integer division is less than the 'element_size' one. The result will always be zero. hw_mod_hsh.c (133) V560 A part of conditional expression is always false: index < max_idx. Unsigned type value is never < 0. hw_mod_hsh.c (133) V560 A part of conditional expression is always false: word_off < max_idx. Unsigned type value is never < 0. hw_mod_pdb.c (137) V568 It's odd that 'sizeof()' operator evaluates the size of a pointer to a class, but not the size of the 'be->pdb.v9.rcp' class object. hw_mod_pdb.c (140) V1064 The 'buffer_size' operand of integer division is less than the 'element_size' one. The result will always be zero. hw_mod_pdb.c (143) V560 A part of conditional expression is always false: * value < max_idx. Unsigned type value is never < 0. hw_mod_pdb.c (143) V560 A part of conditional expression is always false: index < max_idx. Unsigned type value is never < 0. flm_evt_queue.c (194) V557 Array overrun is possible. The value of 'port' index could reach 127. flm_evt_queue.c (202) V557 Array overrun is possible. The value of 'port' index could reach 127. flm_evt_queue.c (80) V1037 Two or more case-branches perform the same actions. Check lines: 80, 88 flm_evt_queue.c (84) V1037 Two or more case-branches perform the same actions. Check lines: 84, 92 flow_api_hw_db_inline.c (2461) V1086 A call of the 'memset' function will lead to underflow of the buffer '& db->flm[idx.id1].data'. flow_api_hw_db_inline.c (426) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (428) V576 Incorrect format. Consider checking the fifth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (428) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (428) V576 Incorrect format. Consider checking the sixth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (428) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (438) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (446) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (455) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the eighth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the fifth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the seventh actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the sixth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (457) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (467) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (482) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (494) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (509) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (518) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (526) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (560) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (578) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (579) V576 Incorrect format. Consider checking the fifth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (579) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (579) V576 Incorrect format. Consider checking the sixth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (579) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (581) V576 Incorrect format. Consider checking the fifth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (581) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (581) V576 Incorrect format. Consider checking the sixth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (581) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (583) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (583) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The integer argument of 32-bit size is expected. flow_api_hw_db_inline.c (596) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (604) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (610) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (618) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (619) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (620) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (621) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (627) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (628) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (629) V576 Incorrect format. Consider checking the fourth actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (629) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (636) V576 Incorrect format. Consider checking the third actual argument of the 'fprintf' function. The SIGNED integer type argument is expected. flow_api_hw_db_inline.c (706) V1037 Two or more case-branches perform the same actions. Check lines: 706, 736, 742 flow_api_profile_inline.c (117) V629 Consider inspecting the '1 << (shift - 1)' expression. Bit shifting of the 32-bit value with a subsequent expansion to the 64-bit type. flow_api_profile_inline.c (738) V674 The '0.01' literal of the 'double' type is compared to a value of the 'int' type. Consider inspecting the '0.01 > 0' expression. flow_api_profile_inline.c (3469) V522 There might be dereferencing of a potential null pointer 'fh'. Check lines: 3469, 3467. flow_api_profile_inline.c (4925) V522 There might be dereferencing of a potential null pointer 'template'. Check lines: 4925, 4923. flow_api_profile_inline.c (4990) V522 There might be dereferencing of a potential null pointer 'template'. Check lines: 4990, 4988. flow_api_profile_inline.c (5262) V522 There might be dereferencing of a potential null pointer 'fh'. Check lines: 5262, 5260. flow_api_profile_inline.c (4307) V547 Expression 'err' is always false. flow_api_profile_inline.c (2040) V560 A part of conditional expression is always true: match_cnt == 1. flow_api_profile_inline.c (196) V1032 The pointer is cast to a more strictly aligned pointer type flow_api_profile_inline.c (254) V1032 The pointer is cast to a more strictly aligned pointer type flow_api_profile_inline.c (294) V1032 The pointer is cast to a more strictly aligned pointer type flow_api_profile_inline.c (347) V1032 The pointer is cast to a more strictly aligned pointer type flow_api_profile_inline.c (434) V1032 The pointer 'data' is cast to a more strictly aligned pointer type. flow_api_profile_inline.c (510) V1032 The pointer 'data' is cast to a more strictly aligned pointer type. flow_api_profile_inline.c (980) V1032 The pointer is cast to a more strictly aligned pointer type flow_api_profile_inline.c (4758) V523 The 'then' statement is equivalent to the 'else' statement. flow_api_profile_inline.c (2272) V525 The code contains the collection of similar blocks. Check items 'qw_data', 'qw_data', 'qw_mask' in lines 2272, 2273, 2275. flow_api_profile_inline.c (1160) V576 Incorrect format. Consider checking the eighth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. flow_api_profile_inline.c (1224) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_api_profile_inline.c (3133) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_api_profile_inline.c (4507) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. flow_api_profile_inline.c (3573) V1048 The 'action_set_data.contains_jump' variable was assigned the same value. flow_api_profile_inline.c (972) V1051 Consider checking for misprints. It's possible that the 'flm_id' should be checked here. flow_nthw_cat.c (29) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_csu.c (33) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_flm.c (30) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_flm.c (736) V1020 The function exited without calling the 'rte_spinlock_unlock' function. Check lines: 736, 729. flow_nthw_hfu.c (33) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_hsh.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_info.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_km.c (43) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_pdb.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_qsl.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_rpp_lr.c (33) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_rpp_lr.c (65) V1004 The 'p->m_rpp_lr' pointer was used unsafely after it was verified against nullptr. Check lines: 57, 65. flow_nthw_slc_lr.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_tx_cpy.c (34) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_tx_ins.c (33) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. flow_nthw_tx_rpl.c (33) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_fpga_model.c (491) V595 The 'p->m_rpp_lr' pointer was utilized before it was verified against nullptr. Check lines: 'nthw_fpga_model.c:479', 'nthw_fpga_model.c:491', 'flow_nthw_rpp_lr.c:65', 'flow_nthw_rpp_lr.c:69'. nthw_fpga_model.c (186) V597 The compiler could delete the 'memset' function call, which is used to flush 'p' object. The memset_s() function should be used to erase the private data. nthw_fpga_model.c (365) V522 Dereferencing of the null pointer might take place. The potential null pointer is passed into 'nthw_fpga_get_param_info' function. Inspect the second argument. Check lines: 'nthw_fpga_model.c:365', 'nthw_fpga.c:25', 'nthw_fpga.c:687'. nthw_fpga_model.c (906) V576 Incorrect format. Consider checking the 14th actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_fpga_model.c (906) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (515) V547 Expression '(word_cnt + 3) > (0x4000)' is always false. nthw_rac.c (34) V575 The potential null pointer is passed into 'memset' function. Inspect the first argument. Check lines: 34, 33. nthw_rac.c (265) V576 Incorrect format. Consider checking the eighth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (469) V576 Incorrect format. Consider checking the eighth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (508) V576 Incorrect format. Consider checking the eighth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (560) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (578) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (747) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (768) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. nthw_rac.c (94) V1048 The 'p->mp_reg_dbg_data' variable was assigned the same value. ntnic_meter.c (89) V525 The code contains the collection of similar blocks. Check items '0', '1', '0', '0', '0', '0' in lines 89, 90, 91, 94, 95, 96. nthw_stat.c (257) V1048 The 'p->mn_stat_layout_version' variable was assigned the same value. ntnic_ethdev.c (2194) V547 Expression 'err == 0' is always true. ntnic_ethdev.c (334) V595 The 'internals->p_drv' pointer was utilized before it was verified against nullptr. Check lines: 334, 350. ntnic_ethdev.c (2268) V547 Expression '(1 << n_intf_no) & ~n_port_mask' is always false. ntnic_ethdev.c (191) V560 A part of conditional expression is always false: !p_nt4ga_stat. ntnic_ethdev.c (238) V560 A part of conditional expression is always false: !p_nt4ga_stat. ntnic_ethdev.c (1763) V1044 Loop break conditions do not depend on the number of iterations. ntnic_ethdev.c (1900) V1044 Loop break conditions do not depend on the number of iterations. ntnic_ethdev.c (1935) V1044 Loop break conditions do not depend on the number of iterations. ntnic_ethdev.c (1942) V1044 Loop break conditions do not depend on the number of iterations. ntnic_ethdev.c (1370) V547 Expression 'port == internals->n_intf_no' is always true. ntnic_ethdev.c (1396) V547 Expression 'port == internals->n_intf_no' is always true. ntnic_ethdev.c (375) V574 The 'hw_recv' pointer is used simultaneously as an array and as a pointer to single object. Check lines: 375, 457. ntnic_ethdev.c (844) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (866) V576 Incorrect format. Consider checking the tenth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (907) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (974) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. ntnic_ethdev.c (974) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. ntnic_ethdev.c (1012) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (1042) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (1076) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (1136) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (1277) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. ntnic_ethdev.c (1335) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. ntnic_ethdev.c (2302) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_ethdev.c (2308) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. ntnic_filter.c (481) V595 The 'internals' pointer was utilized before it was verified against nullptr. Check lines: 481, 487. ntnic_filter.c (1159) V560 A part of conditional expression is always false: !p_nt4ga_stat. ntnic_filter.c (357) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. ntnic_filter.c (1121) V1027 Pointer to an object of the 'flow_handle' class is cast to unrelated 'rte_flow' class. ntnic_filter.c (1143) V1027 Pointer to an object of the 'rte_flow' class is cast to unrelated 'flow_handle' class. ntnic_vfio.c (81) V1048 The 'vfio->container_fd' variable was assigned the same value. On Thu, Feb 20, 2025 at 2:04 PM Serhii Iliushyk wrote: > This patchset adds support for the new adapter NT400D13. > > Danylo Vodopianov (23): > net/ntnic: add link agx 100g > net/ntnic: add link state machine > net/ntnic: add rpf and gfg init > net/ntnic: add agx setup for port > net/ntnic: add host loopback init > net/ntnic: add line loopback init > net/ntnic: add 100 gbps port init > net/ntnic: add port post init > net/ntnic: add nim low power API > net/ntnic: add link handling API > net/ntnic: add port init to the state machine > net/ntnic: add port disable API > net/ntnic: add nt400d13 pcm init > net/ntnic: add HIF clock test > net/ntnic: add nt400d13 PRM module init > net/ntnic: add nt400d13 PRM module reset > net/ntnic: add SPI v3 support for FPGA > net/ntnic: add i2cm init > net/ntnic: add pca init > net/ntnic: add pcal init > net/ntnic: add reset PHY init > net/ntnic: add igam module init > net/ntnic: init IGAM and config PLL for FPGA > > Serhii Iliushyk (9): > net/ntnic: add minimal initialization new NIC NT400D13 > net/ntnic: add minimal reset FPGA > net/ntnic: add FPGA modules and registers > net/ntnic: add setup for fpga reset > net/ntnic: add default reset setting for NT400D13 > net/ntnic: add DDR calibration to reset stage > net/ntnic: add PHY ftile reset > net/ntnic: add clock init > net/ntnic: revert untrusted loop bound > > doc/guides/nics/ntnic.rst | 7 +- > doc/guides/rel_notes/release_25_03.rst | 4 + > drivers/net/ntnic/adapter/nt4ga_adapter.c | 9 + > drivers/net/ntnic/include/nt4ga_link.h | 7 + > drivers/net/ntnic/include/nthw_gfg.h | 33 + > drivers/net/ntnic/include/ntnic_nim.h | 5 + > .../include/ntnic_nthw_fpga_rst_nt400dxx.h | 34 + > .../link_agx_100g/nt4ga_agx_link_100g.c | 1029 ++++++ > drivers/net/ntnic/meson.build | 16 + > drivers/net/ntnic/nim/i2c_nim.c | 158 +- > drivers/net/ntnic/nim/i2c_nim.h | 6 + > ...00D13_U62_Si5332-GM2-RevD-1_V5-Registers.h | 425 +++ > .../net/ntnic/nthw/core/include/nthw_fpga.h | 10 + > .../net/ntnic/nthw/core/include/nthw_gmf.h | 2 + > .../net/ntnic/nthw/core/include/nthw_hif.h | 4 + > .../net/ntnic/nthw/core/include/nthw_i2cm.h | 3 + > .../net/ntnic/nthw/core/include/nthw_igam.h | 40 + > .../ntnic/nthw/core/include/nthw_pca9532.h | 25 + > .../ntnic/nthw/core/include/nthw_pcal6416a.h | 33 + > .../nthw/core/include/nthw_pcm_nt400dxx.h | 40 + > .../ntnic/nthw/core/include/nthw_phy_tile.h | 156 + > .../nthw/core/include/nthw_prm_nt400dxx.h | 32 + > .../nthw/core/include/nthw_si5332_si5156.h | 63 + > .../net/ntnic/nthw/core/include/nthw_spi_v3.h | 107 + > .../net/ntnic/nthw/core/include/nthw_spim.h | 58 + > .../net/ntnic/nthw/core/include/nthw_spis.h | 63 + > .../nthw/core/nt400dxx/nthw_fpga_nt400dxx.c | 220 ++ > .../core/nt400dxx/reset/nthw_fpga_rst9574.c | 377 ++ > .../nt400dxx/reset/nthw_fpga_rst_nt400dxx.c | 427 +++ > drivers/net/ntnic/nthw/core/nthw_fpga.c | 464 +++ > drivers/net/ntnic/nthw/core/nthw_gfg.c | 340 ++ > drivers/net/ntnic/nthw/core/nthw_gmf.c | 41 + > drivers/net/ntnic/nthw/core/nthw_hif.c | 92 + > drivers/net/ntnic/nthw/core/nthw_i2cm.c | 139 + > drivers/net/ntnic/nthw/core/nthw_igam.c | 93 + > drivers/net/ntnic/nthw/core/nthw_pca9532.c | 60 + > drivers/net/ntnic/nthw/core/nthw_pcal6416a.c | 103 + > .../net/ntnic/nthw/core/nthw_pcm_nt400dxx.c | 80 + > drivers/net/ntnic/nthw/core/nthw_phy_tile.c | 1242 +++++++ > .../net/ntnic/nthw/core/nthw_prm_nt400dxx.c | 55 + > .../net/ntnic/nthw/core/nthw_si5332_si5156.c | 142 + > drivers/net/ntnic/nthw/core/nthw_spi_v3.c | 358 ++ > drivers/net/ntnic/nthw/core/nthw_spim.c | 113 + > drivers/net/ntnic/nthw/core/nthw_spis.c | 121 + > drivers/net/ntnic/nthw/nthw_drv.h | 31 + > drivers/net/ntnic/nthw/nthw_platform.c | 3 + > drivers/net/ntnic/nthw/nthw_platform_drv.h | 2 + > .../supported/nthw_fpga_9574_055_049_0000.c | 3124 +++++++++++++++++ > .../nthw/supported/nthw_fpga_instances.c | 5 +- > .../nthw/supported/nthw_fpga_instances.h | 1 + > .../ntnic/nthw/supported/nthw_fpga_mod_defs.h | 11 + > .../nthw/supported/nthw_fpga_mod_str_map.c | 11 + > .../ntnic/nthw/supported/nthw_fpga_reg_defs.h | 11 + > .../nthw/supported/nthw_fpga_reg_defs_igam.h | 32 + > .../supported/nthw_fpga_reg_defs_pci_ta.h | 33 + > .../nthw_fpga_reg_defs_pcm_nt400dxx.h | 29 + > .../nthw/supported/nthw_fpga_reg_defs_pdi.h | 49 + > .../supported/nthw_fpga_reg_defs_phy_tile.h | 213 ++ > .../nthw_fpga_reg_defs_prm_nt400dxx.h | 26 + > .../nthw/supported/nthw_fpga_reg_defs_rfd.h | 38 + > .../supported/nthw_fpga_reg_defs_rst9574.h | 35 + > .../nthw/supported/nthw_fpga_reg_defs_spim.h | 76 + > .../nthw/supported/nthw_fpga_reg_defs_spis.h | 51 + > .../nthw/supported/nthw_fpga_reg_defs_tint.h | 28 + > drivers/net/ntnic/ntnic_ethdev.c | 1 + > drivers/net/ntnic/ntnic_filter/ntnic_filter.c | 2 +- > drivers/net/ntnic/ntnic_mod_reg.c | 47 + > drivers/net/ntnic/ntnic_mod_reg.h | 25 + > 68 files changed, 10709 insertions(+), 11 deletions(-) > create mode 100644 drivers/net/ntnic/include/nthw_gfg.h > create mode 100644 > drivers/net/ntnic/include/ntnic_nthw_fpga_rst_nt400dxx.h > create mode 100644 > drivers/net/ntnic/link_mgmt/link_agx_100g/nt4ga_agx_link_100g.c > create mode 100644 > drivers/net/ntnic/nthw/core/include/NT400D13_U62_Si5332-GM2-RevD-1_V5-Registers.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_igam.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_pca9532.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_pcal6416a.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_pcm_nt400dxx.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_phy_tile.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_prm_nt400dxx.h > create mode 100644 > drivers/net/ntnic/nthw/core/include/nthw_si5332_si5156.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_spi_v3.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_spim.h > create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_spis.h > create mode 100644 > drivers/net/ntnic/nthw/core/nt400dxx/nthw_fpga_nt400dxx.c > create mode 100644 > drivers/net/ntnic/nthw/core/nt400dxx/reset/nthw_fpga_rst9574.c > create mode 100644 > drivers/net/ntnic/nthw/core/nt400dxx/reset/nthw_fpga_rst_nt400dxx.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_gfg.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_igam.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_pca9532.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_pcal6416a.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_pcm_nt400dxx.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_phy_tile.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_prm_nt400dxx.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_si5332_si5156.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_spi_v3.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_spim.c > create mode 100644 drivers/net/ntnic/nthw/core/nthw_spis.c > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_9574_055_049_0000.c > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_igam.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_pci_ta.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_pcm_nt400dxx.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_pdi.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_phy_tile.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_prm_nt400dxx.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_rfd.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_rst9574.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_spim.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_spis.h > create mode 100644 > drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_tint.h > > -- > 2.45.0 > >