From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Subject: [PATCH v3 8/8] pipeline: remove unnecessary checks for NULL pointer before free
Date: Sun, 20 Feb 2022 10:21:47 -0800 [thread overview]
Message-ID: <20220220182147.9750-9-stephen@networkplumber.org> (raw)
In-Reply-To: <20220220182147.9750-1-stephen@networkplumber.org>
This library (mostly) uses convention that allows caller
to pass NULL.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/pipeline/rte_port_in_action.h | 6 ++++--
lib/pipeline/rte_swx_ctl.c | 3 +--
lib/pipeline/rte_swx_ctl.h | 1 +
lib/pipeline/rte_swx_pipeline.c | 6 ++----
lib/pipeline/rte_swx_pipeline.h | 1 +
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/lib/pipeline/rte_port_in_action.h b/lib/pipeline/rte_port_in_action.h
index d6b063cf58a7..9debb9269297 100644
--- a/lib/pipeline/rte_port_in_action.h
+++ b/lib/pipeline/rte_port_in_action.h
@@ -181,8 +181,9 @@ rte_port_in_action_profile_create(uint32_t socket_id);
*
* @param[in] profile
* Input port action profile handle (needs to be valid).
+ * If NULL then, the function does nothing.
* @return
- * Zero on success, non-zero error code otherwise.
+ * always zero.
*/
__rte_experimental
int
@@ -259,8 +260,9 @@ rte_port_in_action_create(struct rte_port_in_action_profile *profile,
*
* @param[in] action
* Handle to input port action object (needs to be valid).
+ * If NULL then, the function does nothing.
* @return
- * Zero on success, non-zero error code otherwise.
+ * Always zero.
*/
__rte_experimental
int
diff --git a/lib/pipeline/rte_swx_ctl.c b/lib/pipeline/rte_swx_ctl.c
index f52ccffd75a4..710e89a46a26 100644
--- a/lib/pipeline/rte_swx_ctl.c
+++ b/lib/pipeline/rte_swx_ctl.c
@@ -1046,8 +1046,7 @@ table_state_free(struct rte_swx_ctl_pipeline *ctl)
struct rte_swx_table_state *ts = &ctl->ts_next[selector_base_index + i];
/* Table object. */
- if (ts->obj)
- rte_swx_table_selector_free(ts->obj);
+ rte_swx_table_selector_free(ts->obj);
}
/* For each learner table, free its table state. */
diff --git a/lib/pipeline/rte_swx_ctl.h b/lib/pipeline/rte_swx_ctl.h
index 82e62e70a7c3..501731d54724 100644
--- a/lib/pipeline/rte_swx_ctl.h
+++ b/lib/pipeline/rte_swx_ctl.h
@@ -1285,6 +1285,7 @@ rte_swx_ctl_meter_stats_read(struct rte_swx_pipeline *p,
*
* @param[in] ctl
* Pipeline control handle.
+ * If NULL then, the function does nothing.
*/
__rte_experimental
void
diff --git a/lib/pipeline/rte_swx_pipeline.c b/lib/pipeline/rte_swx_pipeline.c
index 868010303c73..0177a45c4486 100644
--- a/lib/pipeline/rte_swx_pipeline.c
+++ b/lib/pipeline/rte_swx_pipeline.c
@@ -8672,16 +8672,14 @@ table_state_build_free(struct rte_swx_pipeline *p)
struct rte_swx_table_state *ts = &p->table_state[p->n_tables + i];
/* ts->obj. */
- if (ts->obj)
- rte_swx_table_selector_free(ts->obj);
+ rte_swx_table_selector_free(ts->obj);
}
for (i = 0; i < p->n_learners; i++) {
struct rte_swx_table_state *ts = &p->table_state[p->n_tables + p->n_selectors + i];
/* ts->obj. */
- if (ts->obj)
- rte_swx_table_learner_free(ts->obj);
+ rte_swx_table_learner_free(ts->obj);
/* ts->default_action_data. */
free(ts->default_action_data);
diff --git a/lib/pipeline/rte_swx_pipeline.h b/lib/pipeline/rte_swx_pipeline.h
index 77141bd3415b..51817159b154 100644
--- a/lib/pipeline/rte_swx_pipeline.h
+++ b/lib/pipeline/rte_swx_pipeline.h
@@ -912,6 +912,7 @@ rte_swx_pipeline_flush(struct rte_swx_pipeline *p);
*
* @param[in] p
* Pipeline handle.
+ * If NULL then, the function does nothing.
*/
__rte_experimental
void
--
2.34.1
next prev parent reply other threads:[~2022-02-20 18:22 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-19 23:43 [PATCH 0/3] more unnecessary null checks Stephen Hemminger
2022-02-19 23:43 ` [PATCH 1/3] cocci/nullfree: add more functions Stephen Hemminger
2022-02-19 23:43 ` [PATCH 2/3] acl: remove unncessary null checks in calls to rte_acl_free() Stephen Hemminger
2022-02-19 23:43 ` [PATCH 3/3] lpm: remove unnecessary NULL checks Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 0/7] fix more unnecessary null checks Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 1/7] cocci/nullfree: add more functions Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 2/7] acl: remove unnecessary null checks Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 3/7] lpm: remove unnecessary NULL checks Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 4/7] lib: document existing free functions Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 5/7] test: remove unecessary NULL checks before free Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 6/7] fips_validation: remove unnecessary NULL check Stephen Hemminger
2022-02-20 0:51 ` [PATCH v2 7/7] event/sw: " Stephen Hemminger
2022-02-20 5:18 ` [PATCH 0/3] more unnecessary null checks Jerin Jacob
2022-02-20 18:21 ` [PATCH v3 0/8] yet more unnecessary NULL checks Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 1/8] cocci/nullfree: add more functions Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 2/8] acl: remove unnecessary null checks Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 3/8] lpm: remove unnecessary NULL checks Stephen Hemminger
2022-02-21 2:47 ` Ruifeng Wang
2022-02-21 15:51 ` Medvedkin, Vladimir
2022-02-20 18:21 ` [PATCH v3 4/8] lib: document existing free functions Stephen Hemminger
2022-02-27 20:48 ` Thomas Monjalon
2022-02-28 9:42 ` Bruce Richardson
2022-02-28 17:08 ` Stephen Hemminger
2022-06-22 9:23 ` Thomas Monjalon
2022-06-22 14:55 ` Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 5/8] test: remove unnecessary NULL checks before free Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 6/8] fips_validation: remove unnecessary NULL check Stephen Hemminger
2022-02-20 18:21 ` [PATCH v3 7/8] event/sw: " Stephen Hemminger
2022-02-20 18:21 ` Stephen Hemminger [this message]
2022-06-22 20:52 ` [PATCH v4] lib: document existing free functions Stephen Hemminger
2022-06-23 0:37 ` fengchengwen
2022-06-24 12:35 ` David Marchand
2022-06-24 12:41 ` [PATCH v3 0/8] yet more unnecessary NULL checks David Marchand
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=20220220182147.9750-9-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=cristian.dumitrescu@intel.com \
--cc=dev@dpdk.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.