Skip to content

Commit dc12685

Browse files
committed
Fix compilation on RH9
1 parent 91fa277 commit dc12685

File tree

1 file changed

+63
-2
lines changed

1 file changed

+63
-2
lines changed

drivers/intel/igb/igb-5.16.11-zc/src/igb_ethtool.c

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2873,7 +2873,13 @@ static void igb_get_dmac(struct net_device *netdev,
28732873
#endif
28742874

28752875
#ifdef ETHTOOL_GEEE
2876-
static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
2876+
static int igb_get_eee(struct net_device *netdev,
2877+
#ifdef HAVE_ETHTOOL_KEEE
2878+
struct ethtool_keee *edata
2879+
#else
2880+
struct ethtool_eee *edata
2881+
#endif
2882+
)
28772883
{
28782884
struct igb_adapter *adapter = netdev_priv(netdev);
28792885
struct e1000_hw *hw = &adapter->hw;
@@ -2884,12 +2890,22 @@ static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
28842890
(hw->phy.media_type != e1000_media_type_copper))
28852891
return -EOPNOTSUPP;
28862892

2893+
#ifdef HAVE_ETHTOOL_KEEE
2894+
linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, edata->supported);
2895+
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, edata->supported);
2896+
#else
28872897
edata->supported = (SUPPORTED_1000baseT_Full |
28882898
SUPPORTED_100baseT_Full);
2899+
#endif
28892900

28902901
if (!hw->dev_spec._82575.eee_disable)
2902+
#ifdef HAVE_ETHTOOL_KEEE
2903+
mii_eee_cap1_mod_linkmode_t(edata->advertised,
2904+
adapter->eee_advert);
2905+
#else
28912906
edata->advertised =
28922907
mmd_eee_adv_to_ethtool_adv_t(adapter->eee_advert);
2908+
#endif
28932909

28942910
/* The IPCNFG and EEER registers are not supported on I354. */
28952911
if (hw->mac.type == e1000_i354) {
@@ -2915,7 +2931,11 @@ static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
29152931
if (ret_val)
29162932
return -ENODATA;
29172933

2934+
#ifdef HAVE_ETHTOOL_KEEE
2935+
mii_eee_cap1_mod_linkmode_t(edata->lp_advertised, phy_data);
2936+
#else
29182937
edata->lp_advertised = mmd_eee_adv_to_ethtool_adv_t(phy_data);
2938+
#endif
29192939

29202940
break;
29212941
case e1000_i354:
@@ -2927,7 +2947,11 @@ static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
29272947
if (ret_val)
29282948
return -ENODATA;
29292949

2950+
#ifdef HAVE_ETHTOOL_KEEE
2951+
mii_eee_cap1_mod_linkmode_t(edata->lp_advertised, phy_data);
2952+
#else
29302953
edata->lp_advertised = mmd_eee_adv_to_ethtool_adv_t(phy_data);
2954+
#endif
29312955

29322956
break;
29332957
default:
@@ -2948,7 +2972,11 @@ static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
29482972
edata->eee_enabled = false;
29492973
edata->eee_active = false;
29502974
edata->tx_lpi_enabled = false;
2975+
#ifdef HAVE_ETHTOOL_KEEE
2976+
linkmode_zero(edata->advertised);
2977+
#else
29512978
edata->advertised &= ~edata->advertised;
2979+
#endif
29522980
}
29532981

29542982
return 0;
@@ -2957,11 +2985,22 @@ static int igb_get_eee(struct net_device *netdev, struct ethtool_eee *edata)
29572985

29582986
#ifdef ETHTOOL_SEEE
29592987
static int igb_set_eee(struct net_device *netdev,
2960-
struct ethtool_eee *edata)
2988+
#ifdef HAVE_ETHTOOL_KEEE
2989+
struct ethtool_keee *edata
2990+
#else
2991+
struct ethtool_eee *edata
2992+
#endif
2993+
)
29612994
{
29622995
struct igb_adapter *adapter = netdev_priv(netdev);
29632996
struct e1000_hw *hw = &adapter->hw;
2997+
#ifdef HAVE_ETHTOOL_KEEE
2998+
__ETHTOOL_DECLARE_LINK_MODE_MASK(supported) = {};
2999+
__ETHTOOL_DECLARE_LINK_MODE_MASK(tmp) = {};
3000+
struct ethtool_keee eee_curr;
3001+
#else
29643002
struct ethtool_eee eee_curr;
3003+
#endif
29653004
bool adv1g_eee = true, adv100m_eee = true;
29663005
s32 ret_val;
29673006

@@ -2987,22 +3026,44 @@ static int igb_set_eee(struct net_device *netdev,
29873026
return -EINVAL;
29883027
}
29893028

3029+
#ifdef HAVE_ETHTOOL_KEEE
3030+
linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT,
3031+
supported);
3032+
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT,
3033+
supported);
3034+
if (linkmode_andnot(tmp, edata->advertised, supported)) {
3035+
#else
29903036
if (!edata->advertised || (edata->advertised &
29913037
~(ADVERTISE_100_FULL | ADVERTISE_1000_FULL))) {
3038+
#endif
29923039
dev_err(pci_dev_to_dev(adapter->pdev),
29933040
"EEE Advertisement supports 100Base-Tx Full Duplex(0x08) 1000Base-T Full Duplex(0x20) or both(0x28)\n");
29943041
return -EINVAL;
29953042
}
3043+
3044+
#ifdef HAVE_ETHTOOL_KEEE
3045+
adv100m_eee = linkmode_test_bit(
3046+
ETHTOOL_LINK_MODE_100baseT_Full_BIT,
3047+
edata->advertised);
3048+
adv1g_eee = linkmode_test_bit(
3049+
ETHTOOL_LINK_MODE_1000baseT_Full_BIT,
3050+
edata->advertised);
3051+
#else
29963052
adv100m_eee = !!(edata->advertised & ADVERTISE_100_FULL);
29973053
adv1g_eee = !!(edata->advertised & ADVERTISE_1000_FULL);
3054+
#endif
29983055

29993056
} else if (!edata->eee_enabled) {
30003057
dev_err(pci_dev_to_dev(adapter->pdev),
30013058
"Setting EEE options is not supported with EEE disabled\n");
30023059
return -EINVAL;
30033060
}
30043061

3062+
#ifdef HAVE_ETHTOOL_KEEE
3063+
adapter->eee_advert = linkmode_to_mii_eee_cap1_t(edata->advertised);
3064+
#else
30053065
adapter->eee_advert = ethtool_adv_to_mmd_eee_adv_t(edata->advertised);
3066+
#endif
30063067

30073068
if (hw->dev_spec._82575.eee_disable != !edata->eee_enabled) {
30083069
hw->dev_spec._82575.eee_disable = !edata->eee_enabled;

0 commit comments

Comments
 (0)