Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue

Tony Nguyen says:

====================
igc: ethtool: Flex filter cleanup

Kurt Kanzenbach says:

This series contains some cosmetics for the flex filter code. The fixes have
been merged separately via -net already.

* '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
igc: Unify filtering rule fields
igc: Use netdev printing functions for flex filters
igc: Use reverse xmas tree
====================

Link: https://lore.kernel.org/r/20240207191656.1250777-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+14 -13
+1 -1
drivers/net/ethernet/intel/igc/igc.h
··· 585 585 struct igc_nfc_filter { 586 586 u8 match_flags; 587 587 u16 etype; 588 - __be16 vlan_etype; 588 + u16 vlan_etype; 589 589 u16 vlan_tci; 590 590 u16 vlan_tci_mask; 591 591 u8 src_addr[ETH_ALEN];
+2 -2
drivers/net/ethernet/intel/igc/igc_ethtool.c
··· 981 981 982 982 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_ETYPE) { 983 983 fsp->flow_type |= FLOW_EXT; 984 - fsp->h_ext.vlan_etype = rule->filter.vlan_etype; 984 + fsp->h_ext.vlan_etype = htons(rule->filter.vlan_etype); 985 985 fsp->m_ext.vlan_etype = ETHER_TYPE_FULL_MASK; 986 986 } 987 987 ··· 1249 1249 1250 1250 /* VLAN etype matching */ 1251 1251 if ((fsp->flow_type & FLOW_EXT) && fsp->h_ext.vlan_etype) { 1252 - rule->filter.vlan_etype = fsp->h_ext.vlan_etype; 1252 + rule->filter.vlan_etype = ntohs(fsp->h_ext.vlan_etype); 1253 1253 rule->filter.match_flags |= IGC_FILTER_FLAG_VLAN_ETYPE; 1254 1254 } 1255 1255
+11 -10
drivers/net/ethernet/intel/igc/igc_main.c
··· 3385 3385 u32 fhftsl; 3386 3386 3387 3387 if (input->index >= MAX_FLEX_FILTER) { 3388 - dev_err(&adapter->pdev->dev, "Wrong Flex Filter index selected!\n"); 3388 + netdev_err(adapter->netdev, "Wrong Flex Filter index selected!\n"); 3389 3389 return -EINVAL; 3390 3390 } 3391 3391 ··· 3420 3420 static int igc_write_flex_filter_ll(struct igc_adapter *adapter, 3421 3421 struct igc_flex_filter *input) 3422 3422 { 3423 - struct device *dev = &adapter->pdev->dev; 3424 3423 struct igc_hw *hw = &adapter->hw; 3425 3424 u8 *data = input->data; 3426 3425 u8 *mask = input->mask; ··· 3433 3434 * out early to avoid surprises later. 3434 3435 */ 3435 3436 if (input->length % 8 != 0) { 3436 - dev_err(dev, "The length of a flex filter has to be 8 byte aligned!\n"); 3437 + netdev_err(adapter->netdev, "The length of a flex filter has to be 8 byte aligned!\n"); 3437 3438 return -EINVAL; 3438 3439 } 3439 3440 ··· 3503 3504 } 3504 3505 wr32(IGC_WUFC, wufc); 3505 3506 3506 - dev_dbg(&adapter->pdev->dev, "Added flex filter %u to HW.\n", 3507 - input->index); 3507 + netdev_dbg(adapter->netdev, "Added flex filter %u to HW.\n", 3508 + input->index); 3508 3509 3509 3510 return 0; 3510 3511 } ··· 3576 3577 static int igc_add_flex_filter(struct igc_adapter *adapter, 3577 3578 struct igc_nfc_rule *rule) 3578 3579 { 3579 - struct igc_flex_filter flex = { }; 3580 3580 struct igc_nfc_filter *filter = &rule->filter; 3581 3581 unsigned int eth_offset, user_offset; 3582 + struct igc_flex_filter flex = { }; 3582 3583 int ret, index; 3583 3584 bool vlan; 3584 3585 ··· 3614 3615 ETH_ALEN, NULL); 3615 3616 3616 3617 /* Add VLAN etype */ 3617 - if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_ETYPE) 3618 - igc_flex_filter_add_field(&flex, &filter->vlan_etype, 12, 3619 - sizeof(filter->vlan_etype), 3620 - NULL); 3618 + if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_ETYPE) { 3619 + __be16 vlan_etype = cpu_to_be16(filter->vlan_etype); 3620 + 3621 + igc_flex_filter_add_field(&flex, &vlan_etype, 12, 3622 + sizeof(vlan_etype), NULL); 3623 + } 3621 3624 3622 3625 /* Add VLAN TCI */ 3623 3626 if (rule->filter.match_flags & IGC_FILTER_FLAG_VLAN_TCI)