[dpdk-dev] [PATCH 1/2] cxgbe: fix segfault due to incorrect size allocated for rss table

Rahul Lakkireddy rahul.lakkireddy at chelsio.com
Tue Jan 19 11:17:07 CET 2016


The size of each entry in the port's rss table is actually 2 bytes
and not 1 byte. A segfault occurs when accessing part of port 0's rss
table because it gets overwritten by subsequent port 1's part of the
rss table. Fix by setting the size of each entry appropriately.

Fixes: 92c8a63223e5 ("cxgbe: add device configuration and Rx support")

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras at chelsio.com>
---
 doc/guides/rel_notes/release_2_3.rst | 6 ++++++
 drivers/net/cxgbe/cxgbe_main.c       | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/doc/guides/rel_notes/release_2_3.rst b/doc/guides/rel_notes/release_2_3.rst
index 99de186..4c5843d 100644
--- a/doc/guides/rel_notes/release_2_3.rst
+++ b/doc/guides/rel_notes/release_2_3.rst
@@ -15,6 +15,12 @@ EAL
 Drivers
 ~~~~~~~
 
+* **cxgbe: fix segfault due to incorrect size allocated for rss table**
+
+  Fixed a segfault that occurs when accessing part of port 0's rss
+  table that gets overwritten by subsequent port 1's part of the rss
+  table due to incorrect size allocated for each entry in the table.
+
 
 Libraries
 ~~~~~~~~~
diff --git a/drivers/net/cxgbe/cxgbe_main.c b/drivers/net/cxgbe/cxgbe_main.c
index aff23d0..632abc2 100644
--- a/drivers/net/cxgbe/cxgbe_main.c
+++ b/drivers/net/cxgbe/cxgbe_main.c
@@ -355,7 +355,7 @@ static int init_rss(struct adapter *adap)
 	for_each_port(adap, i) {
 		struct port_info *pi = adap2pinfo(adap, i);
 
-		pi->rss = rte_zmalloc(NULL, pi->rss_size, 0);
+		pi->rss = rte_zmalloc(NULL, pi->rss_size * sizeof(u16), 0);
 		if (!pi->rss)
 			return -ENOMEM;
 	}
-- 
2.5.3



More information about the dev mailing list