net: hns3: fix the descriptor index when get rss type
Driver gets rss information from the last descriptor of the packet. When driver handle the rss type, ring->next_to_clean indicates the first descriptor of next packet. This patch fix the descriptor index with "ring->next_to_clean - 1". Fixes: 232fc64b6e62 ("net: hns3: Add HW RSS hash information to RX skb") Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8edc2285b7
commit
31a16f99e0
@ -2550,9 +2550,16 @@ static void hns3_set_gro_param(struct sk_buff *skb, u32 l234info,
|
||||
static void hns3_set_rx_skb_rss_type(struct hns3_enet_ring *ring,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct hns3_desc *desc = &ring->desc[ring->next_to_clean];
|
||||
struct hnae3_handle *handle = ring->tqp->handle;
|
||||
enum pkt_hash_types rss_type;
|
||||
struct hns3_desc *desc;
|
||||
int last_bd;
|
||||
|
||||
/* When driver handle the rss type, ring->next_to_clean indicates the
|
||||
* first descriptor of next packet, need -1 here.
|
||||
*/
|
||||
last_bd = (ring->next_to_clean - 1 + ring->desc_num) % ring->desc_num;
|
||||
desc = &ring->desc[last_bd];
|
||||
|
||||
if (le32_to_cpu(desc->rx.rss_hash))
|
||||
rss_type = handle->kinfo.rss_type;
|
||||
|
Loading…
x
Reference in New Issue
Block a user