From cd43338509d07e0e4f3d986ec73f9817b42f91ac Mon Sep 17 00:00:00 2001 From: Marcin Wojtas Date: Thu, 9 Nov 2017 12:32:10 +0000 Subject: [PATCH] Fix checking if the DF flag was set in ENA driver The previous way of checking for DF was not valid. When DF is enabled, the DF bit should be 1. The original way of checking it was wrong in 2 ways: first of all, it was not checking for single bit, secondly, it was checking for 0. Submitted by: Michal Krawczyk Reviewed by: byenduri_gmail.com Obtained from: Semihalf Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D12865 --- sys/dev/ena/ena.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c index 7b5bf9211b4..3973aaed214 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -2640,7 +2640,7 @@ ena_tx_csum(struct ena_com_tx_ctx *ena_tx_ctx, struct mbuf *mbuf) switch (etype) { case ETHERTYPE_IP: ena_tx_ctx->l3_proto = ENA_ETH_IO_L3_PROTO_IPV4; - if (ip->ip_off == 0) + if ((ip->ip_off & htons(IP_DF)) != 0) ena_tx_ctx->df = 1; break; case ETHERTYPE_IPV6: