Skip to content

Commit 43e2dfb

Browse files
committed
Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says: ==================== 10GbE Intel Wired LAN Driver Updates 2016-04-04 This series contains updates to ixgbe and ixgbevf. Pavel Tikhomirov fixes a typo where we were incrementing transmit stats instead of receive stats on the receive side. Emil updates the ixgbevf driver to use bit operations for setting and checking the adapter state. Chas Williams adds the new NDO trust feature check so that the VF guest has the ability to set the unicast address of the interface, if it is a trusted VF. Alex cleans up the driver to that the only time we add a PF entry to the VLVF is either for VLAN 0 or if the PF has requested a VLAN that a VF is already using. Also adds support for generic transmit checksums, giving the added advantage is that we can support inner checksum offloads for tunnels and MPLS while still being able to transparently insert VLAN tags. Lastly, changed ixgbe so that we can use the ethtool rx-vlan-filter flag to toggle receive VLAN filtering on and off. Mark cleans up the ixgbe driver by making all op structures that do not change constants. Also fixed flow control for Xeon D KR backplanes, since we cannot use auto-negotiation to determine the mode, we have to use whatever the user configured. Sowmini Varadhan updates ixgbe to use eth_platform_get_mac_address() instead of the arch specific solution that was added by a previous commit. Don fixed an issue where it was possible that a system reset could occur when we were holding the SWFW semaphore lock, which the next time the driver loaded would see it incorrectly as locked. v2: updated patch 8 of the series to include a minor flags issue where we had lost NETIF_F_HW_TC and we were setting NETIF_F_SCTP_CRC in two different areas, when we only needed/wanted it in one spot. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 6e33804 + 0c5a616 commit 43e2dfb

17 files changed

+390
-327
lines changed

drivers/net/ethernet/intel/ixgbe/ixgbe.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*******************************************************************************
22
33
Intel 10 Gigabit PCI Express Linux driver
4-
Copyright(c) 1999 - 2013 Intel Corporation.
4+
Copyright(c) 1999 - 2016 Intel Corporation.
55
66
This program is free software; you can redistribute it and/or modify it
77
under the terms and conditions of the GNU General Public License,
@@ -456,7 +456,7 @@ static inline bool ixgbe_qv_lock_poll(struct ixgbe_q_vector *q_vector)
456456
IXGBE_QV_STATE_POLL);
457457
#ifdef BP_EXTENDED_STATS
458458
if (rc != IXGBE_QV_STATE_IDLE)
459-
q_vector->tx.ring->stats.yields++;
459+
q_vector->rx.ring->stats.yields++;
460460
#endif
461461
return rc == IXGBE_QV_STATE_IDLE;
462462
}
@@ -862,11 +862,11 @@ enum ixgbe_boards {
862862
board_X550EM_x,
863863
};
864864

865-
extern struct ixgbe_info ixgbe_82598_info;
866-
extern struct ixgbe_info ixgbe_82599_info;
867-
extern struct ixgbe_info ixgbe_X540_info;
868-
extern struct ixgbe_info ixgbe_X550_info;
869-
extern struct ixgbe_info ixgbe_X550EM_x_info;
865+
extern const struct ixgbe_info ixgbe_82598_info;
866+
extern const struct ixgbe_info ixgbe_82599_info;
867+
extern const struct ixgbe_info ixgbe_X540_info;
868+
extern const struct ixgbe_info ixgbe_X550_info;
869+
extern const struct ixgbe_info ixgbe_X550EM_x_info;
870870
#ifdef CONFIG_IXGBE_DCB
871871
extern const struct dcbnl_rtnl_ops dcbnl_ops;
872872
#endif

drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*******************************************************************************
22
33
Intel 10 Gigabit PCI Express Linux driver
4-
Copyright(c) 1999 - 2015 Intel Corporation.
4+
Copyright(c) 1999 - 2016 Intel Corporation.
55
66
This program is free software; you can redistribute it and/or modify it
77
under the terms and conditions of the GNU General Public License,
@@ -1160,7 +1160,7 @@ static void ixgbe_set_rxpba_82598(struct ixgbe_hw *hw, int num_pb,
11601160
IXGBE_WRITE_REG(hw, IXGBE_TXPBSIZE(i), IXGBE_TXPBSIZE_40KB);
11611161
}
11621162

