diff options
author | Kevin Lo <kevlo@cvs.openbsd.org> | 2021-07-27 01:44:56 +0000 |
---|---|---|
committer | Kevin Lo <kevlo@cvs.openbsd.org> | 2021-07-27 01:44:56 +0000 |
commit | 6da68c1e882066dd15bd8dc4e4ad5072296e0392 (patch) | |
tree | 2c0b35a9a59e8125936c33d07c6e865146a6df0a | |
parent | 992fe9af703c5564c9f83ee7e939673145a45aaa (diff) |
Fix Rx hash type
This matches what Linux and FreeBSD do.
ok jmatthew@
-rw-r--r-- | sys/dev/pci/if_ix.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/pci/if_ix.c b/sys/dev/pci/if_ix.c index 45a8025c89f..6e6655446b5 100644 --- a/sys/dev/pci/if_ix.c +++ b/sys/dev/pci/if_ix.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ix.c,v 1.179 2021/07/23 00:29:14 jmatthew Exp $ */ +/* $OpenBSD: if_ix.c,v 1.180 2021/07/27 01:44:55 kevlo Exp $ */ /****************************************************************************** @@ -3071,7 +3071,8 @@ ixgbe_rxeof(struct rx_ring *rxr) i = rxr->next_to_check; while (if_rxr_inuse(&rxr->rx_ring) > 0) { - uint32_t hash, hashtype; + uint32_t hash; + uint16_t hashtype; bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, dsize * i, dsize, BUS_DMASYNC_POSTREAD); @@ -3101,7 +3102,8 @@ ixgbe_rxeof(struct rx_ring *rxr) vtag = letoh16(rxdesc->wb.upper.vlan); eop = ((staterr & IXGBE_RXD_STAT_EOP) != 0); hash = lemtoh32(&rxdesc->wb.lower.hi_dword.rss); - hashtype = lemtoh32(&rxdesc->wb.lower.lo_dword.data) & + hashtype = + lemtoh16(&rxdesc->wb.lower.lo_dword.hs_rss.pkt_info) & IXGBE_RXDADV_RSSTYPE_MASK; if (staterr & IXGBE_RXDADV_ERR_FRAME_ERR_MASK) { |