Skip to content

Commit e30cb13

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "Fixes keep trickling in: 1) Various IP fragmentation memory limit hardening changes from Eric Dumazet. 2) Revert ipv6 metrics leak change, it causes more problems than it fixes for now. 3) Fix WoL regression in stmmac driver, from Jose Abreu. 4) Netlink socket spectre v1 gadget fix, from Jeremy Cline" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: Revert "net/ipv6: fix metrics leak" rxrpc: Fix user call ID check in rxrpc_service_prealloc_one net: dsa: Do not suspend/resume closed slave_dev netlink: Fix spectre v1 gadget in netlink_create() Documentation: dpaa2: Use correct heading adornment net: stmmac: Fix WoL for PCI-based setups bonding: avoid lockdep confusion in bond_get_stats() enic: do not call enic_change_mtu in enic_probe ipv4: frags: handle possible skb truesize change inet: frag: enforce memory limits earlier net/mlx5e: IPoIB, Set the netdevice sw mtu in ipoib enhanced flow net/mlx5e: Fix null pointer access when setting MTU of vport representor net/mlx5e: Set port trust mode to PCP as default net/mlx5e: E-Switch, Initialize eswitch only if eswitch manager net: dsa: mv88e6xxx: Fix SERDES support on 88E6141/6341 brcmfmac: fix regression in parsing NVRAM for multiple devices iwlwifi: add more card IDs for 9000 series
2 parents a3f94cb + e6aed04 commit e30cb13

File tree

19 files changed

+184
-30
lines changed

19 files changed

+184
-30
lines changed

Documentation/networking/dpaa2/overview.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
.. include:: <isonum.txt>
22

3+
=========================================================
34
DPAA2 (Data Path Acceleration Architecture Gen2) Overview
45
=========================================================
56

drivers/net/bonding/bond_main.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1717,6 +1717,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
17171717
goto err_upper_unlink;
17181718
}
17191719

1720+
bond->nest_level = dev_get_nest_level(bond_dev) + 1;
1721+
17201722
/* If the mode uses primary, then the following is handled by
17211723
* bond_change_active_slave().
17221724
*/
@@ -1764,7 +1766,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
17641766
if (bond_mode_can_use_xmit_hash(bond))
17651767
bond_update_slave_arr(bond, NULL);
17661768

1767-
bond->nest_level = dev_get_nest_level(bond_dev);
17681769

17691770
netdev_info(bond_dev, "Enslaving %s as %s interface with %s link\n",
17701771
slave_dev->name,
@@ -3415,6 +3416,13 @@ static void bond_fold_stats(struct rtnl_link_stats64 *_res,
34153416
}
34163417
}
34173418

