From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Rasesh Mody <rmody@marvell.com>,
Devendra Singh Rawat <dsinghrawat@marvell.com>
Subject: [RFC 2/8] net/qede: fix gcc-12 rte_memcpy warnings
Date: Tue, 7 Jun 2022 10:17:40 -0700 [thread overview]
Message-ID: <20220607171746.461772-3-stephen@networkplumber.org> (raw)
In-Reply-To: <20220607171746.461772-1-stephen@networkplumber.org>
The x86 version of rte_memcpy can cause warnings. The driver does
not need to use rte_memcpy for everything. Standard memcpy is
just as fast and safer; the compiler and static analysis tools
treat memcpy specially.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/qede/base/bcm_osal.h | 3 +--
drivers/net/qede/qede_ethdev.c | 2 +-
drivers/net/qede/qede_filter.c | 16 ++++++----------
drivers/net/qede/qede_main.c | 13 ++++++-------
drivers/net/qede/qede_sriov.c | 6 +++---
5 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h
index c5b53992822b..9ea579bfc849 100644
--- a/drivers/net/qede/base/bcm_osal.h
+++ b/drivers/net/qede/base/bcm_osal.h
@@ -14,7 +14,6 @@
#include <rte_spinlock.h>
#include <rte_malloc.h>
#include <rte_atomic.h>
-#include <rte_memcpy.h>
#include <rte_log.h>
#include <rte_cycles.h>
#include <rte_debug.h>
@@ -99,7 +98,7 @@ typedef intptr_t osal_int_ptr_t;
} while (0)
#define OSAL_VFREE(dev, memory) OSAL_FREE(dev, memory)
#define OSAL_MEM_ZERO(mem, size) bzero(mem, size)
-#define OSAL_MEMCPY(dst, src, size) rte_memcpy(dst, src, size)
+#define OSAL_MEMCPY(dst, src, size) memcpy(dst, src, size)
#define OSAL_MEMCMP(s1, s2, size) memcmp(s1, s2, size)
#define OSAL_MEMSET(dst, val, length) \
memset(dst, val, length)
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index ea6b71f09355..a4923670d6ba 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -358,7 +358,7 @@ qede_assign_rxtx_handlers(struct rte_eth_dev *dev, bool is_dummy)
static void
qede_alloc_etherdev(struct qede_dev *qdev, struct qed_dev_eth_info *info)
{
- rte_memcpy(&qdev->dev_info, info, sizeof(*info));
+ qdev->dev_info = *info;
qdev->ops = qed_ops;
}
diff --git a/drivers/net/qede/qede_filter.c b/drivers/net/qede/qede_filter.c
index 440440423a32..ca3165d97210 100644
--- a/drivers/net/qede/qede_filter.c
+++ b/drivers/net/qede/qede_filter.c
@@ -388,10 +388,8 @@ qede_arfs_construct_pkt(struct rte_eth_dev *eth_dev,
ip6->vtc_flow =
rte_cpu_to_be_32(QEDE_FDIR_IPV6_DEFAULT_VTC_FLOW);
- rte_memcpy(&ip6->src_addr, arfs->tuple.src_ipv6,
- IPV6_ADDR_LEN);
- rte_memcpy(&ip6->dst_addr, arfs->tuple.dst_ipv6,
- IPV6_ADDR_LEN);
+ memcpy(&ip6->src_addr, arfs->tuple.src_ipv6, IPV6_ADDR_LEN);
+ memcpy(&ip6->dst_addr, arfs->tuple.dst_ipv6, IPV6_ADDR_LEN);
len += sizeof(struct rte_ipv6_hdr);
params->ipv6 = true;
@@ -821,12 +819,10 @@ qede_flow_parse_pattern(__rte_unused struct rte_eth_dev *dev,
const struct rte_flow_item_ipv6 *spec;
spec = pattern->spec;
- rte_memcpy(flow->entry.tuple.src_ipv6,
- spec->hdr.src_addr,
- IPV6_ADDR_LEN);
- rte_memcpy(flow->entry.tuple.dst_ipv6,
- spec->hdr.dst_addr,
- IPV6_ADDR_LEN);
+ memcpy(flow->entry.tuple.src_ipv6,
+ spec->hdr.src_addr, IPV6_ADDR_LEN);
+ memcpy(flow->entry.tuple.dst_ipv6,
+ spec->hdr.dst_addr, IPV6_ADDR_LEN);
flow->entry.tuple.eth_proto =
RTE_ETHER_TYPE_IPV6;
}
diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c
index ad101194d613..03039038ad3d 100644
--- a/drivers/net/qede/qede_main.c
+++ b/drivers/net/qede/qede_main.c
@@ -372,7 +372,7 @@ qed_fill_dev_info(struct ecore_dev *edev, struct qed_dev_info *dev_info)
dev_info->mtu = ECORE_LEADING_HWFN(edev)->hw_info.mtu;
dev_info->dev_type = edev->type;
- rte_memcpy(&dev_info->hw_mac, &edev->hwfns[0].hw_info.hw_mac_addr,
+ memcpy(&dev_info->hw_mac, &edev->hwfns[0].hw_info.hw_mac_addr,
RTE_ETHER_ADDR_LEN);
dev_info->fw_major = FW_MAJOR_VERSION;
@@ -440,7 +440,7 @@ qed_fill_eth_dev_info(struct ecore_dev *edev, struct qed_dev_eth_info *info)
info->num_vlan_filters = RESC_NUM(&edev->hwfns[0], ECORE_VLAN) -
max_vf_vlan_filters;
- rte_memcpy(&info->port_mac, &edev->hwfns[0].hw_info.hw_mac_addr,
+ memcpy(&info->port_mac, &edev->hwfns[0].hw_info.hw_mac_addr,
RTE_ETHER_ADDR_LEN);
} else {
ecore_vf_get_num_rxqs(ECORE_LEADING_HWFN(edev),
@@ -471,7 +471,7 @@ static void qed_set_name(struct ecore_dev *edev, char name[NAME_SIZE])
{
int i;
- rte_memcpy(edev->name, name, NAME_SIZE);
+ memcpy(edev->name, name, NAME_SIZE);
for_each_hwfn(edev, i) {
snprintf(edev->hwfns[i].name, NAME_SIZE, "%s-%d", name, i);
}
@@ -513,10 +513,9 @@ static void qed_fill_link(struct ecore_hwfn *hwfn,
/* Prepare source inputs */
if (IS_PF(hwfn->p_dev)) {
- rte_memcpy(¶ms, ecore_mcp_get_link_params(hwfn),
- sizeof(params));
- rte_memcpy(&link, ecore_mcp_get_link_state(hwfn), sizeof(link));
- rte_memcpy(&link_caps, ecore_mcp_get_link_capabilities(hwfn),
+ memcpy(¶ms, ecore_mcp_get_link_params(hwfn), sizeof(params));
+ memcpy(&link, ecore_mcp_get_link_state(hwfn), sizeof(link));
+ memcpy(&link_caps, ecore_mcp_get_link_capabilities(hwfn),
sizeof(link_caps));
} else {
ecore_vf_read_bulletin(hwfn, &change);
diff --git a/drivers/net/qede/qede_sriov.c b/drivers/net/qede/qede_sriov.c
index 0b99a8d6fe9c..937d339fb802 100644
--- a/drivers/net/qede/qede_sriov.c
+++ b/drivers/net/qede/qede_sriov.c
@@ -203,10 +203,10 @@ void qed_inform_vf_link_state(struct ecore_hwfn *hwfn)
if (!hwfn->pf_iov_info)
return;
- rte_memcpy(¶ms, ecore_mcp_get_link_params(lead_hwfn),
+ memcpy(¶ms, ecore_mcp_get_link_params(lead_hwfn),
sizeof(params));
- rte_memcpy(&link, ecore_mcp_get_link_state(lead_hwfn), sizeof(link));
- rte_memcpy(&caps, ecore_mcp_get_link_capabilities(lead_hwfn),
+ memcpy(&link, ecore_mcp_get_link_state(lead_hwfn), sizeof(link));
+ memcpy(&caps, ecore_mcp_get_link_capabilities(lead_hwfn),
sizeof(caps));
/* Update bulletin of all future possible VFs with link configuration */
--
2.35.1
next prev parent reply other threads:[~2022-06-07 17:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 17:17 [RFC 0/8] Gcc-12 warning fixes Stephen Hemminger
2022-06-07 17:17 ` [RFC 1/8] net/ena: fix warnings related to rte_memcpy and gcc-12 Stephen Hemminger
2022-06-08 12:29 ` Michał Krawczyk
2022-06-08 15:32 ` Stephen Hemminger
2022-06-08 19:18 ` Michał Krawczyk
2022-06-08 20:52 ` Stephen Hemminger
2022-06-07 17:17 ` Stephen Hemminger [this message]
2022-06-23 14:16 ` [RFC 2/8] net/qede: fix gcc-12 rte_memcpy warnings David Marchand
2022-06-07 17:17 ` [RFC 3/8] net/ice: fix rte_memcpy warnings with gcc-12 Stephen Hemminger
2022-06-07 17:17 ` [RFC 4/8] test/ipfrag: fix gcc-12 warnings Stephen Hemminger
2022-06-07 17:17 ` [RFC 5/8] test/ipsec: fix gcc-12 rte_memcpy warnings Stephen Hemminger
2022-06-07 17:17 ` [RFC 6/8] net/enetfc: fix array out of bounds warning Stephen Hemminger
2022-06-07 17:17 ` [RFC 7/8] vhost: replace rte_memcpy to fix warning Stephen Hemminger
2022-06-07 17:17 ` [RFC 8/8] ip_frag: fix gcc-12 warnings Stephen Hemminger
2022-06-08 8:19 ` Konstantin Ananyev
2022-06-08 15:26 ` Stephen Hemminger
2022-06-09 7:09 ` Morten Brørup
2022-06-14 21:20 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220607171746.461772-3-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=dsinghrawat@marvell.com \
--cc=rmody@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).