Now that zxdh is main branch, ran the PVS studio analyzer over it and reported many new warnings. MESSAGES LocationCodeMessage Fails/Info zxdh_common.c (223) V1032 The pointer 'recv_buf' is cast to a more strictly aligned pointer type. zxdh_ethdev.c (816) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 813, 816. zxdh_ethdev.c (866) V560 A part of conditional expression is always false: rxmode->mq_mode != RTE_ETH_MQ_RX_NONE. zxdh_ethdev.c (709) V522 There might be dereferencing of a potential null pointer 'hdr_mz'. zxdh_ethdev.c (724) V522 There might be dereferencing of a potential null pointer 'txvq'. zxdh_ethdev.c (651) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_ethdev.c (651) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_ethdev.c (1322) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_ethdev.c (107) V1027 Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class. zxdh_ethdev.c (1188) V1027 Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class. zxdh_ethdev.c (1452) V1027 Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class. zxdh_ethdev_ops.c (723) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 721, 723. zxdh_ethdev_ops.c (744) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 742, 744. zxdh_ethdev_ops.c (769) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 767, 769. zxdh_ethdev_ops.c (791) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 789, 791. zxdh_ethdev_ops.c (818) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 816, 818. zxdh_ethdev_ops.c (840) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 838, 840. zxdh_ethdev_ops.c (1072) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1070, 1072. zxdh_ethdev_ops.c (1090) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1088, 1090. zxdh_ethdev_ops.c (1186) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1184, 1186. zxdh_ethdev_ops.c (1212) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1210, 1212. zxdh_ethdev_ops.c (357) V526 The 'memcmp' function returns 0 if corresponding buffers are equal. Consider examining the condition for mistakes. zxdh_ethdev_ops.c (1283) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. zxdh_ethdev_ops.c (1485) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. zxdh_ethdev_ops.c (1537) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. zxdh_ethdev_ops.c (329) V1048 The 'mac_filter->filter_flag' variable was assigned the same value. zxdh_msg.c (203) V547 Expression 'lock_id >= (511)' is always false. zxdh_msg.c (463) V557 Array overrun is possible. The value of 'dst_index' index could reach 255. zxdh_msg.c (463) V557 Array overrun is possible. The value of 'src_index' index could reach 255. zxdh_msg.c (464) V557 Array overrun is possible. The value of 'dst_index' index could reach 255. zxdh_msg.c (464) V557 Array overrun is possible. The value of 'src_index' index could reach 255. zxdh_msg.c (579) V1032 The pointer 'msg_header' is cast to a more strictly aligned pointer type. zxdh_msg.c (592) V1032 The pointer 'msg_header' is cast to a more strictly aligned pointer type. zxdh_msg.c (664) V1032 The pointer 'tmp_msg_header' is cast to a more strictly aligned pointer type. zxdh_msg.c (397) V1037 Two or more case-branches perform the same actions. Check lines: 397, 400 zxdh_msg.c (394) V525 The code contains the collection of similar blocks. Check items '2', '1', '1', '0' in lines 394, 397, 400, 403. zxdh_np.c (1068) V614 Potentially uninitialized variable 'temp_idx' used. zxdh_np.c (1524) V785 Constant expression in switch statement. zxdh_np.c (1925) V1032 The pointer 'form_buff' is cast to a more strictly aligned pointer type. zxdh_np.c (224) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (285) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (385) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (388) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (392) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (397) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (588) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (588) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (588) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (604) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (714) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (714) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (714) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (778) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (783) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (806) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (838) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (909) V576 Incorrect format. Consider checking the seventh actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (949) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1158) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1166) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1317) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1326) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1326) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1438) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1623) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1672) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1738) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1761) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1766) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1812) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1812) V576 Incorrect format. Consider checking the sixth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1832) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1877) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1911) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (2010) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (2040) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_np.c (1353) V1048 The 'rc' variable was assigned the same value. zxdh_np.c (1365) V1048 The 'rc' variable was assigned the same value. zxdh_np.c (2049) V1051 Consider checking for misprints. It's possible that the 'ppu_eram_baddr' should be checked here. zxdh_pci.c (181) V519 The 'notify_off' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 180, 181. zxdh_pci.c (422) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_queue.c (187) V763 Parameter 'nb_desc' is always rewritten in function body before being used. zxdh_queue.c (230) V763 Parameter 'nb_desc' is always rewritten in function body before being used. zxdh_queue.c (118) V547 Expression 'queue_type == ZXDH_VTNET_TQ' is always true. zxdh_queue.c (243) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. zxdh_queue.h (305) V1048 The 'vq->vq_packed.event_flags_shadow' variable was assigned the same value. zxdh_tables.c (350) V519 The 'ret' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 341, 350. zxdh_tables.c (58) V547 Expression '!hw->is_pf' is always false. zxdh_tables.c (64) V547 Expression '!port_attr.rss_enable' is always true. zxdh_tables.c (34) V1032 The pointer 'port_attr' is cast to a more strictly aligned pointer type. zxdh_tables.c (98) V1032 The pointer '& port_attr' is cast to a more strictly aligned pointer type. zxdh_tables.c (200) V1032 The pointer 'port_attr' is cast to a more strictly aligned pointer type. zxdh_tables.c (741) V1032 The pointer '& rss_vqid' is cast to a more strictly aligned pointer type. zxdh_tables.c (765) V1032 The pointer '& rss_vqid' is cast to a more strictly aligned pointer type. zxdh_tables.c (146) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The UNSIGNED integer type argument is expected. zxdh_tables.c (289) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_tables.c (324) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected. zxdh_tables.c (353) V576 Incorrect format. Consider checking the fifth actual argument of the 'rte_log' function. The SIGNED integer type argument is expected.