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 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

+184 -30
+1
Documentation/networking/dpaa2/overview.rst
··· 1 1 .. include:: <isonum.txt> 2 2 3 + ========================================================= 3 4 DPAA2 (Data Path Acceleration Architecture Gen2) Overview 4 5 ========================================================= 5 6
+12 -2
drivers/net/bonding/bond_main.c
··· 1717 1717 goto err_upper_unlink; 1718 1718 } 1719 1719 1720 + bond->nest_level = dev_get_nest_level(bond_dev) + 1; 1721 + 1720 1722 /* If the mode uses primary, then the following is handled by 1721 1723 * bond_change_active_slave(). 1722 1724 */ ··· 1766 1764 if (bond_mode_can_use_xmit_hash(bond)) 1767 1765 bond_update_slave_arr(bond, NULL); 1768 1766 1769 - bond->nest_level = dev_get_nest_level(bond_dev); 1770 1767 1771 1768 netdev_info(bond_dev, "Enslaving %s as %s interface with %s link\n", 1772 1769 slave_dev->name, ··· 3416 3415 } 3417 3416 } 3418 3417 3418 + static int bond_get_nest_level(struct net_device *bond_dev) 3419 + { 3420 + struct bonding *bond = netdev_priv(bond_dev); 3421 + 3422 + return bond->nest_level; 3423 + } 3424 + 3419 3425 static void bond_get_stats(struct net_device *bond_dev, 3420 3426 struct rtnl_link_stats64 *stats) 3421 3427 { ··· 3431 3423 struct list_head *iter; 3432 3424 struct slave *slave; 3433 3425 3434 - spin_lock(&bond->stats_lock); 3426 + spin_lock_nested(&bond->stats_lock, bond_get_nest_level(bond_dev)); 3435 3427 memcpy(stats, &bond->bond_stats, sizeof(*stats)); 3436 3428 3437 3429 rcu_read_lock(); ··· 4235 4227 .ndo_neigh_setup = bond_neigh_setup, 4236 4228 .ndo_vlan_rx_add_vid = bond_vlan_rx_add_vid, 4237 4229 .ndo_vlan_rx_kill_vid = bond_vlan_rx_kill_vid, 4230 + .ndo_get_lock_subclass = bond_get_nest_level, 4238 4231 #ifdef CONFIG_NET_POLL_CONTROLLER 4239 4232 .ndo_netpoll_setup = bond_netpoll_setup, 4240 4233 .ndo_netpoll_cleanup = bond_netpoll_cleanup, ··· 4734 4725 if (!bond->wq) 4735 4726 return -ENOMEM; 4736 4727 4728 + bond->nest_level = SINGLE_DEPTH_NESTING; 4737 4729 netdev_lockdep_set_classes(bond_dev); 4738 4730 4739 4731 list_add_tail(&bond->bond_list, &bn->dev_list);
+2 -2
drivers/net/dsa/mv88e6xxx/chip.c
··· 2617 2617 .rmu_disable = mv88e6085_g1_rmu_disable, 2618 2618 .vtu_getnext = mv88e6352_g1_vtu_getnext, 2619 2619 .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, 2620 - .serdes_power = mv88e6341_serdes_power, 2621 2620 }; 2622 2621 2623 2622 static const struct mv88e6xxx_ops mv88e6095_ops = { ··· 2782 2783 .reset = mv88e6352_g1_reset, 2783 2784 .vtu_getnext = mv88e6352_g1_vtu_getnext, 2784 2785 .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, 2786 + .serdes_power = mv88e6341_serdes_power, 2785 2787 .gpio_ops = &mv88e6352_gpio_ops, 2786 2788 }; 2787 2789 ··· 2960 2960 .reset = mv88e6352_g1_reset, 2961 2961 .vtu_getnext = mv88e6352_g1_vtu_getnext, 2962 2962 .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, 2963 - .serdes_power = mv88e6341_serdes_power, 2964 2963 }; 2965 2964 2966 2965 static const struct mv88e6xxx_ops mv88e6176_ops = { ··· 3335 3336 .reset = mv88e6352_g1_reset, 3336 3337 .vtu_getnext = mv88e6352_g1_vtu_getnext, 3337 3338 .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, 3339 + .serdes_power = mv88e6341_serdes_power, 3338 3340 .gpio_ops = &mv88e6352_gpio_ops, 3339 3341 .avb_ops = &mv88e6390_avb_ops, 3340 3342 };
+1 -1
drivers/net/ethernet/cisco/enic/enic_main.c
··· 2892 2892 */ 2893 2893 2894 2894 enic->port_mtu = enic->config.mtu; 2895 - (void)enic_change_mtu(netdev, enic->port_mtu); 2896 2895 2897 2896 err = enic_set_mac_addr(netdev, enic->mac_addr); 2898 2897 if (err) { ··· 2981 2982 /* MTU range: 68 - 9000 */ 2982 2983 netdev->min_mtu = ENIC_MIN_MTU; 2983 2984 netdev->max_mtu = ENIC_MAX_MTU; 2985 + netdev->mtu = enic->port_mtu; 2984 2986 2985 2987 err = register_netdev(netdev); 2986 2988 if (err) {
+2
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c
··· 1172 1172 struct mlx5_core_dev *mdev = priv->mdev; 1173 1173 int err; 1174 1174 1175 + priv->dcbx_dp.trust_state = MLX5_QPTS_TRUST_PCP; 1176 + 1175 1177 if (!MLX5_DSCP_SUPPORTED(mdev)) 1176 1178 return 0; 1177 1179
+2 -1
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
··· 3712 3712 3713 3713 if (!reset) { 3714 3714 params->sw_mtu = new_mtu; 3715 - set_mtu_cb(priv); 3715 + if (set_mtu_cb) 3716 + set_mtu_cb(priv); 3716 3717 netdev->mtu = params->sw_mtu; 3717 3718 goto out; 3718 3719 }
+2 -2
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
··· 1696 1696 int vport_num; 1697 1697 int err; 1698 1698 1699 - if (!MLX5_VPORT_MANAGER(dev)) 1699 + if (!MLX5_ESWITCH_MANAGER(dev)) 1700 1700 return 0; 1701 1701 1702 1702 esw_info(dev, ··· 1765 1765 1766 1766 void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) 1767 1767 { 1768 - if (!esw || !MLX5_VPORT_MANAGER(esw->dev)) 1768 + if (!esw || !MLX5_ESWITCH_MANAGER(esw->dev)) 1769 1769 return; 1770 1770 1771 1771 esw_info(esw->dev, "cleanup\n");
+4
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
··· 76 76 void *ppriv) 77 77 { 78 78 struct mlx5e_priv *priv = mlx5i_epriv(netdev); 79 + u16 max_mtu; 79 80 80 81 /* priv init */ 81 82 priv->mdev = mdev; ··· 84 83 priv->profile = profile; 85 84 priv->ppriv = ppriv; 86 85 mutex_init(&priv->state_lock); 86 + 87 + mlx5_query_port_max_mtu(mdev, &max_mtu, 1); 88 + netdev->mtu = max_mtu; 87 89 88 90 mlx5e_build_nic_params(mdev, &priv->channels.params, 89 91 profile->max_nch(mdev), netdev->mtu);
+38 -2
drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
··· 257 257 return -ENOMEM; 258 258 259 259 /* Enable pci device */ 260 - ret = pcim_enable_device(pdev); 260 + ret = pci_enable_device(pdev); 261 261 if (ret) { 262 262 dev_err(&pdev->dev, "%s: ERROR: failed to enable device\n", 263 263 __func__); ··· 300 300 static void stmmac_pci_remove(struct pci_dev *pdev) 301 301 { 302 302 stmmac_dvr_remove(&pdev->dev); 303 + pci_disable_device(pdev); 303 304 } 304 305 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); 306 342 307 343 /* synthetic ID, no official vendor */ 308 344 #define PCI_VENDOR_ID_STMMAC 0x700
+2 -1
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
··· 1785 1785 fwreq->items[BRCMF_PCIE_FW_CODE].type = BRCMF_FW_TYPE_BINARY; 1786 1786 fwreq->items[BRCMF_PCIE_FW_NVRAM].type = BRCMF_FW_TYPE_NVRAM; 1787 1787 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; 1789 1790 fwreq->bus_nr = devinfo->pdev->bus->number; 1790 1791 1791 1792 return fwreq;
+69
drivers/net/wireless/intel/iwlwifi/cfg/9000.c
··· 178 178 .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, 179 179 }; 180 180 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 + 181 192 const struct iwl_cfg iwl9270_2ac_cfg = { 182 193 .name = "Intel(R) Dual Band Wireless AC 9270", 183 194 .fw_name_pre = IWL9260A_FW_PRE, ··· 278 267 .soc_latency = 5000, 279 268 }; 280 269 270 + const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = { 271 + .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)", 272 + .fw_name_pre = IWL9000A_FW_PRE, 273 + .fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, 274 + .fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, 275 + IWL_DEVICE_9000, 276 + .ht_params = &iwl9000_ht_params, 277 + .nvm_ver = IWL9000_NVM_VERSION, 278 + .nvm_calib_ver = IWL9000_TX_POWER_VERSION, 279 + .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, 280 + .integrated = true, 281 + .soc_latency = 5000, 282 + }; 283 + 284 + const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = { 285 + .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)", 286 + .fw_name_pre = IWL9000A_FW_PRE, 287 + .fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, 288 + .fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, 289 + IWL_DEVICE_9000, 290 + .ht_params = &iwl9000_ht_params, 291 + .nvm_ver = IWL9000_NVM_VERSION, 292 + .nvm_calib_ver = IWL9000_TX_POWER_VERSION, 293 + .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, 294 + .integrated = true, 295 + .soc_latency = 5000, 296 + }; 297 + 281 298 const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = { 282 299 .name = "Intel(R) Dual Band Wireless AC 9460", 283 300 .fw_name_pre = IWL9000A_FW_PRE, ··· 353 314 354 315 const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = { 355 316 .name = "Intel(R) Dual Band Wireless AC 9560", 317 + .fw_name_pre = IWL9000A_FW_PRE, 318 + .fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, 319 + .fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, 320 + IWL_DEVICE_9000, 321 + .ht_params = &iwl9000_ht_params, 322 + .nvm_ver = IWL9000_NVM_VERSION, 323 + .nvm_calib_ver = IWL9000_TX_POWER_VERSION, 324 + .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, 325 + .integrated = true, 326 + .soc_latency = 5000, 327 + .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK 328 + }; 329 + 330 + const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = { 331 + .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)", 332 + .fw_name_pre = IWL9000A_FW_PRE, 333 + .fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, 334 + .fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE, 335 + IWL_DEVICE_9000, 336 + .ht_params = &iwl9000_ht_params, 337 + .nvm_ver = IWL9000_NVM_VERSION, 338 + .nvm_calib_ver = IWL9000_TX_POWER_VERSION, 339 + .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, 340 + .integrated = true, 341 + .soc_latency = 5000, 342 + .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK 343 + }; 344 + 345 + const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk = { 346 + .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)", 356 347 .fw_name_pre = IWL9000A_FW_PRE, 357 348 .fw_name_pre_b_or_c_step = IWL9000B_FW_PRE, 358 349 .fw_name_pre_rf_next_step = IWL9000RFB_FW_PRE,
+5
drivers/net/wireless/intel/iwlwifi/iwl-config.h
··· 551 551 extern const struct iwl_cfg iwl4165_2ac_cfg; 552 552 extern const struct iwl_cfg iwl9160_2ac_cfg; 553 553 extern const struct iwl_cfg iwl9260_2ac_cfg; 554 + extern const struct iwl_cfg iwl9260_killer_2ac_cfg; 554 555 extern const struct iwl_cfg iwl9270_2ac_cfg; 555 556 extern const struct iwl_cfg iwl9460_2ac_cfg; 556 557 extern const struct iwl_cfg iwl9560_2ac_cfg; ··· 559 558 extern const struct iwl_cfg iwl9461_2ac_cfg_soc; 560 559 extern const struct iwl_cfg iwl9462_2ac_cfg_soc; 561 560 extern const struct iwl_cfg iwl9560_2ac_cfg_soc; 561 + extern const struct iwl_cfg iwl9560_killer_2ac_cfg_soc; 562 + extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc; 562 563 extern const struct iwl_cfg iwl9460_2ac_cfg_shared_clk; 563 564 extern const struct iwl_cfg iwl9461_2ac_cfg_shared_clk; 564 565 extern const struct iwl_cfg iwl9462_2ac_cfg_shared_clk; 565 566 extern const struct iwl_cfg iwl9560_2ac_cfg_shared_clk; 567 + extern const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk; 568 + extern const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk; 566 569 extern const struct iwl_cfg iwl22000_2ac_cfg_hr; 567 570 extern const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb; 568 571 extern const struct iwl_cfg iwl22000_2ac_cfg_jf;
+22
drivers/net/wireless/intel/iwlwifi/pcie/drv.c
··· 545 545 {IWL_PCI_DEVICE(0x2526, 0x1210, iwl9260_2ac_cfg)}, 546 546 {IWL_PCI_DEVICE(0x2526, 0x1410, iwl9270_2ac_cfg)}, 547 547 {IWL_PCI_DEVICE(0x2526, 0x1420, iwl9460_2ac_cfg_soc)}, 548 + {IWL_PCI_DEVICE(0x2526, 0x1550, iwl9260_killer_2ac_cfg)}, 549 + {IWL_PCI_DEVICE(0x2526, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 550 + {IWL_PCI_DEVICE(0x2526, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 548 551 {IWL_PCI_DEVICE(0x2526, 0x1610, iwl9270_2ac_cfg)}, 549 552 {IWL_PCI_DEVICE(0x2526, 0x2030, iwl9560_2ac_cfg_soc)}, 550 553 {IWL_PCI_DEVICE(0x2526, 0x2034, iwl9560_2ac_cfg_soc)}, ··· 557 554 {IWL_PCI_DEVICE(0x2526, 0x40A4, iwl9460_2ac_cfg)}, 558 555 {IWL_PCI_DEVICE(0x2526, 0x4234, iwl9560_2ac_cfg_soc)}, 559 556 {IWL_PCI_DEVICE(0x2526, 0x42A4, iwl9462_2ac_cfg_soc)}, 557 + {IWL_PCI_DEVICE(0x2526, 0x8014, iwl9260_2ac_cfg)}, 560 558 {IWL_PCI_DEVICE(0x2526, 0xA014, iwl9260_2ac_cfg)}, 561 559 {IWL_PCI_DEVICE(0x271B, 0x0010, iwl9160_2ac_cfg)}, 562 560 {IWL_PCI_DEVICE(0x271B, 0x0014, iwl9160_2ac_cfg)}, ··· 582 578 {IWL_PCI_DEVICE(0x2720, 0x1010, iwl9260_2ac_cfg)}, 583 579 {IWL_PCI_DEVICE(0x2720, 0x1030, iwl9560_2ac_cfg_soc)}, 584 580 {IWL_PCI_DEVICE(0x2720, 0x1210, iwl9260_2ac_cfg)}, 581 + {IWL_PCI_DEVICE(0x2720, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 582 + {IWL_PCI_DEVICE(0x2720, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 585 583 {IWL_PCI_DEVICE(0x2720, 0x2030, iwl9560_2ac_cfg_soc)}, 586 584 {IWL_PCI_DEVICE(0x2720, 0x2034, iwl9560_2ac_cfg_soc)}, 587 585 {IWL_PCI_DEVICE(0x2720, 0x4030, iwl9560_2ac_cfg)}, ··· 610 604 {IWL_PCI_DEVICE(0x30DC, 0x1010, iwl9260_2ac_cfg)}, 611 605 {IWL_PCI_DEVICE(0x30DC, 0x1030, iwl9560_2ac_cfg_soc)}, 612 606 {IWL_PCI_DEVICE(0x30DC, 0x1210, iwl9260_2ac_cfg)}, 607 + {IWL_PCI_DEVICE(0x30DC, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 608 + {IWL_PCI_DEVICE(0x30DC, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 613 609 {IWL_PCI_DEVICE(0x30DC, 0x2030, iwl9560_2ac_cfg_soc)}, 614 610 {IWL_PCI_DEVICE(0x30DC, 0x2034, iwl9560_2ac_cfg_soc)}, 615 611 {IWL_PCI_DEVICE(0x30DC, 0x4030, iwl9560_2ac_cfg_soc)}, ··· 638 630 {IWL_PCI_DEVICE(0x31DC, 0x1010, iwl9260_2ac_cfg)}, 639 631 {IWL_PCI_DEVICE(0x31DC, 0x1030, iwl9560_2ac_cfg_shared_clk)}, 640 632 {IWL_PCI_DEVICE(0x31DC, 0x1210, iwl9260_2ac_cfg)}, 633 + {IWL_PCI_DEVICE(0x31DC, 0x1551, iwl9560_killer_s_2ac_cfg_shared_clk)}, 634 + {IWL_PCI_DEVICE(0x31DC, 0x1552, iwl9560_killer_2ac_cfg_shared_clk)}, 641 635 {IWL_PCI_DEVICE(0x31DC, 0x2030, iwl9560_2ac_cfg_shared_clk)}, 642 636 {IWL_PCI_DEVICE(0x31DC, 0x2034, iwl9560_2ac_cfg_shared_clk)}, 643 637 {IWL_PCI_DEVICE(0x31DC, 0x4030, iwl9560_2ac_cfg_shared_clk)}, ··· 666 656 {IWL_PCI_DEVICE(0x34F0, 0x1010, iwl9260_2ac_cfg)}, 667 657 {IWL_PCI_DEVICE(0x34F0, 0x1030, iwl9560_2ac_cfg_soc)}, 668 658 {IWL_PCI_DEVICE(0x34F0, 0x1210, iwl9260_2ac_cfg)}, 659 + {IWL_PCI_DEVICE(0x34F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 660 + {IWL_PCI_DEVICE(0x34F0, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 669 661 {IWL_PCI_DEVICE(0x34F0, 0x2030, iwl9560_2ac_cfg_soc)}, 670 662 {IWL_PCI_DEVICE(0x34F0, 0x2034, iwl9560_2ac_cfg_soc)}, 671 663 {IWL_PCI_DEVICE(0x34F0, 0x4030, iwl9560_2ac_cfg_soc)}, ··· 694 682 {IWL_PCI_DEVICE(0x3DF0, 0x1010, iwl9260_2ac_cfg)}, 695 683 {IWL_PCI_DEVICE(0x3DF0, 0x1030, iwl9560_2ac_cfg_soc)}, 696 684 {IWL_PCI_DEVICE(0x3DF0, 0x1210, iwl9260_2ac_cfg)}, 685 + {IWL_PCI_DEVICE(0x3DF0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 686 + {IWL_PCI_DEVICE(0x3DF0, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 697 687 {IWL_PCI_DEVICE(0x3DF0, 0x2030, iwl9560_2ac_cfg_soc)}, 698 688 {IWL_PCI_DEVICE(0x3DF0, 0x2034, iwl9560_2ac_cfg_soc)}, 699 689 {IWL_PCI_DEVICE(0x3DF0, 0x4030, iwl9560_2ac_cfg_soc)}, ··· 722 708 {IWL_PCI_DEVICE(0x43F0, 0x1010, iwl9260_2ac_cfg)}, 723 709 {IWL_PCI_DEVICE(0x43F0, 0x1030, iwl9560_2ac_cfg_soc)}, 724 710 {IWL_PCI_DEVICE(0x43F0, 0x1210, iwl9260_2ac_cfg)}, 711 + {IWL_PCI_DEVICE(0x43F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 712 + {IWL_PCI_DEVICE(0x43F0, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 725 713 {IWL_PCI_DEVICE(0x43F0, 0x2030, iwl9560_2ac_cfg_soc)}, 726 714 {IWL_PCI_DEVICE(0x43F0, 0x2034, iwl9560_2ac_cfg_soc)}, 727 715 {IWL_PCI_DEVICE(0x43F0, 0x4030, iwl9560_2ac_cfg_soc)}, ··· 759 743 {IWL_PCI_DEVICE(0x9DF0, 0x1010, iwl9260_2ac_cfg)}, 760 744 {IWL_PCI_DEVICE(0x9DF0, 0x1030, iwl9560_2ac_cfg_soc)}, 761 745 {IWL_PCI_DEVICE(0x9DF0, 0x1210, iwl9260_2ac_cfg)}, 746 + {IWL_PCI_DEVICE(0x9DF0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 747 + {IWL_PCI_DEVICE(0x9DF0, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 762 748 {IWL_PCI_DEVICE(0x9DF0, 0x2010, iwl9460_2ac_cfg_soc)}, 763 749 {IWL_PCI_DEVICE(0x9DF0, 0x2030, iwl9560_2ac_cfg_soc)}, 764 750 {IWL_PCI_DEVICE(0x9DF0, 0x2034, iwl9560_2ac_cfg_soc)}, ··· 789 771 {IWL_PCI_DEVICE(0xA0F0, 0x1010, iwl9260_2ac_cfg)}, 790 772 {IWL_PCI_DEVICE(0xA0F0, 0x1030, iwl9560_2ac_cfg_soc)}, 791 773 {IWL_PCI_DEVICE(0xA0F0, 0x1210, iwl9260_2ac_cfg)}, 774 + {IWL_PCI_DEVICE(0xA0F0, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 775 + {IWL_PCI_DEVICE(0xA0F0, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 792 776 {IWL_PCI_DEVICE(0xA0F0, 0x2030, iwl9560_2ac_cfg_soc)}, 793 777 {IWL_PCI_DEVICE(0xA0F0, 0x2034, iwl9560_2ac_cfg_soc)}, 794 778 {IWL_PCI_DEVICE(0xA0F0, 0x4030, iwl9560_2ac_cfg_soc)}, ··· 817 797 {IWL_PCI_DEVICE(0xA370, 0x1010, iwl9260_2ac_cfg)}, 818 798 {IWL_PCI_DEVICE(0xA370, 0x1030, iwl9560_2ac_cfg_soc)}, 819 799 {IWL_PCI_DEVICE(0xA370, 0x1210, iwl9260_2ac_cfg)}, 800 + {IWL_PCI_DEVICE(0xA370, 0x1551, iwl9560_killer_s_2ac_cfg_soc)}, 801 + {IWL_PCI_DEVICE(0xA370, 0x1552, iwl9560_killer_2ac_cfg_soc)}, 820 802 {IWL_PCI_DEVICE(0xA370, 0x2030, iwl9560_2ac_cfg_soc)}, 821 803 {IWL_PCI_DEVICE(0xA370, 0x2034, iwl9560_2ac_cfg_soc)}, 822 804 {IWL_PCI_DEVICE(0xA370, 0x4030, iwl9560_2ac_cfg_soc)},
+6
net/dsa/slave.c
··· 1248 1248 { 1249 1249 struct dsa_port *dp = dsa_slave_to_port(slave_dev); 1250 1250 1251 + if (!netif_running(slave_dev)) 1252 + return 0; 1253 + 1251 1254 netif_device_detach(slave_dev); 1252 1255 1253 1256 rtnl_lock(); ··· 1263 1260 int dsa_slave_resume(struct net_device *slave_dev) 1264 1261 { 1265 1262 struct dsa_port *dp = dsa_slave_to_port(slave_dev); 1263 + 1264 + if (!netif_running(slave_dev)) 1265 + return 0; 1266 1266 1267 1267 netif_device_attach(slave_dev); 1268 1268
+3 -3
net/ipv4/inet_fragment.c
··· 157 157 { 158 158 struct inet_frag_queue *q; 159 159 160 - if (!nf->high_thresh || frag_mem_limit(nf) > nf->high_thresh) 161 - return NULL; 162 - 163 160 q = kmem_cache_zalloc(f->frags_cachep, GFP_ATOMIC); 164 161 if (!q) 165 162 return NULL; ··· 200 203 struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, void *key) 201 204 { 202 205 struct inet_frag_queue *fq; 206 + 207 + if (!nf->high_thresh || frag_mem_limit(nf) > nf->high_thresh) 208 + return NULL; 203 209 204 210 rcu_read_lock(); 205 211
+5
net/ipv4/ip_fragment.c
··· 383 383 int i = end - next->ip_defrag_offset; /* overlap is 'i' bytes */ 384 384 385 385 if (i < next->len) { 386 + int delta = -next->truesize; 387 + 386 388 /* Eat head of the next overlapped fragment 387 389 * and leave the loop. The next ones cannot overlap. 388 390 */ 389 391 if (!pskb_pull(next, i)) 390 392 goto err; 393 + delta += next->truesize; 394 + if (delta) 395 + add_frag_mem_limit(qp->q.net, delta); 391 396 next->ip_defrag_offset += i; 392 397 qp->q.meat -= i; 393 398 if (next->ip_summed != CHECKSUM_UNNECESSARY)
+4 -14
net/ipv6/ip6_fib.c
··· 167 167 return f6i; 168 168 } 169 169 170 - static void fib6_metrics_release(struct fib6_info *f6i) 171 - { 172 - struct dst_metrics *m; 173 - 174 - if (!f6i) 175 - return; 176 - 177 - m = f6i->fib6_metrics; 178 - if (m != &dst_default_metrics && refcount_dec_and_test(&m->refcnt)) 179 - kfree(m); 180 - } 181 - 182 170 void fib6_info_destroy_rcu(struct rcu_head *head) 183 171 { 184 172 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu); 185 173 struct rt6_exception_bucket *bucket; 174 + struct dst_metrics *m; 186 175 187 176 WARN_ON(f6i->fib6_node); 188 177 ··· 201 212 if (f6i->fib6_nh.nh_dev) 202 213 dev_put(f6i->fib6_nh.nh_dev); 203 214 204 - fib6_metrics_release(f6i); 215 + m = f6i->fib6_metrics; 216 + if (m != &dst_default_metrics && refcount_dec_and_test(&m->refcnt)) 217 + kfree(m); 205 218 206 219 kfree(f6i); 207 220 } ··· 887 896 888 897 from = rcu_dereference_protected(pcpu_rt->from, 889 898 lockdep_is_held(&table->tb6_lock)); 890 - fib6_metrics_release(from); 891 899 rcu_assign_pointer(pcpu_rt->from, NULL); 892 900 fib6_info_release(from); 893 901 }
+2
net/netlink/af_netlink.c
··· 63 63 #include <linux/hash.h> 64 64 #include <linux/genetlink.h> 65 65 #include <linux/net_namespace.h> 66 + #include <linux/nospec.h> 66 67 67 68 #include <net/net_namespace.h> 68 69 #include <net/netns/generic.h> ··· 680 679 681 680 if (protocol < 0 || protocol >= MAX_LINKS) 682 681 return -EPROTONOSUPPORT; 682 + protocol = array_index_nospec(protocol, MAX_LINKS); 683 683 684 684 netlink_lock_table(); 685 685 #ifdef CONFIG_MODULES
+2 -2
net/rxrpc/call_accept.c
··· 116 116 while (*pp) { 117 117 parent = *pp; 118 118 xcall = rb_entry(parent, struct rxrpc_call, sock_node); 119 - if (user_call_ID < call->user_call_ID) 119 + if (user_call_ID < xcall->user_call_ID) 120 120 pp = &(*pp)->rb_left; 121 - else if (user_call_ID > call->user_call_ID) 121 + else if (user_call_ID > xcall->user_call_ID) 122 122 pp = &(*pp)->rb_right; 123 123 else 124 124 goto id_in_use;