mirror of https://gitee.com/openkylin/linux.git
sky2: used fixed RSS key
Rather than generating a different RSS key on each boot, just use a predetermined value that will map same flow to same value on every device. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b1cb825662
commit
00427a7387
|
@ -1275,6 +1275,14 @@ static void rx_set_checksum(struct sky2_port *sky2)
|
|||
? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM);
|
||||
}
|
||||
|
||||
/*
|
||||
* Fixed initial key as seed to RSS.
|
||||
*/
|
||||
static const uint32_t rss_init_key[10] = {
|
||||
0x7c3351da, 0x51c5cf4e, 0x44adbdd1, 0xe8d38d18, 0x48897c43,
|
||||
0xb1d60e7e, 0x6a3dd760, 0x01a2e453, 0x16f46f13, 0x1a0e7b30
|
||||
};
|
||||
|
||||
/* Enable/disable receive hash calculation (RSS) */
|
||||
static void rx_set_rss(struct net_device *dev, u32 features)
|
||||
{
|
||||
|
@ -1290,12 +1298,9 @@ static void rx_set_rss(struct net_device *dev, u32 features)
|
|||
|
||||
/* Program RSS initial values */
|
||||
if (features & NETIF_F_RXHASH) {
|
||||
u32 key[nkeys];
|
||||
|
||||
get_random_bytes(key, nkeys * sizeof(u32));
|
||||
for (i = 0; i < nkeys; i++)
|
||||
sky2_write32(hw, SK_REG(sky2->port, RSS_KEY + i * 4),
|
||||
key[i]);
|
||||
rss_init_key[i]);
|
||||
|
||||
/* Need to turn on (undocumented) flag to make hashing work */
|
||||
sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T),
|
||||
|
|
Loading…
Reference in New Issue