diff options
| -rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 926ad8c2f2c7..a9e091cb5499 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
| @@ -1201,9 +1201,10 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector, | |||
| 1201 | hdr_info = le16_to_cpu(ixgbe_get_hdr_info(rx_desc)); | 1201 | hdr_info = le16_to_cpu(ixgbe_get_hdr_info(rx_desc)); |
| 1202 | len = (hdr_info & IXGBE_RXDADV_HDRBUFLEN_MASK) >> | 1202 | len = (hdr_info & IXGBE_RXDADV_HDRBUFLEN_MASK) >> |
| 1203 | IXGBE_RXDADV_HDRBUFLEN_SHIFT; | 1203 | IXGBE_RXDADV_HDRBUFLEN_SHIFT; |
| 1204 | if (len > IXGBE_RX_HDR_SIZE) | ||
| 1205 | len = IXGBE_RX_HDR_SIZE; | ||
| 1206 | upper_len = le16_to_cpu(rx_desc->wb.upper.length); | 1204 | upper_len = le16_to_cpu(rx_desc->wb.upper.length); |
| 1205 | if ((len > IXGBE_RX_HDR_SIZE) || | ||
| 1206 | (upper_len && !(hdr_info & IXGBE_RXDADV_SPH))) | ||
| 1207 | len = IXGBE_RX_HDR_SIZE; | ||
| 1207 | } else { | 1208 | } else { |
| 1208 | len = le16_to_cpu(rx_desc->wb.upper.length); | 1209 | len = le16_to_cpu(rx_desc->wb.upper.length); |
| 1209 | } | 1210 | } |
