<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:arial,sans-serif;font-size:small">Ran PVS studio against this patchset. The resulting warnings for drivers/net/rnp were:<br></div><div class="gmail_default" style="font-family:arial,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,sans-serif;font-size:small"><table style="color:rgb(0,0,0);font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-size-adjust:none;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:12pt;line-height:normal;font-family:"normal Century Gothic";width:2273px"><caption style="font-weight:bold;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;border:none">MESSAGES</caption><tbody><tr style="background:black;color:white"><th style="width:677.5px">Location</th><th style="width:111.25px">Code</th><th style="width:1470.25px">Message</th></tr><tr style="background:lightcyan"><td colspan="5" style="padding:0px;text-align:center;vertical-align:top;color:red;font-size:1.2em">Fails/Info</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/base/rnp_mac.c">rnp_mac.c (251)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v610/">V610</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Undefined behavior. Check the shift operator '>>='. The right operand ('....' = [0..65535]) is greater than or equal to the length in bits of the promoted left operand.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/base/rnp_mac.c">rnp_mac.c (198)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v525/">V525</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The code contains the collection of similar blocks. Check items 'flt_reg', 'vlan_reg', 'vlan_reg' in lines 198, 199, 200.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/base/rnp_mac.c">rnp_mac.c (202)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v525/">V525</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The code contains the collection of similar blocks. Check items 'flt_reg', 'vlan_reg', 'vlan_reg' in lines 202, 203, 204.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/base/rnp_osdep.h">rnp_osdep.h (129)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v576/">V576</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Incorrect format. Consider checking the fourth actual argument of the 'snprintf' function. The memsize type argument is expected.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/base/rnp_osdep.h">rnp_osdep.h (33)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v677/">V677</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Custom declaration of a standard 'dma_addr_t' type. The declaration from system header files should be used instead.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (106)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1032/">V1032</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The pointer 'msgbuf' is cast to a more strictly aligned pointer type.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (254)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1051/">V1051</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Consider checking for misprints. It's possible that the 'dma_ctrl' should be checked here.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (1325)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v525/">V525</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The code contains the collection of similar blocks. Check items 'eth_stats', 'mac_stats', 'mac_stats' in lines 1325, 1331, 1337.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (110)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v641/">V641</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The size of the 'msgbuf' buffer is not a multiple of the element size of the type 'struct rnp_mbx_fw_cmd_reply'.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (113)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v641/">V641</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The size of the 'msgbuf' buffer is not a multiple of the element size of the type 'struct rnp_mbx_fw_cmd_req'.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (725)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1027/">V1027</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (1646)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1027/">V1027</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_ethdev.c">rnp_ethdev.c (1777)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1027/">V1027</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Pointer to an object of the 'rte_device' class is cast to unrelated 'rte_pci_device' class.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_link.c">rnp_link.c (192)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v519/">V519</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The 'link.link_autoneg' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 186, 192.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_link.c">rnp_link.c (359)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v547/">V547</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Expression '!port->attr.link_ready' is always true.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_link.c">rnp_link.c (113)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1048/">V1048</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">The 'lane' variable was assigned the same value.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_rxtx.c">rnp_rxtx.c (1412)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v684/">V684</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">A value of the variable 'txbd->d.cmd' is not modified. Consider inspecting the expression. It is possible that '1' should be present instead of '0'.</td></tr><tr><td style="padding:0px;vertical-align:top;width:679.5px"><div title="/home/shemminger/DPDK/rnp/drivers/net/rnp/rnp_rxtx.c">rnp_rxtx.c (1226)</div></td><td style="padding:0px;vertical-align:top;width:113.25px"><a target="_blank" href="https://pvs-studio.com/en/docs/warnings/v1027/">V1027</a></td><td style="padding:0px;vertical-align:top;width:1472.25px">Pointer to an object of the 'rte_ether_hdr' class is cast to unrelated 'rte_vlan_hdr' class.</td></tr></tbody></table></div></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Feb 18, 2025 at 11:58 PM Wenbo Cao <<a href="mailto:caowenbo@mucse.com">caowenbo@mucse.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">For This patchset just to support the basic chip init work<br>
and user can just found the eth_dev, but can't control more.<br>
For Now just support 2*10g nic,the chip can support<br>
2*10g,4*10g,4*1g,8*1g,8*10g.<br>
The Feature rx side can support rx-cksum-offload,rss,vlan-filter<br>
flow_clow,uncast_filter,mcast_filter,1588,Jumbo-frame<br>
The Feature tx side can support tx-cksum-offload,tso,vxlan-tso <br>
flow director base on ntuple pattern of tcp/udp/ip/ eth_hdr->type<br>
for sriov is also support.<br>
<br>
Because of the chip design defect, for multiple-port mode<br>
one pci-bdf will have multiple-port (max can have four ports)<br>
so this code must be care of one bdf init multiple-port.<br>
v13:<br>
* Supplementary document about n10 network card characteristics.<br>
* update release_25_03.rst.<br>
* fixed the code style advisea Stephen Hemminger.<br>
* fixed the code issue check PVS-stdio for Static compilation error.<br>
<br>
v12:<br>
* fixed __rte_packed __deprecated__ compile issue.<br>
<br>
v11:<br>
* fixed array-bounds issue when used rte_memcpy src addr is<br>
* not enough to hold align dst.<br>
* improve efficient_code advised by Stephen<br>
<br>
v10:<br>
* fixed mingw windows meson issue<br>
* rnp not support windows for now.<br>
<br>
v9:<br>
* fixed commit log format check by devtools.<br>
* fixed code compile issue.<br>
<br>
v8:<br>
* fixed codespell issue.<br>
* fixed MAINTAINERS file<br>
<br>
v7:<br>
* add support nic basic feature such as rss vlan strip/filter,<br>
* mtu-change recv/send scater-recv/mutltiple-send.<br>
* fixed code rationality, advised by Ferruh Yigit.<br>
v6:<br>
* fixed the doc(rst) format problem advise by Thomas Monjalon<br>
<br>
v5:<br>
* fixed the symbol name require by the style documentation<br>
<br>
v4:<br>
* one patch has been forgot to upload :(<br>
<br>
v3:<br>
* fixed <a href="http://dpdk.org/patch/129830" rel="noreferrer" target="_blank">http://dpdk.org/patch/129830</a> FreeBSD 13 compile Issue<br>
* change iobar type to void suggest by Stephen Hemminger<br>
* add KMOD_DEP support for vfio-pci<br>
* change run-cmd argument parse check for invalid extra_args<br>
<br>
v2:<br>
* fixed MAINTAIN maillist fullname format<br>
* fixed driver/net/meson the order issue of new driver to driver list<br>
* improve virtual point function usage suggest by Stephen Hemminger<br>
<br>
Wenbo Cao (28):<br>
net/rnp: add skeleton<br>
net/rnp: add ethdev probe and remove<br>
net/rnp: add log<br>
net/rnp: support mailbox basic operate<br>
net/rnp: add device init and uninit<br>
net/rnp: add get device information operation<br>
net/rnp: add support MAC promisc mode<br>
net/rnp: add queue setup and release operations<br>
net/rnp: add queue stop and start operations<br>
net/rnp: add support device start stop operations<br>
net/rnp: add RSS support operations<br>
net/rnp: add support link update operations<br>
net/rnp: add support link setup operations<br>
net/rnp: add Rx burst simple support<br>
net/rnp: add Tx burst simple support<br>
net/rnp: add MTU set operation<br>
net/rnp: add Rx scatter segment version<br>
net/rnp: add Tx multiple segment version<br>
net/rnp: add support basic stats operation<br>
net/rnp: add support xstats operation<br>
net/rnp: add unicast MAC filter operation<br>
net/rnp: add supported packet types<br>
net/rnp: add support Rx checksum offload<br>
net/rnp: add support Tx TSO offload<br>
net/rnp: support VLAN offloads<br>
net/rnp: add support VLAN filters operations<br>
net/rnp: add queue info operation<br>
net/rnp: support Rx/Tx burst mode info<br>
<br>
.mailmap | 1 +<br>
MAINTAINERS | 6 +<br>
doc/guides/nics/features/rnp.ini | 33 +<br>
doc/guides/nics/img/mucse_nic_port.svg | 4023 ++++++++++++++++++++++++<br>
doc/guides/nics/index.rst | 1 +<br>
doc/guides/nics/rnp.rst | 124 +<br>
doc/guides/rel_notes/release_25_03.rst | 5 +<br>
drivers/net/meson.build | 1 +<br>
drivers/net/rnp/base/meson.build | 17 +<br>
drivers/net/rnp/base/rnp_bdq_if.c | 398 +++<br>
drivers/net/rnp/base/rnp_bdq_if.h | 154 +<br>
drivers/net/rnp/base/rnp_bitrev.h | 64 +<br>
drivers/net/rnp/base/rnp_common.c | 103 +<br>
drivers/net/rnp/base/rnp_common.h | 17 +<br>
drivers/net/rnp/base/rnp_crc32.c | 37 +<br>
drivers/net/rnp/base/rnp_crc32.h | 10 +<br>
drivers/net/rnp/base/rnp_dma_regs.h | 68 +<br>
drivers/net/rnp/base/rnp_eth_regs.h | 91 +<br>
drivers/net/rnp/base/rnp_fw_cmd.c | 162 +<br>
drivers/net/rnp/base/rnp_fw_cmd.h | 357 +++<br>
drivers/net/rnp/base/rnp_hw.h | 136 +<br>
drivers/net/rnp/base/rnp_mac.c | 358 +++<br>
drivers/net/rnp/base/rnp_mac.h | 34 +<br>
drivers/net/rnp/base/rnp_mac_regs.h | 208 ++<br>
drivers/net/rnp/base/rnp_mbx.c | 510 +++<br>
drivers/net/rnp/base/rnp_mbx.h | 58 +<br>
drivers/net/rnp/base/rnp_mbx_fw.c | 493 +++<br>
drivers/net/rnp/base/rnp_mbx_fw.h | 24 +<br>
drivers/net/rnp/base/rnp_osdep.h | 172 +<br>
drivers/net/rnp/meson.build | 27 +<br>
drivers/net/rnp/rnp.h | 258 ++<br>
drivers/net/rnp/rnp_ethdev.c | 1845 +++++++++++<br>
drivers/net/rnp/rnp_link.c | 439 +++<br>
drivers/net/rnp/rnp_link.h | 52 +<br>
drivers/net/rnp/rnp_logs.h | 36 +<br>
drivers/net/rnp/rnp_rss.c | 367 +++<br>
drivers/net/rnp/rnp_rss.h | 44 +<br>
drivers/net/rnp/rnp_rxtx.c | 1818 +++++++++++<br>
drivers/net/rnp/rnp_rxtx.h | 162 +<br>
39 files changed, 12713 insertions(+)<br>
create mode 100644 doc/guides/nics/features/rnp.ini<br>
create mode 100644 doc/guides/nics/img/mucse_nic_port.svg<br>
create mode 100644 doc/guides/nics/rnp.rst<br>
create mode 100644 drivers/net/rnp/base/meson.build<br>
create mode 100644 drivers/net/rnp/base/rnp_bdq_if.c<br>
create mode 100644 drivers/net/rnp/base/rnp_bdq_if.h<br>
create mode 100644 drivers/net/rnp/base/rnp_bitrev.h<br>
create mode 100644 drivers/net/rnp/base/rnp_common.c<br>
create mode 100644 drivers/net/rnp/base/rnp_common.h<br>
create mode 100644 drivers/net/rnp/base/rnp_crc32.c<br>
create mode 100644 drivers/net/rnp/base/rnp_crc32.h<br>
create mode 100644 drivers/net/rnp/base/rnp_dma_regs.h<br>
create mode 100644 drivers/net/rnp/base/rnp_eth_regs.h<br>
create mode 100644 drivers/net/rnp/base/rnp_fw_cmd.c<br>
create mode 100644 drivers/net/rnp/base/rnp_fw_cmd.h<br>
create mode 100644 drivers/net/rnp/base/rnp_hw.h<br>
create mode 100644 drivers/net/rnp/base/rnp_mac.c<br>
create mode 100644 drivers/net/rnp/base/rnp_mac.h<br>
create mode 100644 drivers/net/rnp/base/rnp_mac_regs.h<br>
create mode 100644 drivers/net/rnp/base/rnp_mbx.c<br>
create mode 100644 drivers/net/rnp/base/rnp_mbx.h<br>
create mode 100644 drivers/net/rnp/base/rnp_mbx_fw.c<br>
create mode 100644 drivers/net/rnp/base/rnp_mbx_fw.h<br>
create mode 100644 drivers/net/rnp/base/rnp_osdep.h<br>
create mode 100644 drivers/net/rnp/meson.build<br>
create mode 100644 drivers/net/rnp/rnp.h<br>
create mode 100644 drivers/net/rnp/rnp_ethdev.c<br>
create mode 100644 drivers/net/rnp/rnp_link.c<br>
create mode 100644 drivers/net/rnp/rnp_link.h<br>
create mode 100644 drivers/net/rnp/rnp_logs.h<br>
create mode 100644 drivers/net/rnp/rnp_rss.c<br>
create mode 100644 drivers/net/rnp/rnp_rss.h<br>
create mode 100644 drivers/net/rnp/rnp_rxtx.c<br>
create mode 100644 drivers/net/rnp/rnp_rxtx.h<br>
<br>
-- <br>
2.25.1<br>
<br>
</blockquote></div>