From 628811d07cf785fd606e695471383964bd81f1a9 Mon Sep 17 00:00:00 2001
From: Aastha Mehta <aasthakm@mpi-sws.org>
Date: Mon, 15 Jan 2018 17:02:20 +0100
Subject: [PATCH] hack: fix the nonce for RSS hash function in code

---
 .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c   | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index e92de0bba..33ec108c7 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -2570,10 +2570,18 @@ static int bnx2x_init_rss(struct bnx2x *bp)
 	return bnx2x_config_rss_eth(bp, bp->port.pmf || !CHIP_IS_E1x(bp));
 }
 
+//#ifdef CONFIG_XEN_SME
+//struct bnx2x_config_rss_params sme_rss_params;
+//#endif
+
 int bnx2x_rss(struct bnx2x *bp, struct bnx2x_rss_config_obj *rss_obj,
 	      bool config_hash, bool enable)
 {
 	struct bnx2x_config_rss_params params = {NULL};
+#ifdef CONFIG_XEN_SME
+  int i;
+  //memset(&sme_rss_params, 0, sizeof(struct bnx2x_config_rss_params));
+#endif
 
 	/* Although RSS is meaningless when there is a single HW queue we
 	 * still need it enabled in order to have HW Rx hash generated.
@@ -2619,6 +2627,18 @@ int bnx2x_rss(struct bnx2x *bp, struct bnx2x_rss_config_obj *rss_obj,
 	if (config_hash) {
 		/* RSS keys */
 		netdev_rss_key_fill(params.rss_key, T_ETH_RSS_KEY * 4);
+#ifdef CONFIG_XEN_SME
+//    memcpy((void *) &sme_rss_params.rss_key, (void *) &params.rss_key,
+//        T_ETH_RSS_KEY * 4);
+    memset((void *) &params.rss_key, 0, T_ETH_RSS_KEY * 4);
+    for (i = 0; i < T_ETH_RSS_KEY; i++) {
+      params.rss_key[i] = i;
+    }
+//    for (i = 0; i < T_ETH_RSS_KEY; i++) {
+//      printk(KERN_ERR "rss key %d: %u %u", i, params.rss_key[i],
+//          sme_rss_params.rss_key[i]);
+//    }
+#endif
 		__set_bit(BNX2X_RSS_SET_SRCH, &params.rss_flags);
 	}
 
-- 
GitLab