ixgbe: ixgbe_atr() should access udp_hdr(skb) only for UDP packets
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Mon, 24 Oct 2016 22:36:38 +0000 (15:36 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sat, 5 Nov 2016 00:34:49 +0000 (17:34 -0700)
Commit 9f12df906cd8 ("ixgbe: Store VXLAN port number in network order")
incorrectly checks for hdr.ipv4->protocol != IPPROTO_UDP
in ixgbe_atr(). This check should be for "==" instead.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reviewed-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index a582bea..e4a3227 100644 (file)
@@ -7662,7 +7662,7 @@ static void ixgbe_atr(struct ixgbe_ring *ring,
        hdr.network = skb_network_header(skb);
        if (skb->encapsulation &&
            first->protocol == htons(ETH_P_IP) &&
-           hdr.ipv4->protocol != IPPROTO_UDP) {
+           hdr.ipv4->protocol == IPPROTO_UDP) {
                struct ixgbe_adapter *adapter = q_vector->adapter;
 
                /* verify the port is recognized as VXLAN */