ixgbe: Fix cls_u32 offload support for L4 ports
[cascardo/linux.git] / drivers / net / ethernet / intel / ixgbe / ixgbe_model.h
index 61f7290..74c53ad 100644 (file)
@@ -64,28 +64,20 @@ static struct ixgbe_mat_field ixgbe_ipv4_fields[] = {
        { .val = NULL } /* terminal node */
 };
 
-static inline int ixgbe_mat_prgm_sport(struct ixgbe_fdir_filter *input,
+static inline int ixgbe_mat_prgm_ports(struct ixgbe_fdir_filter *input,
                                       union ixgbe_atr_input *mask,
                                       u32 val, u32 m)
 {
        input->filter.formatted.src_port = val & 0xffff;
        mask->formatted.src_port = m & 0xffff;
-       return 0;
-};
+       input->filter.formatted.dst_port = val >> 16;
+       mask->formatted.dst_port = m >> 16;
 
-static inline int ixgbe_mat_prgm_dport(struct ixgbe_fdir_filter *input,
-                                      union ixgbe_atr_input *mask,
-                                      u32 val, u32 m)
-{
-       input->filter.formatted.dst_port = val & 0xffff;
-       mask->formatted.dst_port = m & 0xffff;
        return 0;
 };
 
 static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
-       {.off = 0, .val = ixgbe_mat_prgm_sport,
-        .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
-       {.off = 2, .val = ixgbe_mat_prgm_dport,
+       {.off = 0, .val = ixgbe_mat_prgm_ports,
         .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
        { .val = NULL } /* terminal node */
 };