1163-
static struct ixgbe_mac_operations mac_ops_82598 = {
1163+
static const struct ixgbe_mac_operations mac_ops_82598 = {
11641164
.init_hw = &ixgbe_init_hw_generic,
11651165
.reset_hw = &ixgbe_reset_hw_82598,
11661166
.start_hw = &ixgbe_start_hw_82598,
@@ -1192,9 +1192,11 @@ static struct ixgbe_mac_operations mac_ops_82598 = {
11921192
.clear_vfta = &ixgbe_clear_vfta_82598,
11931193
.set_vfta = &ixgbe_set_vfta_82598,
11941194
.fc_enable = &ixgbe_fc_enable_82598,
1195+
.setup_fc = ixgbe_setup_fc_generic,
11951196
.set_fw_drv_ver = NULL,
11961197
.acquire_swfw_sync = &ixgbe_acquire_swfw_sync,
11971198
.release_swfw_sync = &ixgbe_release_swfw_sync,
1199+
.init_swfw_sync = NULL,
11981200
.get_thermal_sensor_data = NULL,
11991201
.init_thermal_sensor_thresh = NULL,
12001202
.prot_autoc_read = &prot_autoc_read_generic,
@@ -1203,7 +1205,7 @@ static struct ixgbe_mac_operations mac_ops_82598 = {
12031205
.disable_rx = &ixgbe_disable_rx_generic,
12041206
};
12051207

1206-
static struct ixgbe_eeprom_operations eeprom_ops_82598 = {
1208+
static const struct ixgbe_eeprom_operations eeprom_ops_82598 = {
12071209
.init_params = &ixgbe_init_eeprom_params_generic,
12081210
.read = &ixgbe_read_eerd_generic,
12091211
.write = &ixgbe_write_eeprom_generic,
@@ -1214,7 +1216,7 @@ static struct ixgbe_eeprom_operations eeprom_ops_82598 = {
12141216
.update_checksum = &ixgbe_update_eeprom_checksum_generic,
12151217
};
12161218

1217-
static struct ixgbe_phy_operations phy_ops_82598 = {
1219+
static const struct ixgbe_phy_operations phy_ops_82598 = {
12181220
.identify = &ixgbe_identify_phy_generic,
12191221
.identify_sfp = &ixgbe_identify_module_generic,
12201222
.init = &ixgbe_init_phy_ops_82598,
@@ -1230,7 +1232,7 @@ static struct ixgbe_phy_operations phy_ops_82598 = {
12301232
.check_overtemp = &ixgbe_tn_check_overtemp,
12311233
};
12321234

1233-
struct ixgbe_info ixgbe_82598_info = {
1235+
const struct ixgbe_info ixgbe_82598_info = {
12341236
.mac = ixgbe_mac_82598EB,
12351237
.get_invariants = &ixgbe_get_invariants_82598,
12361238
.mac_ops = &mac_ops_82598,

drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*******************************************************************************
22
33
Intel 10 Gigabit PCI Express Linux driver
4-
Copyright(c) 1999 - 2015 Intel Corporation.
4+
Copyright(c) 1999 - 2016 Intel Corporation.
55
66
This program is free software; you can redistribute it and/or modify it
77
under the terms and conditions of the GNU General Public License,
@@ -2181,7 +2181,7 @@ static s32 ixgbe_write_i2c_byte_82599(struct ixgbe_hw *hw, u8 byte_offset,
21812181
return status;
21822182
}
21832183

2184-
static struct ixgbe_mac_operations mac_ops_82599 = {
2184+
static const struct ixgbe_mac_operations mac_ops_82599 = {
21852185
.init_hw = &ixgbe_init_hw_generic,
21862186
.reset_hw = &ixgbe_reset_hw_82599,
21872187
.start_hw = &ixgbe_start_hw_82599,
@@ -2220,13 +2220,15 @@ static struct ixgbe_mac_operations mac_ops_82599 = {
22202220
.clear_vfta = &ixgbe_clear_vfta_generic,
22212221
.set_vfta = &ixgbe_set_vfta_generic,
22222222
.fc_enable = &ixgbe_fc_enable_generic,
2223+
.setup_fc = ixgbe_setup_fc_generic,
22232224
.set_fw_drv_ver = &ixgbe_set_fw_drv_ver_generic,
22242225
.init_uta_tables = &ixgbe_init_uta_tables_generic,
22252226
.setup_sfp = &ixgbe_setup_sfp_modules_82599,
22262227
.set_mac_anti_spoofing = &ixgbe_set_mac_anti_spoofing,
22272228
.set_vlan_anti_spoofing = &ixgbe_set_vlan_anti_spoofing,
22282229
.acquire_swfw_sync = &ixgbe_acquire_swfw_sync,
22292230
.release_swfw_sync = &ixgbe_release_swfw_sync,
2231+
.init_swfw_sync = NULL,
22302232
.get_thermal_sensor_data = &ixgbe_get_thermal_sensor_data_generic,
22312233
.init_thermal_sensor_thresh = &ixgbe_init_thermal_sensor_thresh_generic,
22322234
.prot_autoc_read = &prot_autoc_read_82599,
@@ -2235,7 +2237,7 @@ static struct ixgbe_mac_operations mac_ops_82599 = {
22352237
.disable_rx = &ixgbe_disable_rx_generic,
22362238
};
22372239

2238-
static struct ixgbe_eeprom_operations eeprom_ops_82599 = {
2240+
static const struct ixgbe_eeprom_operations eeprom_ops_82599 = {
22392241
.init_params = &ixgbe_init_eeprom_params_generic,
22402242
.read = &ixgbe_read_eeprom_82599,
22412243
.read_buffer = &ixgbe_read_eeprom_buffer_82599,
@@ -2246,7 +2248,7 @@ static struct ixgbe_eeprom_operations eeprom_ops_82599 = {
22462248
.update_checksum = &ixgbe_update_eeprom_checksum_generic,
22472249
};
22482250

2249-
static struct ixgbe_phy_operations phy_ops_82599 = {
2251+
static const struct ixgbe_phy_operations phy_ops_82599 = {
22502252
.identify = &ixgbe_identify_phy_82599,
22512253
.identify_sfp = &ixgbe_identify_module_generic,
22522254
.init = &ixgbe_init_phy_ops_82599,
@@ -2263,7 +2265,7 @@ static struct ixgbe_phy_operations phy_ops_82599 = {
22632265
.check_overtemp = &ixgbe_tn_check_overtemp,
22642266
};
22652267

2266-
struct ixgbe_info ixgbe_82599_info = {
2268+
const struct ixgbe_info ixgbe_82599_info = {
22672269
.mac = ixgbe_mac_82599EB,
22682270
.get_invariants = &ixgbe_get_invariants_82599,
22692271
.mac_ops = &mac_ops_82599,

drivers/net/ethernet/intel/ixgbe/ixgbe_common.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*******************************************************************************
22
33
Intel 10 Gigabit PCI Express Linux driver
4-
Copyright(c) 1999 - 2015 Intel Corporation.
4+
Copyright(c) 1999 - 2016 Intel Corporation.
55
66
This program is free software; you can redistribute it and/or modify it
77
under the terms and conditions of the GNU General Public License,
@@ -111,12 +111,12 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
111111
}
112112

113113
/**
114-
* ixgbe_setup_fc - Set up flow control
114+
* ixgbe_setup_fc_generic - Set up flow control
115115
* @hw: pointer to hardware structure
116116
*
117117
* Called at init time to set up flow control.
118118
**/
119-
static s32 ixgbe_setup_fc(struct ixgbe_hw *hw)
119+
s32 ixgbe_setup_fc_generic(struct ixgbe_hw *hw)
120120
{
121121
s32 ret_val = 0;
122122
u32 reg = 0, reg_bp = 0;
@@ -296,7 +296,7 @@ s32 ixgbe_start_hw_generic(struct ixgbe_hw *hw)
296296
IXGBE_WRITE_FLUSH(hw);
297297

298298
/* Setup flow control */
299-
ret_val = ixgbe_setup_fc(hw);
299+
ret_val = hw->mac.ops.setup_fc(hw);
300300
if (ret_val)
301301
return ret_val;
302302

drivers/net/ethernet/intel/ixgbe/ixgbe_common.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*******************************************************************************
22
33
Intel 10 Gigabit PCI Express Linux driver
4-
Copyright(c) 1999 - 2014 Intel Corporation.
4+
Copyright(c) 1999 - 2016 Intel Corporation.
55
66
This program is free software; you can redistribute it and/or modify it
77
under the terms and conditions of the GNU General Public License,
@@ -81,6 +81,7 @@ s32 ixgbe_disable_rx_buff_generic(struct ixgbe_hw *hw);
8181
s32 ixgbe_enable_rx_buff_generic(struct ixgbe_hw *hw);
8282
s32 ixgbe_enable_rx_dma_generic(struct ixgbe_hw *hw, u32 regval);
8383
s32 ixgbe_fc_enable_generic(struct ixgbe_hw *hw);
84+
s32 ixgbe_setup_fc_generic(struct ixgbe_hw *);
8485
bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw);
8586
void ixgbe_fc_autoneg(struct ixgbe_hw *hw);
8687

0 commit comments

Comments
 (0)