···99- max-speed: number, specifies maximum speed in Mbit/s supported by the device;1010- max-frame-size: number, maximum transfer unit (IEEE defined MTU), rather than1111 the maximum frame size (there's contradiction in ePAPR).1212-- phy-mode: string, operation mode of the PHY interface; supported values are1313- "mii", "gmii", "sgmii", "qsgmii", "tbi", "rev-mii", "rmii", "rgmii", "rgmii-id",1414- "rgmii-rxid", "rgmii-txid", "rtbi", "smii", "xgmii", "trgmii"; this is now a1515- de-facto standard property;1212+- phy-mode: string, operation mode of the PHY interface. This is now a de-facto1313+ standard property; supported values are:1414+ * "mii"1515+ * "gmii"1616+ * "sgmii"1717+ * "qsgmii"1818+ * "tbi"1919+ * "rev-mii"2020+ * "rmii"2121+ * "rgmii" (RX and TX delays are added by the MAC when required)2222+ * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the2323+ MAC should not add the RX or TX delays in this case)2424+ * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC2525+ should not add an RX delay in this case)2626+ * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC2727+ should not add an TX delay in this case)2828+ * "rtbi"2929+ * "smii"3030+ * "xgmii"3131+ * "trgmii"1632- phy-connection-type: the same as "phy-mode" property but described in ePAPR;1733- phy-handle: phandle, specifies a reference to a node representing a PHY1834 device; this property is described in ePAPR and so preferred;
+5-2
Documentation/networking/nf_conntrack-sysctl.txt
···6262 protocols.63636464nf_conntrack_helper - BOOLEAN6565- 0 - disabled6666- not 0 - enabled (default)6565+ 0 - disabled (default)6666+ not 0 - enabled67676868 Enable automatic conntrack helper assignment.6969+ If disabled it is required to set up iptables rules to assign7070+ helpers to connections. See the CT target description in the7171+ iptables-extensions(8) man page for further information.69727073nf_conntrack_icmp_timeout - INTEGER (seconds)7174 default 30
+4-9
MAINTAINERS
···92579257F: drivers/pci/host/*layerscape*9258925892599259PCI DRIVER FOR IMX692609260-M: Richard Zhu <Richard.Zhu@freescale.com>92609260+M: Richard Zhu <hongxing.zhu@nxp.com>92619261M: Lucas Stach <l.stach@pengutronix.de>92629262L: linux-pci@vger.kernel.org92639263L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)92649264S: Maintained92659265+F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt92659266F: drivers/pci/host/*imx6*9266926792679268PCI DRIVER FOR TI KEYSTONE···9321932093229321PCI DRIVER FOR SYNOPSIS DESIGNWARE93239322M: Jingoo Han <jingoohan1@gmail.com>93249324-M: Pratyush Anand <pratyush.anand@gmail.com>93259325-L: linux-pci@vger.kernel.org93269326-S: Maintained93279327-F: drivers/pci/host/*designware*93289328-93299329-PCI DRIVER FOR SYNOPSYS PROTOTYPING DEVICE93309330-M: Jose Abreu <Jose.Abreu@synopsys.com>93239323+M: Joao Pinto <Joao.Pinto@synopsys.com>93319324L: linux-pci@vger.kernel.org93329325S: Maintained93339326F: Documentation/devicetree/bindings/pci/designware-pcie.txt93349334-F: drivers/pci/host/pcie-designware-plat.c93279327+F: drivers/pci/host/*designware*9335932893369329PCI DRIVER FOR GENERIC OF HOSTS93379330M: Will Deacon <will.deacon@arm.com>
+9-2
Makefile
···11VERSION = 422PATCHLEVEL = 933SUBLEVEL = 044-EXTRAVERSION = -rc744+EXTRAVERSION = -rc855NAME = Psychotic Stoned Sheep6677# *DOCUMENTATION*···607607include/config/auto.conf: ;608608endif # $(dot-config)609609610610+# For the kernel to actually contain only the needed exported symbols,611611+# we have to build modules as well to determine what those symbols are.612612+# (this can be evaluated only once include/config/auto.conf has been included)613613+ifdef CONFIG_TRIM_UNUSED_KSYMS614614+ KBUILD_MODULES := 1615615+endif616616+610617# The all: target is the default when no target is given on the611618# command line.612619# This allow a user to issue only 'make' to build a kernel including modules···951944endif952945ifdef CONFIG_TRIM_UNUSED_KSYMS953946 $(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \954954- "$(MAKE) KBUILD_MODULES=1 -f $(srctree)/Makefile vmlinux_prereq"947947+ "$(MAKE) -f $(srctree)/Makefile vmlinux"955948endif956949957950# standalone target for easier testing
···1313#include <libfdt.h>1414#include "../include/asm/opal-api.h"15151616-#ifdef __powerpc64__1616+#ifdef CONFIG_PPC64_BOOT_WRAPPER17171818/* Global OPAL struct used by opal-call.S */1919struct opal {
+3-1
arch/powerpc/kernel/eeh_driver.c
···671671672672 /* Clear frozen state */673673 rc = eeh_clear_pe_frozen_state(pe, false);674674- if (rc)674674+ if (rc) {675675+ pci_unlock_rescan_remove();675676 return rc;677677+ }676678677679 /* Give the system 5 seconds to finish running the user-space678680 * hotplug shutdown scripts, e.g. ifdown for ethernet. Yes,
+9
arch/powerpc/kernel/vmlinux.lds.S
···9494 * detected, and will result in a crash at boot due to offsets being9595 * wrong.9696 */9797+#ifdef CONFIG_PPC649898+ /*9999+ * BLOCK(0) overrides the default output section alignment because100100+ * this needs to start right after .head.text in order for fixed101101+ * section placement to work.102102+ */103103+ .text BLOCK(0) : AT(ADDR(.text) - LOAD_OFFSET) {104104+#else97105 .text : AT(ADDR(.text) - LOAD_OFFSET) {98106 ALIGN_FUNCTION();107107+#endif99108 /* careful! __ftr_alt_* sections need to be close to .text */100109 *(.text .fixup __ftr_alt_* .ref.text)101110 SCHED_TEXT
+1-1
arch/powerpc/mm/hash64_4k.c
···5555 */5656 rflags = htab_convert_pte_flags(new_pte);57575858- if (!cpu_has_feature(CPU_FTR_NOEXECUTE) &&5858+ if (cpu_has_feature(CPU_FTR_NOEXECUTE) &&5959 !cpu_has_feature(CPU_FTR_COHERENT_ICACHE))6060 rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap);6161
+2-2
arch/powerpc/mm/hash64_64k.c
···8787 subpg_pte = new_pte & ~subpg_prot;8888 rflags = htab_convert_pte_flags(subpg_pte);89899090- if (!cpu_has_feature(CPU_FTR_NOEXECUTE) &&9090+ if (cpu_has_feature(CPU_FTR_NOEXECUTE) &&9191 !cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) {92929393 /*···258258259259 rflags = htab_convert_pte_flags(new_pte);260260261261- if (!cpu_has_feature(CPU_FTR_NOEXECUTE) &&261261+ if (cpu_has_feature(CPU_FTR_NOEXECUTE) &&262262 !cpu_has_feature(CPU_FTR_COHERENT_ICACHE))263263 rflags = hash_page_do_lazy_icache(rflags, __pte(old_pte), trap);264264
···574574 unsigned int reload_period;575575 int pps_enable;576576 unsigned int next_counter;577577+578578+ u64 ethtool_stats[0];577579};578580579581void fec_ptp_init(struct platform_device *pdev);
···4931493149324932 /* initialize outer IP header fields */49334933 if (ip.v4->version == 4) {49344934+ unsigned char *csum_start = skb_checksum_start(skb);49354935+ unsigned char *trans_start = ip.hdr + (ip.v4->ihl * 4);49364936+49344937 /* IP header will have to cancel out any data that49354938 * is not a part of the outer IP header49364939 */49374937- ip.v4->check = csum_fold(csum_add(lco_csum(skb),49384938- csum_unfold(l4.tcp->check)));49404940+ ip.v4->check = csum_fold(csum_partial(trans_start,49414941+ csum_start - trans_start,49424942+ 0));49394943 type_tucmd |= E1000_ADVTXD_TUCMD_IPV4;4940494449414945 ip.v4->tot_len = 0;
+6-2
drivers/net/ethernet/intel/igbvf/netdev.c
···1965196519661966 /* initialize outer IP header fields */19671967 if (ip.v4->version == 4) {19681968+ unsigned char *csum_start = skb_checksum_start(skb);19691969+ unsigned char *trans_start = ip.hdr + (ip.v4->ihl * 4);19701970+19681971 /* IP header will have to cancel out any data that19691972 * is not a part of the outer IP header19701973 */19711971- ip.v4->check = csum_fold(csum_add(lco_csum(skb),19721972- csum_unfold(l4.tcp->check)));19741974+ ip.v4->check = csum_fold(csum_partial(trans_start,19751975+ csum_start - trans_start,19761976+ 0));19731977 type_tucmd |= E1000_ADVTXD_TUCMD_IPV4;1974197819751979 ip.v4->tot_len = 0;
+6-2
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
···7277727772787278 /* initialize outer IP header fields */72797279 if (ip.v4->version == 4) {72807280+ unsigned char *csum_start = skb_checksum_start(skb);72817281+ unsigned char *trans_start = ip.hdr + (ip.v4->ihl * 4);72827282+72807283 /* IP header will have to cancel out any data that72817284 * is not a part of the outer IP header72827285 */72837283- ip.v4->check = csum_fold(csum_add(lco_csum(skb),72847284- csum_unfold(l4.tcp->check)));72867286+ ip.v4->check = csum_fold(csum_partial(trans_start,72877287+ csum_start - trans_start,72887288+ 0));72857289 type_tucmd |= IXGBE_ADVTXD_TUCMD_IPV4;7286729072877291 ip.v4->tot_len = 0;
+6-2
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
···3329332933303330 /* initialize outer IP header fields */33313331 if (ip.v4->version == 4) {33323332+ unsigned char *csum_start = skb_checksum_start(skb);33333333+ unsigned char *trans_start = ip.hdr + (ip.v4->ihl * 4);33343334+33323335 /* IP header will have to cancel out any data that33333336 * is not a part of the outer IP header33343337 */33353335- ip.v4->check = csum_fold(csum_add(lco_csum(skb),33363336- csum_unfold(l4.tcp->check)));33383338+ ip.v4->check = csum_fold(csum_partial(trans_start,33393339+ csum_start - trans_start,33403340+ 0));33373341 type_tucmd |= IXGBE_ADVTXD_TUCMD_IPV4;3338334233393343 ip.v4->tot_len = 0;
···20792079 return -ENOMEM;20802080}2081208120822082-static void mlx4_en_shutdown(struct net_device *dev)20832083-{20842084- rtnl_lock();20852085- netif_device_detach(dev);20862086- mlx4_en_close(dev);20872087- rtnl_unlock();20882088-}2089208220902083static int mlx4_en_copy_priv(struct mlx4_en_priv *dst,20912084 struct mlx4_en_priv *src,···21552162{21562163 struct mlx4_en_priv *priv = netdev_priv(dev);21572164 struct mlx4_en_dev *mdev = priv->mdev;21582158- bool shutdown = mdev->dev->persist->interface_state &21592159- MLX4_INTERFACE_STATE_SHUTDOWN;2160216521612166 en_dbg(DRV, priv, "Destroying netdev on port:%d\n", priv->port);21622167···21622171 if (priv->registered) {21632172 devlink_port_type_clear(mlx4_get_devlink_port(mdev->dev,21642173 priv->port));21652165- if (shutdown)21662166- mlx4_en_shutdown(dev);21672167- else21682168- unregister_netdev(dev);21742174+ unregister_netdev(dev);21692175 }2170217621712177 if (priv->allocated)···21912203 kfree(priv->tx_ring);21922204 kfree(priv->tx_cq);2193220521942194- if (!shutdown)21952195- free_netdev(dev);22062206+ free_netdev(dev);21962207}2197220821982209static int mlx4_en_change_mtu(struct net_device *dev, int new_mtu)
+1-4
drivers/net/ethernet/mellanox/mlx4/main.c
···4147414741484148 mlx4_info(persist->dev, "mlx4_shutdown was called\n");41494149 mutex_lock(&persist->interface_state_mutex);41504150- if (persist->interface_state & MLX4_INTERFACE_STATE_UP) {41514151- /* Notify mlx4 clients that the kernel is being shut down */41524152- persist->interface_state |= MLX4_INTERFACE_STATE_SHUTDOWN;41504150+ if (persist->interface_state & MLX4_INTERFACE_STATE_UP)41534151 mlx4_unload_one(pdev);41544154- }41554152 mutex_unlock(&persist->interface_state_mutex);41564153}41574154
···711711err_undo_napi:712712 netif_napi_del(&adpt->rx_q.napi);713713err_undo_mdiobus:714714+ if (!has_acpi_companion(&pdev->dev))715715+ put_device(&adpt->phydev->mdio.dev);714716 mdiobus_unregister(adpt->mii_bus);715717err_undo_clocks:716718 emac_clks_teardown(adpt);···732730733731 emac_clks_teardown(adpt);734732733733+ if (!has_acpi_companion(&pdev->dev))734734+ put_device(&adpt->phydev->mdio.dev);735735 mdiobus_unregister(adpt->mii_bus);736736 free_netdev(netdev);737737
+14-5
drivers/net/ethernet/renesas/ravb_main.c
···10081008 of_node_put(pn);10091009 if (!phydev) {10101010 netdev_err(ndev, "failed to connect PHY\n");10111011- return -ENOENT;10111011+ err = -ENOENT;10121012+ goto err_deregister_fixed_link;10121013 }1013101410141015 /* This driver only support 10/100Mbit speeds on Gen310151016 * at this time.10161017 */10171018 if (priv->chip_id == RCAR_GEN3) {10181018- int err;10191019-10201019 err = phy_set_max_speed(phydev, SPEED_100);10211020 if (err) {10221021 netdev_err(ndev, "failed to limit PHY to 100Mbit/s\n");10231023- phy_disconnect(phydev);10241024- return err;10221022+ goto err_phy_disconnect;10251023 }1026102410271025 netdev_info(ndev, "limited PHY to 100Mbit/s\n");···10311033 phy_attached_info(phydev);1032103410331035 return 0;10361036+10371037+err_phy_disconnect:10381038+ phy_disconnect(phydev);10391039+err_deregister_fixed_link:10401040+ if (of_phy_is_fixed_link(np))10411041+ of_phy_deregister_fixed_link(np);10421042+10431043+ return err;10341044}1035104510361046/* PHY control start function */···16401634/* Device close function for Ethernet AVB */16411635static int ravb_close(struct net_device *ndev)16421636{16371637+ struct device_node *np = ndev->dev.parent->of_node;16431638 struct ravb_private *priv = netdev_priv(ndev);16441639 struct ravb_tstamp_skb *ts_skb, *ts_skb2;16451640···16701663 if (ndev->phydev) {16711664 phy_stop(ndev->phydev);16721665 phy_disconnect(ndev->phydev);16661666+ if (of_phy_is_fixed_link(np))16671667+ of_phy_deregister_fixed_link(np);16731668 }1674166916751670 if (priv->chip_id != RCAR_GEN2) {
···304304 struct device *dev = &pdev->dev;305305 int ret;306306 struct socfpga_dwmac *dwmac;307307+ struct net_device *ndev;308308+ struct stmmac_priv *stpriv;307309308310 ret = stmmac_get_platform_resources(pdev, &stmmac_res);309311 if (ret)···316314 return PTR_ERR(plat_dat);317315318316 dwmac = devm_kzalloc(dev, sizeof(*dwmac), GFP_KERNEL);319319- if (!dwmac)320320- return -ENOMEM;317317+ if (!dwmac) {318318+ ret = -ENOMEM;319319+ goto err_remove_config_dt;320320+ }321321322322 ret = socfpga_dwmac_parse_data(dwmac, dev);323323 if (ret) {324324 dev_err(dev, "Unable to parse OF data\n");325325- return ret;325325+ goto err_remove_config_dt;326326 }327327328328 plat_dat->bsp_priv = dwmac;329329 plat_dat->fix_mac_speed = socfpga_dwmac_fix_mac_speed;330330331331 ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);332332+ if (ret)333333+ goto err_remove_config_dt;332334333333- if (!ret) {334334- struct net_device *ndev = platform_get_drvdata(pdev);335335- struct stmmac_priv *stpriv = netdev_priv(ndev);335335+ ndev = platform_get_drvdata(pdev);336336+ stpriv = netdev_priv(ndev);336337337337- /* The socfpga driver needs to control the stmmac reset to338338- * set the phy mode. Create a copy of the core reset handel339339- * so it can be used by the driver later.340340- */341341- dwmac->stmmac_rst = stpriv->stmmac_rst;338338+ /* The socfpga driver needs to control the stmmac reset to set the phy339339+ * mode. Create a copy of the core reset handle so it can be used by340340+ * the driver later.341341+ */342342+ dwmac->stmmac_rst = stpriv->stmmac_rst;342343343343- ret = socfpga_dwmac_set_phy_mode(dwmac);344344- }344344+ ret = socfpga_dwmac_set_phy_mode(dwmac);345345+ if (ret)346346+ goto err_dvr_remove;347347+348348+ return 0;349349+350350+err_dvr_remove:351351+ stmmac_dvr_remove(&pdev->dev);352352+err_remove_config_dt:353353+ stmmac_remove_config_dt(pdev, plat_dat);345354346355 return ret;347356}
+18-5
drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c
···345345 return PTR_ERR(plat_dat);346346347347 dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);348348- if (!dwmac)349349- return -ENOMEM;348348+ if (!dwmac) {349349+ ret = -ENOMEM;350350+ goto err_remove_config_dt;351351+ }350352351353 ret = sti_dwmac_parse_data(dwmac, pdev);352354 if (ret) {353355 dev_err(&pdev->dev, "Unable to parse OF data\n");354354- return ret;356356+ goto err_remove_config_dt;355357 }356358357359 dwmac->fix_retime_src = data->fix_retime_src;···365363366364 ret = sti_dwmac_init(pdev, plat_dat->bsp_priv);367365 if (ret)368368- return ret;366366+ goto err_remove_config_dt;369367370370- return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);368368+ ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);369369+ if (ret)370370+ goto err_dwmac_exit;371371+372372+ return 0;373373+374374+err_dwmac_exit:375375+ sti_dwmac_exit(pdev, plat_dat->bsp_priv);376376+err_remove_config_dt:377377+ stmmac_remove_config_dt(pdev, plat_dat);378378+379379+ return ret;371380}372381373382static const struct sti_dwmac_of_data stih4xx_dwmac_data = {
+14-5
drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
···107107 return PTR_ERR(plat_dat);108108109109 dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL);110110- if (!dwmac)111111- return -ENOMEM;110110+ if (!dwmac) {111111+ ret = -ENOMEM;112112+ goto err_remove_config_dt;113113+ }112114113115 ret = stm32_dwmac_parse_data(dwmac, &pdev->dev);114116 if (ret) {115117 dev_err(&pdev->dev, "Unable to parse OF data\n");116116- return ret;118118+ goto err_remove_config_dt;117119 }118120119121 plat_dat->bsp_priv = dwmac;120122121123 ret = stm32_dwmac_init(plat_dat);122124 if (ret)123123- return ret;125125+ goto err_remove_config_dt;124126125127 ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);126128 if (ret)127127- stm32_dwmac_clk_disable(dwmac);129129+ goto err_clk_disable;130130+131131+ return 0;132132+133133+err_clk_disable:134134+ stm32_dwmac_clk_disable(dwmac);135135+err_remove_config_dt:136136+ stmmac_remove_config_dt(pdev, plat_dat);128137129138 return ret;130139}
+19-7
drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
···120120 return PTR_ERR(plat_dat);121121122122 gmac = devm_kzalloc(dev, sizeof(*gmac), GFP_KERNEL);123123- if (!gmac)124124- return -ENOMEM;123123+ if (!gmac) {124124+ ret = -ENOMEM;125125+ goto err_remove_config_dt;126126+ }125127126128 gmac->interface = of_get_phy_mode(dev->of_node);127129128130 gmac->tx_clk = devm_clk_get(dev, "allwinner_gmac_tx");129131 if (IS_ERR(gmac->tx_clk)) {130132 dev_err(dev, "could not get tx clock\n");131131- return PTR_ERR(gmac->tx_clk);133133+ ret = PTR_ERR(gmac->tx_clk);134134+ goto err_remove_config_dt;132135 }133136134137 /* Optional regulator for PHY */135138 gmac->regulator = devm_regulator_get_optional(dev, "phy");136139 if (IS_ERR(gmac->regulator)) {137137- if (PTR_ERR(gmac->regulator) == -EPROBE_DEFER)138138- return -EPROBE_DEFER;140140+ if (PTR_ERR(gmac->regulator) == -EPROBE_DEFER) {141141+ ret = -EPROBE_DEFER;142142+ goto err_remove_config_dt;143143+ }139144 dev_info(dev, "no regulator found\n");140145 gmac->regulator = NULL;141146 }···156151157152 ret = sun7i_gmac_init(pdev, plat_dat->bsp_priv);158153 if (ret)159159- return ret;154154+ goto err_remove_config_dt;160155161156 ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);162157 if (ret)163163- sun7i_gmac_exit(pdev, plat_dat->bsp_priv);158158+ goto err_gmac_exit;159159+160160+ return 0;161161+162162+err_gmac_exit:163163+ sun7i_gmac_exit(pdev, plat_dat->bsp_priv);164164+err_remove_config_dt:165165+ stmmac_remove_config_dt(pdev, plat_dat);164166165167 return ret;166168}
-1
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
···34163416 stmmac_set_mac(priv->ioaddr, false);34173417 netif_carrier_off(ndev);34183418 unregister_netdev(ndev);34193419- of_node_put(priv->plat->phy_node);34203419 if (priv->stmmac_rst)34213420 reset_control_assert(priv->stmmac_rst);34223421 clk_disable_unprepare(priv->pclk);
···33 *44 * Copyright (C) 2015-2016 Synopsys, Inc. (www.synopsys.com)55 *66- * Authors: Joao Pinto <jpmpinto@gmail.com>66+ * Authors: Joao Pinto <Joao.Pinto@synopsys.com>77 *88 * This program is free software; you can redistribute it and/or modify99 * it under the terms of the GNU General Public License version 2 as
-14
drivers/pci/pcie/aer/aer_inject.c
···307307 return 0;308308}309309310310-static struct pci_dev *pcie_find_root_port(struct pci_dev *dev)311311-{312312- while (1) {313313- if (!pci_is_pcie(dev))314314- break;315315- if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)316316- return dev;317317- if (!dev->bus->self)318318- break;319319- dev = dev->bus->self;320320- }321321- return NULL;322322-}323323-324310static int find_aer_device_iter(struct device *device, void *data)325311{326312 struct pcie_device **result = data;
+27-1
drivers/pci/probe.c
···14391439 dev_warn(&dev->dev, "PCI-X settings not supported\n");14401440}1441144114421442+static bool pcie_root_rcb_set(struct pci_dev *dev)14431443+{14441444+ struct pci_dev *rp = pcie_find_root_port(dev);14451445+ u16 lnkctl;14461446+14471447+ if (!rp)14481448+ return false;14491449+14501450+ pcie_capability_read_word(rp, PCI_EXP_LNKCTL, &lnkctl);14511451+ if (lnkctl & PCI_EXP_LNKCTL_RCB)14521452+ return true;14531453+14541454+ return false;14551455+}14561456+14421457static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp)14431458{14441459 int pos;···14831468 ~hpp->pci_exp_devctl_and, hpp->pci_exp_devctl_or);1484146914851470 /* Initialize Link Control Register */14861486- if (pcie_cap_has_lnkctl(dev))14711471+ if (pcie_cap_has_lnkctl(dev)) {14721472+14731473+ /*14741474+ * If the Root Port supports Read Completion Boundary of14751475+ * 128, set RCB to 128. Otherwise, clear it.14761476+ */14771477+ hpp->pci_exp_lnkctl_and |= PCI_EXP_LNKCTL_RCB;14781478+ hpp->pci_exp_lnkctl_or &= ~PCI_EXP_LNKCTL_RCB;14791479+ if (pcie_root_rcb_set(dev))14801480+ hpp->pci_exp_lnkctl_or |= PCI_EXP_LNKCTL_RCB;14811481+14871482 pcie_capability_clear_and_set_word(dev, PCI_EXP_LNKCTL,14881483 ~hpp->pci_exp_lnkctl_and, hpp->pci_exp_lnkctl_or);14841484+ }1489148514901486 /* Find Advanced Error Reporting Enhanced Capability */14911487 pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ERR);
···19281928 return (pcie_caps_reg(dev) & PCI_EXP_FLAGS_TYPE) >> 4;19291929}1930193019311931+static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)19321932+{19331933+ while (1) {19341934+ if (!pci_is_pcie(dev))19351935+ break;19361936+ if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)19371937+ return dev;19381938+ if (!dev->bus->self)19391939+ break;19401940+ dev = dev->bus->self;19411941+ }19421942+ return NULL;19431943+}19441944+19311945void pci_request_acs(void);19321946bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags);19331947bool pci_acs_path_enabled(struct pci_dev *start,
+2
include/net/ipv6.h
···970970int compat_ipv6_getsockopt(struct sock *sk, int level, int optname,971971 char __user *optval, int __user *optlen);972972973973+int __ip6_datagram_connect(struct sock *sk, struct sockaddr *addr,974974+ int addr_len);973975int ip6_datagram_connect(struct sock *sk, struct sockaddr *addr, int addr_len);974976int ip6_datagram_connect_v6_only(struct sock *sk, struct sockaddr *addr,975977 int addr_len);
+3-3
include/net/netfilter/nf_conntrack.h
···100100101101 possible_net_t ct_net;102102103103+#if IS_ENABLED(CONFIG_NF_NAT)104104+ struct rhlist_head nat_bysource;105105+#endif103106 /* all members below initialized via memset */104107 u8 __nfct_init_offset[0];105108···120117 /* Extensions */121118 struct nf_ct_ext *ext;122119123123-#if IS_ENABLED(CONFIG_NF_NAT)124124- struct rhash_head nat_bysource;125125-#endif126120 /* Storage reserved for other modules, must be the last member */127121 union nf_conntrack_proto proto;128122};
+1-1
include/net/netfilter/nf_tables.h
···313313 * @size: maximum set size314314 * @nelems: number of elements315315 * @ndeact: number of deactivated elements queued for removal316316- * @timeout: default timeout value in msecs316316+ * @timeout: default timeout value in jiffies317317 * @gc_int: garbage collection interval in msecs318318 * @policy: set parameterization (see enum nft_set_policies)319319 * @udlen: user data length
···24542454 struct bpf_verifier_state *old,24552455 struct bpf_verifier_state *cur)24562456{24572457+ bool varlen_map_access = env->varlen_map_value_access;24572458 struct bpf_reg_state *rold, *rcur;24582459 int i;24592460···24682467 /* If the ranges were not the same, but everything else was and24692468 * we didn't do a variable access into a map then we are a-ok.24702469 */24712471- if (!env->varlen_map_value_access &&24702470+ if (!varlen_map_access &&24722471 rold->type == rcur->type && rold->imm == rcur->imm)24732472 continue;2474247324742474+ /* If we didn't map access then again we don't care about the24752475+ * mismatched range values and it's ok if our old type was24762476+ * UNKNOWN and we didn't go to a NOT_INIT'ed reg.24772477+ */24752478 if (rold->type == NOT_INIT ||24762476- (rold->type == UNKNOWN_VALUE && rcur->type != NOT_INIT))24792479+ (!varlen_map_access && rold->type == UNKNOWN_VALUE &&24802480+ rcur->type != NOT_INIT))24772481 continue;2478248224792483 if (rold->type == PTR_TO_PACKET && rcur->type == PTR_TO_PACKET &&
···715715 val = min_t(u32, val, sysctl_wmem_max);716716set_sndbuf:717717 sk->sk_userlocks |= SOCK_SNDBUF_LOCK;718718- sk->sk_sndbuf = max_t(u32, val * 2, SOCK_MIN_SNDBUF);718718+ sk->sk_sndbuf = max_t(int, val * 2, SOCK_MIN_SNDBUF);719719 /* Wake up sending tasks if we upped the value. */720720 sk->sk_write_space(sk);721721 break;···751751 * returning the value we actually used in getsockopt752752 * is the most desirable behavior.753753 */754754- sk->sk_rcvbuf = max_t(u32, val * 2, SOCK_MIN_RCVBUF);754754+ sk->sk_rcvbuf = max_t(int, val * 2, SOCK_MIN_RCVBUF);755755 break;756756757757 case SO_RCVBUFFORCE:
+7-5
net/dccp/ipv4.c
···700700{701701 const struct dccp_hdr *dh;702702 unsigned int cscov;703703+ u8 dccph_doff;703704704705 if (skb->pkt_type != PACKET_HOST)705706 return 1;···722721 /*723722 * If P.Data Offset is too small for packet type, drop packet and return724723 */725725- if (dh->dccph_doff < dccp_hdr_len(skb) / sizeof(u32)) {726726- DCCP_WARN("P.Data Offset(%u) too small\n", dh->dccph_doff);724724+ dccph_doff = dh->dccph_doff;725725+ if (dccph_doff < dccp_hdr_len(skb) / sizeof(u32)) {726726+ DCCP_WARN("P.Data Offset(%u) too small\n", dccph_doff);727727 return 1;728728 }729729 /*730730 * If P.Data Offset is too too large for packet, drop packet and return731731 */732732- if (!pskb_may_pull(skb, dh->dccph_doff * sizeof(u32))) {733733- DCCP_WARN("P.Data Offset(%u) too large\n", dh->dccph_doff);732732+ if (!pskb_may_pull(skb, dccph_doff * sizeof(u32))) {733733+ DCCP_WARN("P.Data Offset(%u) too large\n", dccph_doff);734734 return 1;735735 }736736-736736+ dh = dccp_hdr(skb);737737 /*738738 * If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet739739 * has short sequence numbers), drop packet and return
+4-9
net/dsa/dsa.c
···233233 genphy_read_status(phydev);234234 if (ds->ops->adjust_link)235235 ds->ops->adjust_link(ds, port, phydev);236236+237237+ put_device(&phydev->mdio.dev);236238 }237239238240 return 0;···506504507505void dsa_cpu_dsa_destroy(struct device_node *port_dn)508506{509509- struct phy_device *phydev;510510-511511- if (of_phy_is_fixed_link(port_dn)) {512512- phydev = of_phy_find_device(port_dn);513513- if (phydev) {514514- phy_device_free(phydev);515515- fixed_phy_unregister(phydev);516516- }517517- }507507+ if (of_phy_is_fixed_link(port_dn))508508+ of_phy_deregister_fixed_link(port_dn);518509}519510520511static void dsa_switch_destroy(struct dsa_switch *ds)
···11251125 p->phy_interface = mode;1126112611271127 phy_dn = of_parse_phandle(port_dn, "phy-handle", 0);11281128- if (of_phy_is_fixed_link(port_dn)) {11281128+ if (!phy_dn && of_phy_is_fixed_link(port_dn)) {11291129 /* In the case of a fixed PHY, the DT node associated11301130 * to the fixed PHY is the Port DT node11311131 */···11351135 return ret;11361136 }11371137 phy_is_fixed = true;11381138- phy_dn = port_dn;11381138+ phy_dn = of_node_get(port_dn);11391139 }1140114011411141 if (ds->ops->get_phy_flags)···11541154 ret = dsa_slave_phy_connect(p, slave_dev, phy_id);11551155 if (ret) {11561156 netdev_err(slave_dev, "failed to connect to phy%d: %d\n", phy_id, ret);11571157+ of_node_put(phy_dn);11571158 return ret;11581159 }11591160 } else {···11631162 phy_flags,11641163 p->phy_interface);11651164 }11651165+11661166+ of_node_put(phy_dn);11661167 }1167116811681169 if (p->phy && phy_is_fixed)···11771174 ret = dsa_slave_phy_connect(p, slave_dev, p->port);11781175 if (ret) {11791176 netdev_err(slave_dev, "failed to connect to port %d: %d\n", p->port, ret);11771177+ if (phy_is_fixed)11781178+ of_phy_deregister_fixed_link(port_dn);11801179 return ret;11811180 }11821181 }···12941289void dsa_slave_destroy(struct net_device *slave_dev)12951290{12961291 struct dsa_slave_priv *p = netdev_priv(slave_dev);12921292+ struct dsa_switch *ds = p->parent;12931293+ struct device_node *port_dn;12941294+12951295+ port_dn = ds->ports[p->port].dn;1297129612981297 netif_carrier_off(slave_dev);12991299- if (p->phy)12981298+ if (p->phy) {13001299 phy_disconnect(p->phy);13001300+13011301+ if (of_phy_is_fixed_link(port_dn))13021302+ of_phy_deregister_fixed_link(port_dn);13031303+ }13011304 unregister_netdev(slave_dev);13021305 free_netdev(slave_dev);13031306}
+1
net/ipv4/Kconfig
···715715 default "reno" if DEFAULT_RENO716716 default "dctcp" if DEFAULT_DCTCP717717 default "cdg" if DEFAULT_CDG718718+ default "bbr" if DEFAULT_BBR718719 default "cubic"719720720721config TCP_MD5SIG
+1-1
net/ipv4/af_inet.c
···12331233 fixedid = !!(skb_shinfo(skb)->gso_type & SKB_GSO_TCP_FIXEDID);1234123412351235 /* fixed ID is invalid if DF bit is not set */12361236- if (fixedid && !(iph->frag_off & htons(IP_DF)))12361236+ if (fixedid && !(ip_hdr(skb)->frag_off & htons(IP_DF)))12371237 goto out;12381238 }12391239
···447447448448 if (__ipv6_addr_needs_scope_id(addr_type))449449 iif = skb->dev->ifindex;450450- else451451- iif = l3mdev_master_ifindex(skb_dst(skb)->dev);450450+ else {451451+ dst = skb_dst(skb);452452+ iif = l3mdev_master_ifindex(dst ? dst->dev : skb->dev);453453+ }452454453455 /*454456 * Must not send error if the source does not uniquely
+1-1
net/ipv6/ip6_offload.c
···9999 segs = ops->callbacks.gso_segment(skb, features);100100 }101101102102- if (IS_ERR(segs))102102+ if (IS_ERR_OR_NULL(segs))103103 goto out;104104105105 gso_partial = !!(skb_shinfo(segs)->gso_type & SKB_GSO_PARTIAL);
···292292 call_rcu(&prog->rcu, __cls_bpf_delete_prog);293293 }294294295295- RCU_INIT_POINTER(tp->root, NULL);296295 kfree_rcu(head, rcu);297296 return true;298297}···301302 struct cls_bpf_head *head = rtnl_dereference(tp->root);302303 struct cls_bpf_prog *prog;303304 unsigned long ret = 0UL;304304-305305- if (head == NULL)306306- return 0UL;307305308306 list_for_each_entry(prog, &head->plist, link) {309307 if (prog->handle == handle) {
+3-4
net/sched/cls_cgroup.c
···137137138138 if (!force)139139 return false;140140-141141- if (head) {142142- RCU_INIT_POINTER(tp->root, NULL);140140+ /* Head can still be NULL due to cls_cgroup_init(). */141141+ if (head)143142 call_rcu(&head->rcu, cls_cgroup_destroy_rcu);144144- }143143+145144 return true;146145}147146