enic: set skb->hash type properly
Driver sets the skb l4/l3 hash based on NIC_CFG_RSS_HASH_TYPE_*,
which is bit mask. This is wrong. Hw actually provides us enum.
Use CQ_ENET_RQ_DESC_RSS_TYPE_* to set l3 and l4 hash type.
Fixes: bf751ba802 ("driver/net: enic: record q_number and rss_hash for skb")
Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									f7a5537cd2
								
							
						
					
					
						commit
						17197236d6
					
				| @ -33,7 +33,7 @@ | ||||
| 
 | ||||
| #define DRV_NAME		"enic" | ||||
| #define DRV_DESCRIPTION		"Cisco VIC Ethernet NIC Driver" | ||||
| #define DRV_VERSION		"2.3.0.20" | ||||
| #define DRV_VERSION		"2.3.0.31" | ||||
| #define DRV_COPYRIGHT		"Copyright 2008-2013 Cisco Systems, Inc" | ||||
| 
 | ||||
| #define ENIC_BARS_MAX		6 | ||||
|  | ||||
| @ -1166,12 +1166,18 @@ static void enic_rq_indicate_buf(struct vnic_rq *rq, | ||||
| 		skb->protocol = eth_type_trans(skb, netdev); | ||||
| 		skb_record_rx_queue(skb, q_number); | ||||
| 		if (netdev->features & NETIF_F_RXHASH) { | ||||
| 			skb_set_hash(skb, rss_hash, | ||||
| 				     (rss_type & | ||||
| 				      (NIC_CFG_RSS_HASH_TYPE_TCP_IPV6_EX | | ||||
| 				       NIC_CFG_RSS_HASH_TYPE_TCP_IPV6 | | ||||
| 				       NIC_CFG_RSS_HASH_TYPE_TCP_IPV4)) ? | ||||
| 				     PKT_HASH_TYPE_L4 : PKT_HASH_TYPE_L3); | ||||
| 			switch (rss_type) { | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv4: | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6: | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6_EX: | ||||
| 				skb_set_hash(skb, rss_hash, PKT_HASH_TYPE_L4); | ||||
| 				break; | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_IPv4: | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_IPv6: | ||||
| 			case CQ_ENET_RQ_DESC_RSS_TYPE_IPv6_EX: | ||||
| 				skb_set_hash(skb, rss_hash, PKT_HASH_TYPE_L3); | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		/* Hardware does not provide whole packet checksum. It only
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user