Hi Vinicius, Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on jkirsher-next-queue/dev-queue] [also build test WARNING on v4.16-rc2 next-20180223] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Vinicius-Costa-Gomes/igb-Fix-not-adding-filter-elements-to-the-list/20180226-053124 base: https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/intel/igb/igb_main.c:474:25: sparse: cast to restricted __le64 drivers/net/ethernet/intel/igb/igb_main.c:474:25: sparse: cast to restricted __le64 drivers/net/ethernet/intel/igb/igb_main.c:554:33: sparse: cast to restricted __le64 drivers/net/ethernet/intel/igb/igb_main.c:554:33: sparse: cast to restricted __le64 drivers/net/ethernet/intel/igb/igb_main.c:560:33: sparse: cast to restricted __le64 drivers/net/ethernet/intel/igb/igb_main.c:560:33: sparse: cast to restricted __le64 >> drivers/net/ethernet/intel/igb/igb_main.c:2573:48: sparse: incorrect type in >> assignment (different base types) @@ expected restricted __be16 vlan_tci @@ >> got unsignedrestricted __be16 vlan_tci @@ drivers/net/ethernet/intel/igb/igb_main.c:2573:48: expected restricted __be16 vlan_tci drivers/net/ethernet/intel/igb/igb_main.c:2573:48: got unsigned short vlan_priority:3 drivers/net/ethernet/intel/igb/igb_main.c:5616:46: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __wsum diff @@ got restricted __wsum diff @@ drivers/net/ethernet/intel/igb/igb_main.c:5616:46: expected restricted __wsum diff drivers/net/ethernet/intel/igb/igb_main.c:5616:46: got restricted __be32 <noident> drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast to restricted __be16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast from restricted __le16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast to restricted __be16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast from restricted __le16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast to restricted __be16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast from restricted __le16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast to restricted __be16 drivers/net/ethernet/intel/igb/igb_main.c:8047:31: sparse: cast from restricted __le16 vim +2573 drivers/net/ethernet/intel/igb/igb_main.c 2503 2504 static int igb_parse_cls_flower(struct igb_adapter *adapter, 2505 struct tc_cls_flower_offload *f, 2506 int traffic_class, 2507 struct igb_nfc_filter *input) 2508 { 2509 if (f->dissector->used_keys & 2510 ~(BIT(FLOW_DISSECTOR_KEY_BASIC) | 2511 BIT(FLOW_DISSECTOR_KEY_CONTROL) | 2512 BIT(FLOW_DISSECTOR_KEY_ETH_ADDRS) | 2513 BIT(FLOW_DISSECTOR_KEY_VLAN))) { 2514 dev_err(&adapter->pdev->dev, "Unsupported key used: 0x%x\n", 2515 f->dissector->used_keys); 2516 return -EOPNOTSUPP; 2517 } 2518 2519 if (dissector_uses_key(f->dissector, FLOW_DISSECTOR_KEY_ETH_ADDRS)) { 2520 struct flow_dissector_key_eth_addrs *key = 2521 skb_flow_dissector_target(f->dissector, 2522 FLOW_DISSECTOR_KEY_ETH_ADDRS, 2523 f->key); 2524 2525 struct flow_dissector_key_eth_addrs *mask = 2526 skb_flow_dissector_target(f->dissector, 2527 FLOW_DISSECTOR_KEY_ETH_ADDRS, 2528 f->mask); 2529 2530 if (is_broadcast_ether_addr(mask->dst)) { 2531 input->filter.match_flags |= 2532 IGB_FILTER_FLAG_DST_MAC_ADDR; 2533 ether_addr_copy(input->filter.dst_addr, key->dst); 2534 } 2535 2536 if (is_broadcast_ether_addr(mask->src)) { 2537 input->filter.match_flags |= 2538 IGB_FILTER_FLAG_SRC_MAC_ADDR; 2539 ether_addr_copy(input->filter.src_addr, key->src); 2540 } 2541 } 2542 2543 if (dissector_uses_key(f->dissector, FLOW_DISSECTOR_KEY_BASIC)) { 2544 struct flow_dissector_key_basic *key = 2545 skb_flow_dissector_target(f->dissector, 2546 FLOW_DISSECTOR_KEY_BASIC, 2547 f->key); 2548 2549 struct flow_dissector_key_basic *mask = 2550 skb_flow_dissector_target(f->dissector, 2551 FLOW_DISSECTOR_KEY_BASIC, 2552 f->mask); 2553 2554 if (mask->n_proto == ETHER_TYPE_FULL_MASK) { 2555 input->filter.match_flags |= 2556 IGB_FILTER_FLAG_ETHER_TYPE; 2557 input->filter.etype = key->n_proto; 2558 } 2559 } 2560 2561 if (dissector_uses_key(f->dissector, FLOW_DISSECTOR_KEY_VLAN)) { 2562 struct flow_dissector_key_vlan *key = 2563 skb_flow_dissector_target(f->dissector, 2564 FLOW_DISSECTOR_KEY_VLAN, 2565 f->key); 2566 struct flow_dissector_key_vlan *mask = 2567 skb_flow_dissector_target(f->dissector, 2568 FLOW_DISSECTOR_KEY_VLAN, 2569 f->mask); 2570 2571 if (mask->vlan_priority) { 2572 input->filter.match_flags |= IGB_FILTER_FLAG_VLAN_TCI; > 2573 input->filter.vlan_tci = key->vlan_priority; 2574 } 2575 } 2576 2577 input->action = traffic_class; 2578 input->cookie = f->cookie; 2579 2580 return 0; 2581 } 2582 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation