Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Jul 2014 04:11:18 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r268907 - head/sys/dev/ixgbe
Message-ID:  <201407200411.s6K4BI3u084817@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Sun Jul 20 04:11:18 2014
New Revision: 268907
URL: http://svnweb.freebsd.org/changeset/base/268907

Log:
  Correctly program the RSS redirection table entries.
  
  Without this, the RSS bucket assignments aren't correct - they're
  DCBA instead of ABCD in each DWORD.
  
  Tested:	82599EB ixgbe(4), TCP and UDP RSS

Modified:
  head/sys/dev/ixgbe/ixgbe.c

Modified: head/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.c	Sun Jul 20 02:38:58 2014	(r268906)
+++ head/sys/dev/ixgbe/ixgbe.c	Sun Jul 20 04:11:18 2014	(r268907)
@@ -4230,10 +4230,16 @@ ixgbe_initialise_rss_mapping(struct adap
 #else
 		queue_id = (j * 0x11);
 #endif
-		/* XXX endian? */
-		reta = (reta << 8) | queue_id;
-		if ((i & 3) == 3)
+		/*
+		 * The low 8 bits are for hash value (n+0);
+		 * The next 8 bits are for hash value (n+1), etc.
+		 */
+		reta = reta >> 8;
+		reta = reta | ( ((uint32_t) queue_id) << 24);
+		if ((i & 3) == 3) {
 			IXGBE_WRITE_REG(hw, IXGBE_RETA(i >> 2), reta);
+			reta = 0;
+		}
 	}
 
 	/* Now fill our hash function seeds */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407200411.s6K4BI3u084817>