net/enic: fix memory leak with oversized Tx packets
authorJohn Daley <johndale@cisco.com>
Fri, 3 Feb 2017 01:18:40 +0000 (17:18 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 10 Feb 2017 11:25:49 +0000 (12:25 +0100)
commited6e564c214e9852ff7f3d8f676a892dda905651
treebadc5228b709d5cbb61744c430e31a802ecd61d4
parent123c42a487580890fab58b1bcb7cc0af0eee2027
net/enic: fix memory leak with oversized Tx packets

If a packet send is attempted with a packet larger than the NIC
is capable of processing (9208) it will be dropped with no
completion descriptor returned or completion index update, which
will lead to an mbuf leak and eventual hang.

Drop and count oversized Tx packets in the Tx burst function and
dereference/free the mbuf without sending it to the NIC.

Since the maximum Rx and Tx packet sizes are different on enic
and are now both being used, make the define ENIC_DEFAULT_MAX_PKT_SIZE
be 2 defines, one for Rx and one for Tx.

Fixes: fefed3d1e62c ("enic: new driver")
Cc: stable@dpdk.org
Signed-off-by: John Daley <johndale@cisco.com>
drivers/net/enic/enic.h
drivers/net/enic/enic_main.c
drivers/net/enic/enic_res.c
drivers/net/enic/enic_res.h
drivers/net/enic/enic_rxtx.c