3419+
static int bond_get_nest_level(struct net_device *bond_dev)
3420+
{
3421+
struct bonding *bond = netdev_priv(bond_dev);
3422+
3423+
return bond->nest_level;
3424+
}
3425+
34183426
static void bond_get_stats(struct net_device *bond_dev,
34193427
struct rtnl_link_stats64 *stats)
34203428
{
@@ -3423,7 +3431,7 @@ static void bond_get_stats(struct net_device *bond_dev,
34233431
struct list_head *iter;
34243432
struct slave *slave;
34253433

3426-
spin_lock(&bond->stats_lock);
3434+
spin_lock_nested(&bond->stats_lock, bond_get_nest_level(bond_dev));
34273435
memcpy(stats, &bond->bond_stats, sizeof(*stats));
34283436

34293437
rcu_read_lock();
@@ -4227,6 +4235,7 @@ static const struct net_device_ops bond_netdev_ops = {
42274235
.ndo_neigh_setup = bond_neigh_setup,
42284236
.ndo_vlan_rx_add_vid = bond_vlan_rx_add_vid,
42294237
.ndo_vlan_rx_kill_vid = bond_vlan_rx_kill_vid,
4238+
.ndo_get_lock_subclass = bond_get_nest_level,
42304239
#ifdef CONFIG_NET_POLL_CONTROLLER
42314240
.ndo_netpoll_setup = bond_netpoll_setup,
42324241
.ndo_netpoll_cleanup = bond_netpoll_cleanup,
@@ -4725,6 +4734,7 @@ static int bond_init(struct net_device *bond_dev)
47254734
if (!bond->wq)
47264735
return -ENOMEM;
47274736

4737+
bond->nest_level = SINGLE_DEPTH_NESTING;
47284738
netdev_lockdep_set_classes(bond_dev);
47294739

47304740
list_add_tail(&bond->bond_list, &bn->dev_list);

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2617,7 +2617,6 @@ static const struct mv88e6xxx_ops mv88e6085_ops = {
26172617
.rmu_disable = mv88e6085_g1_rmu_disable,
26182618
.vtu_getnext = mv88e6352_g1_vtu_getnext,
26192619
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
2620-
.serdes_power = mv88e6341_serdes_power,
26212620
};
26222621

26232622
static const struct mv88e6xxx_ops mv88e6095_ops = {
@@ -2783,6 +2782,7 @@ static const struct mv88e6xxx_ops mv88e6141_ops = {
27832782
.reset = mv88e6352_g1_reset,
27842783
.vtu_getnext = mv88e6352_g1_vtu_getnext,
27852784
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
2785+
.serdes_power = mv88e6341_serdes_power,
27862786
.gpio_ops = &mv88e6352_gpio_ops,
27872787
};
27882788

@@ -2960,7 +2960,6 @@ static const struct mv88e6xxx_ops mv88e6175_ops = {
29602960
.reset = mv88e6352_g1_reset,
29612961
.vtu_getnext = mv88e6352_g1_vtu_getnext,
29622962
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
2963-
.serdes_power = mv88e6341_serdes_power,
29642963
};
29652964

29662965
static const struct mv88e6xxx_ops mv88e6176_ops = {
@@ -3336,6 +3335,7 @@ static const struct mv88e6xxx_ops mv88e6341_ops = {
33363335
.reset = mv88e6352_g1_reset,
33373336
.vtu_getnext = mv88e6352_g1_vtu_getnext,
33383337
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
3338+
.serdes_power = mv88e6341_serdes_power,
33393339
.gpio_ops = &mv88e6352_gpio_ops,
33403340
.avb_ops = &mv88e6390_avb_ops,
33413341
};

drivers/net/ethernet/cisco/enic/enic_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2892,7 +2892,6 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
28922892
*/
28932893

28942894
enic->port_mtu = enic->config.mtu;
2895-
(void)enic_change_mtu(netdev, enic->port_mtu);
28962895

28972896
err = enic_set_mac_addr(netdev, enic->mac_addr);
28982897
if (err) {
@@ -2982,6 +2981,7 @@ static int enic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
29822981
/* MTU range: 68 - 9000 */
29832982
netdev->min_mtu = ENIC_MIN_MTU;
29842983
netdev->max_mtu = ENIC_MAX_MTU;
2984+
netdev->mtu = enic->port_mtu;
29852985

29862986
err = register_netdev(netdev);
29872987
if (err) {

drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,8 @@ static int mlx5e_trust_initialize(struct mlx5e_priv *priv)
11721172
struct mlx5_core_dev *mdev = priv->mdev;
11731173
int err;
11741174

1175+
priv->dcbx_dp.trust_state = MLX5_QPTS_TRUST_PCP;
1176+
11751177
if (!MLX5_DSCP_SUPPORTED(mdev))
11761178
return 0;
11771179

drivers/net/ethernet/mellanox/mlx5/core/en_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3712,7 +3712,8 @@ int mlx5e_change_mtu(struct net_device *netdev, int new_mtu,
37123712

37133713
if (!reset) {
37143714
params->sw_mtu = new_mtu;
3715-
set_mtu_cb(priv);
3715+
if (set_mtu_cb)
3716+
set_mtu_cb(priv);
37163717
netdev->mtu = params->sw_mtu;
37173718
goto out;
37183719
}

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,7 +1696,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
16961696
int vport_num;
16971697
int err;
16981698

1699-
if (!MLX5_VPORT_MANAGER(dev))
1699+
if (!MLX5_ESWITCH_MANAGER(dev))
17001700
return 0;
17011701

17021702
esw_info(dev,
@@ -1765,7 +1765,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
17651765

17661766
void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw)
17671767
{
1768-
if (!esw || !MLX5_VPORT_MANAGER(esw->dev))
1768+
if (!esw || !MLX5_ESWITCH_MANAGER(esw->dev))
17691769
return;
17701770

17711771
esw_info(esw->dev, "cleanup\n");

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ void mlx5i_init(struct mlx5_core_dev *mdev,
7676
void *ppriv)
7777
{
7878
struct mlx5e_priv *priv = mlx5i_epriv(netdev);
79+
u16 max_mtu;
7980

8081
/* priv init */
8182
priv->mdev = mdev;
@@ -84,6 +85,9 @@ void mlx5i_init(struct mlx5_core_dev *mdev,
8485
priv->ppriv = ppriv;
8586
mutex_init(&priv->state_lock);
8687

88+
mlx5_query_port_max_mtu(mdev, &max_mtu, 1);
89+
netdev->mtu = max_mtu;
90+
8791
mlx5e_build_nic_params(mdev, &priv->channels.params,
8892
profile->max_nch(mdev), netdev->mtu);
8993
mlx5i_build_nic_params(mdev, &priv->channels.params);

drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
257257
return -ENOMEM;
258258

259259
/* Enable pci device */
260-
ret = pcim_enable_device(pdev);
260+
ret = pci_enable_device(pdev);
261261
if (ret) {
262262
dev_err(&pdev->dev, "%s: ERROR: failed to enable device\n",
263263
__func__);
@@ -300,9 +300,45 @@ static int stmmac_pci_probe(struct pci_dev *pdev,
300300
static void stmmac_pci_remove(struct pci_dev *pdev)
301301
{
302302
stmmac_dvr_remove(&pdev->dev);
303+
pci_disable_device(pdev);
303304
}
304305

305-
static SIMPLE_DEV_PM_OPS(stmmac_pm_ops, stmmac_suspend, stmmac_resume);
306+
static int stmmac_pci_suspend(struct device *dev)
307+
{
308+
struct pci_dev *pdev = to_pci_dev(dev);
309+
int ret;
310+
311+
ret = stmmac_suspend(dev);
312+
if (ret)
313+
return ret;
314+
315+
ret = pci_save_state(pdev);
316+
if (ret)
317+
return ret;
318+
319+
pci_disable_device(pdev);
320+
pci_wake_from_d3(pdev, true);
321+
return 0;
322+
}
323+
324+
static int stmmac_pci_resume(struct device *dev)
325+
{
326+
struct pci_dev *pdev = to_pci_dev(dev);
327+
int ret;
328+
329+
pci_restore_state(pdev);
330+
pci_set_power_state(pdev, PCI_D0);
331+
332+
ret = pci_enable_device(pdev);
333+
if (ret)
334+
return ret;
335+
336+
pci_set_master(pdev);
337+
338+
return stmmac_resume(dev);
339+
}
340+
341+
static SIMPLE_DEV_PM_OPS(stmmac_pm_ops, stmmac_pci_suspend, stmmac_pci_resume);
306342

307343
/* synthetic ID, no official vendor */
308344
#define PCI_VENDOR_ID_STMMAC 0x700

drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1785,7 +1785,8 @@ brcmf_pcie_prepare_fw_request(struct brcmf_pciedev_info *devinfo)
17851785
fwreq->items[BRCMF_PCIE_FW_CODE].type = BRCMF_FW_TYPE_BINARY;
17861786
fwreq->items[BRCMF_PCIE_FW_NVRAM].type = BRCMF_FW_TYPE_NVRAM;
17871787
fwreq->items[BRCMF_PCIE_FW_NVRAM].flags = BRCMF_FW_REQF_OPTIONAL;
1788-
fwreq->domain_nr = pci_domain_nr(devinfo->pdev->bus);
1788+
/* NVRAM reserves PCI domain 0 for Broadcom's SDK faked bus */
1789+
fwreq->domain_nr = pci_domain_nr(devinfo->pdev->bus) + 1;
17891790
fwreq->bus_nr = devinfo->pdev->bus->number;
17901791

17911792
return fwreq;

drivers/net/wireless/intel/iwlwifi/cfg/9000.c

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,17 @@ const struct iwl_cfg iwl9260_2ac_cfg = {
178178
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
179179
};
180180

181+
const struct iwl_cfg iwl9260_killer_2ac_cfg = {
182+
.name = "Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW)",
183+
.fw_name_pre = IWL9260A_FW_PRE,
184+
.fw_name_pre_b_or_c_step = IWL9260B_FW_PRE,
185+
IWL_DEVICE_9000,
186+
.ht_params = &iwl9000_ht_params,
187+
.nvm_ver = IWL9000_NVM_VERSION,
188+
.nvm_calib_ver = IWL9000_TX_POWER_VERSION,
189+
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
190+
};
191+
181192
const struct iwl_cfg iwl9270_2ac_cfg = {
182193
.name = "Intel(R) Dual Band Wireless AC 9270",
183194
.fw_name_pre = IWL9260A_FW_PRE,
@@ -267,6 +278,34 @@ const struct iwl_cfg iwl9560_2ac_cfg_soc = {
267278
.soc_latency = 5000,
268279
};
269280

281+
const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = {
282+
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
283+
.fw_name_pre = IWL9000A_FW_PRE,
284+
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
285+
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
286+
IWL_DEVICE_9000,
287+
.ht_params = &iwl9000_ht_params,
288+
.nvm_ver = IWL9000_NVM_VERSION,
289+
.nvm_calib_ver = IWL9000_TX_POWER_VERSION,
290+
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
291+
.integrated = true,
292+
.soc_latency = 5000,
293+
};
294+
295+
const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = {
296+
.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
297+
.fw_name_pre = IWL9000A_FW_PRE,
298+
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
299+
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
300+
IWL_DEVICE_9000,
301+
.ht_params = &iwl9000_ht_params,
302+
.nvm_ver = IWL9000_NVM_VERSION,
303+
.nvm_calib_ver = IWL9000_TX_POWER_VERSION,
304+
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
305+
.integrated = true,
306+
.soc_latency = 5000,
307+
};
308+
270309
const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = {
271310
.name = "Intel(R) Dual Band Wireless AC 9460",
272311
.fw_name_pre = IWL9000A_FW_PRE,
@@ -327,6 +366,36 @@ const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = {
327366
.extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK
328367
};
329368

369+
const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = {
370+
.name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
371+
.fw_name_pre = IWL9000A_FW_PRE,
372+
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
373+
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
374+
IWL_DEVICE_9000,
375+
.ht_params = &iwl9000_ht_params,
376+
.nvm_ver = IWL9000_NVM_VERSION,
377+
.nvm_calib_ver = IWL9000_TX_POWER_VERSION,
378+
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
379+
.integrated = true,
380+
.soc_latency = 5000,
381+
.extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK
382+
};
383+
384+
const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk = {
385+
.name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
386+
.fw_name_pre = IWL9000A_FW_PRE,
387+
.fw_name_pre_b_or_c_step = IWL9000B_FW_PRE,
388+
.fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
389+
IWL_DEVICE_9000,
390+
.ht_params = &iwl9000_ht_params,
391+
.nvm_ver = IWL9000_NVM_VERSION,
392+
.nvm_calib_ver = IWL9000_TX_POWER_VERSION,
393+
.max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K,
394+
.integrated = true,
395+
.soc_latency = 5000,
396+
.extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK
397+
};
398+
330399
MODULE_FIRMWARE(IWL9000A_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
331400
MODULE_FIRMWARE(IWL9000B_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));
332401
MODULE_FIRMWARE(IWL9000RFB_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX));

drivers/net/wireless/intel/iwlwifi/iwl-config.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,17 +551,22 @@ extern const struct iwl_cfg iwl8275_2ac_cfg;
551551
extern const struct iwl_cfg iwl4165_2ac_cfg;
552552
extern const struct iwl_cfg iwl9160_2ac_cfg;
553553
extern const struct iwl_cfg iwl9260_2ac_cfg;
554+
extern const struct iwl_cfg iwl9260_killer_2ac_cfg;
554555
extern const struct iwl_cfg iwl9270_2ac_cfg;
555556
extern const struct iwl_cfg iwl9460_2ac_cfg;
556557
extern const struct iwl_cfg iwl9560_2ac_cfg;
557558
extern const struct iwl_cfg iwl9460_2ac_cfg_soc;
558559
extern const struct iwl_cfg iwl9461_2ac_cfg_soc;
559560
extern const struct iwl_cfg iwl9462_2ac_cfg_soc;
560561
extern const struct iwl_cfg iwl9560_2ac_cfg_soc;
562+
extern const struct iwl_cfg iwl9560_killer_2ac_cfg_soc;
563+
extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc;
561564
extern const struct iwl_cfg iwl9460_2ac_cfg_shared_clk;
562565
extern const struct iwl_cfg iwl9461_2ac_cfg_shared_clk;
563566
extern const struct iwl_cfg iwl9462_2ac_cfg_shared_clk;
564567
extern const struct iwl_cfg iwl9560_2ac_cfg_shared_clk;
568+
extern const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk;
569+
extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk;
565570
extern const struct iwl_cfg iwl22000_2ac_cfg_hr;
566571
extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb;
567572
extern const struct iwl_cfg iwl22000_2ac_cfg_jf;

0 commit comments

Comments
 (0)