[dpdk-dev] examples/ipsec_secgw: fix security session
Checks
Commit Message
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 <roy.fan.zhang@intel.com>
---
examples/ipsec-secgw/ipsec-secgw.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
Comments
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fan Zhang
> Sent: Tuesday, January 23, 2018 12:32 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH] examples/ipsec_secgw: fix security session
>
> 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 <roy.fan.zhang@intel.com>
Acked-by: Radu Nicolau <radu.nicolau@intel.com>
> -----Original Message-----
> From: Nicolau, Radu
> Sent: Tuesday, January 23, 2018 3:05 PM
> To: Zhang, Roy Fan <roy.fan.zhang@intel.com>; dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: RE: [dpdk-dev] [PATCH] examples/ipsec_secgw: fix security session
>
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fan Zhang
> > Sent: Tuesday, January 23, 2018 12:32 PM
> > To: dev@dpdk.org
> > Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> > Subject: [dpdk-dev] [PATCH] examples/ipsec_secgw: fix security session
> >
> > 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 <roy.fan.zhang@intel.com>
>
> Acked-by: Radu Nicolau <radu.nicolau@intel.com>
Applied to dpdk-next-crypto.
Thanks,
Pablo
@@ -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;
}