@@ -358,6 +358,7 @@ static inline
358
358
void rsc_add_data (struct netvsc_channel * nvchan ,
359
359
const struct ndis_pkt_8021q_info * vlan ,
360
360
const struct ndis_tcp_ip_checksum_info * csum_info ,
361
+ const u32 * hash_info ,
361
362
void * data , u32 len )
362
363
{
363
364
u32 cnt = nvchan -> rsc .cnt ;
@@ -368,6 +369,7 @@ void rsc_add_data(struct netvsc_channel *nvchan,
368
369
nvchan -> rsc .vlan = vlan ;
369
370
nvchan -> rsc .csum_info = csum_info ;
370
371
nvchan -> rsc .pktlen = len ;
372
+ nvchan -> rsc .hash_info = hash_info ;
371
373
}
372
374
373
375
nvchan -> rsc .data [cnt ] = data ;
@@ -385,6 +387,7 @@ static int rndis_filter_receive_data(struct net_device *ndev,
385
387
const struct ndis_tcp_ip_checksum_info * csum_info ;
386
388
const struct ndis_pkt_8021q_info * vlan ;
387
389
const struct rndis_pktinfo_id * pktinfo_id ;
390
+ const u32 * hash_info ;
388
391
u32 data_offset ;
389
392
void * data ;
390
393
bool rsc_more = false;
@@ -411,6 +414,8 @@ static int rndis_filter_receive_data(struct net_device *ndev,
411
414
412
415
csum_info = rndis_get_ppi (rndis_pkt , TCPIP_CHKSUM_PKTINFO , 0 );
413
416
417
+ hash_info = rndis_get_ppi (rndis_pkt , NBL_HASH_VALUE , 0 );
418
+
414
419
pktinfo_id = rndis_get_ppi (rndis_pkt , RNDIS_PKTINFO_ID , 1 );
415
420
416
421
data = (void * )msg + data_offset ;
@@ -441,7 +446,8 @@ static int rndis_filter_receive_data(struct net_device *ndev,
441
446
* rndis_pkt->data_len tell us the real data length, we only copy
442
447
* the data packet to the stack, without the rndis trailer padding
443
448
*/
444
- rsc_add_data (nvchan , vlan , csum_info , data , rndis_pkt -> data_len );
449
+ rsc_add_data (nvchan , vlan , csum_info , hash_info ,
450
+ data , rndis_pkt -> data_len );
445
451
446
452
if (rsc_more )
447
453
return NVSP_STAT_SUCCESS ;
0 commit comments