Fixes: 3da37f682173 ("examples/ipsec_secgw: create session mempools for 
ethdevs")

Some NICs do not have the rte_security context, this patch fixes the segment 
fault
caused by this.

Signed-off-by: Fan Zhang <[email protected]>
---
 examples/ipsec-secgw/ipsec-secgw.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/examples/ipsec-secgw/ipsec-secgw.c 
b/examples/ipsec-secgw/ipsec-secgw.c
index 3a28fcceb..c67f79db9 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -1384,10 +1384,16 @@ cryptodevs_init(void)
                        max_sess_sz = sess_sz;
        }
        for (port_id = 0; port_id < rte_eth_dev_count(); port_id++) {
+               void *sec_ctx;
+
                if ((enabled_port_mask & (1 << port_id)) == 0)
                        continue;
-               sess_sz = rte_security_session_get_size(
-                               rte_eth_dev_get_sec_ctx(port_id));
+
+               sec_ctx = rte_eth_dev_get_sec_ctx(port_id);
+               if (sec_ctx == NULL)
+                       continue;
+
+               sess_sz = rte_security_session_get_size(sec_ctx);
                if (sess_sz > max_sess_sz)
                        max_sess_sz = sess_sz;
        }
-- 
2.13.6

Reply via email to