Re: [PATCH v3 18/24] net/bnxt: add support for flow filter ops
From: Ferruh Yigit <hidden>
Date: 2017-09-28 16:05:26
On 9/28/2017 3:13 PM, Ajit Khaparde wrote:
This patch adds support for flow validate/create/destroy/flush, ethertype add/del ops Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> -- v1->v2: incorporate review comments. v2->v3: fix 32-bit builds.
<...>
+static struct rte_flow *
+bnxt_flow_create(struct rte_eth_dev *dev,
+ const struct rte_flow_attr *attr,
+ const struct rte_flow_item pattern[],
+ const struct rte_flow_action actions[],
+ struct rte_flow_error *error)
+{
+ struct bnxt *bp = (struct bnxt *)dev->data->dev_private;
+ struct bnxt_filter_info *filter;
+ struct bnxt_vnic_info *vnic;
+ struct rte_flow *flow;
+ unsigned int i;
+ int ret = 0;
+
+ flow = rte_zmalloc("bnxt_flow", sizeof(struct rte_flow), 0);
+ if (!flow) {
+ rte_flow_error_set(error, ENOMEM,
+ RTE_FLOW_ERROR_TYPE_HANDLE, NULL,
+ "Failed to allocate memory");
+ return flow;
+ }
+
+ ret = bnxt_flow_agrs_validate(attr, pattern, actions, error);
+ if (ret != 0) {
Hi Ajit,
clang is giving following [1] build error here. Error log is quite
verbose, clang even suggests multiple solutions :)
[1]
.../dpdk/drivers/net/bnxt/bnxt_filter.c:923:6: error: variable 'filter'
is used uninitialized whenever 'if' condition is true
[-Werror,-Wsometimes-uninitialized]
if (ret != 0) {
^~~~~~~~
.../dpdk/drivers/net/bnxt/bnxt_filter.c:965:23: note: uninitialized use
occurs here
bnxt_free_filter(bp, filter);
^~~~~~
.../dpdk/drivers/net/bnxt/bnxt_filter.c:923:2: note: remove the 'if' if
its condition is always false
if (ret != 0) {
^~~~~~~~~~~~~~~
.../dpdk/drivers/net/bnxt/bnxt_filter.c:908:33: note: initialize the
variable 'filter' to silence this warning
struct bnxt_filter_info *filter;
^
= NULL