@@ -1891,27 +1891,29 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
18911891 skb -> dev = netdev ;
18921892 bytes += skb -> len ;
18931893
1894- if (MTK_HAS_CAPS (eth -> soc -> caps , MTK_NETSYS_V2 ))
1894+ if (MTK_HAS_CAPS (eth -> soc -> caps , MTK_NETSYS_V2 )) {
1895+ hash = trxd .rxd5 & MTK_RXD5_FOE_ENTRY ;
1896+ if (hash != MTK_RXD5_FOE_ENTRY )
1897+ skb_set_hash (skb , jhash_1word (hash , 0 ),
1898+ PKT_HASH_TYPE_L4 );
18951899 rxdcsum = & trxd .rxd3 ;
1896- else
1900+ } else {
1901+ hash = trxd .rxd4 & MTK_RXD4_FOE_ENTRY ;
1902+ if (hash != MTK_RXD4_FOE_ENTRY )
1903+ skb_set_hash (skb , jhash_1word (hash , 0 ),
1904+ PKT_HASH_TYPE_L4 );
18971905 rxdcsum = & trxd .rxd4 ;
1906+ }
18981907
18991908 if (* rxdcsum & eth -> soc -> txrx .rx_dma_l4_valid )
19001909 skb -> ip_summed = CHECKSUM_UNNECESSARY ;
19011910 else
19021911 skb_checksum_none_assert (skb );
19031912 skb -> protocol = eth_type_trans (skb , netdev );
19041913
1905- hash = trxd .rxd4 & MTK_RXD4_FOE_ENTRY ;
1906- if (hash != MTK_RXD4_FOE_ENTRY ) {
1907- hash = jhash_1word (hash , 0 );
1908- skb_set_hash (skb , hash , PKT_HASH_TYPE_L4 );
1909- }
1910-
19111914 reason = FIELD_GET (MTK_RXD4_PPE_CPU_REASON , trxd .rxd4 );
19121915 if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED )
1913- mtk_ppe_check_skb (eth -> ppe , skb ,
1914- trxd .rxd4 & MTK_RXD4_FOE_ENTRY );
1916+ mtk_ppe_check_skb (eth -> ppe , skb , hash );
19151917
19161918 if (netdev -> features & NETIF_F_HW_VLAN_CTAG_RX ) {
19171919 if (MTK_HAS_CAPS (eth -> soc -> caps , MTK_NETSYS_V2 )) {
0 commit comments