Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Pull networking fixes from David Miller:

1) Fix several cases of missing of_node_put() calls in various
networking drivers. From Peter Chen.

2) Don't try to remove unconfigured VLANs in qed driver, from Yuval
Mintz.

3) Unbalanced locking in TIPC error handling, from Wei Yongjun.

4) Fix lockups in CPDMA driver, from Grygorii Strashko.

5) More MACSEC refcount et al fixes, from Sabrina Dubroca.

6) Fix MAC address setting in r8169 during runtime suspend, from
Chun-Hao Lin.

7) Various printf format specifier fixes, from Heinrich Schuchardt.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
qed: Fail driver load in 100g MSI mode.
ethernet: ti: davinci_emac: add missing of_node_put after calling of_parse_phandle
ethernet: stmicro: stmmac: add missing of_node_put after calling of_parse_phandle
ethernet: stmicro: stmmac: dwmac-socfpga: add missing of_node_put after calling of_parse_phandle
ethernet: renesas: sh_eth: add missing of_node_put after calling of_parse_phandle
ethernet: renesas: ravb_main: add missing of_node_put after calling of_parse_phandle
ethernet: marvell: pxa168_eth: add missing of_node_put after calling of_parse_phandle
ethernet: marvell: mvpp2: add missing of_node_put after calling of_parse_phandle
ethernet: marvell: mvneta: add missing of_node_put after calling of_parse_phandle
ethernet: hisilicon: hns: hns_dsaf_main: add missing of_node_put after calling of_parse_phandle
ethernet: hisilicon: hns: hns_dsaf_mac: add missing of_node_put after calling of_parse_phandle
ethernet: cavium: octeon: add missing of_node_put after calling of_parse_phandle
ethernet: aurora: nb8800: add missing of_node_put after calling of_parse_phandle
ethernet: arc: emac_main: add missing of_node_put after calling of_parse_phandle
ethernet: apm: xgene: add missing of_node_put after calling of_parse_phandle
ethernet: altera: add missing of_node_put
8139too: fix system hang when there is a tx timeout event.
qed: Fix error return code in qed_resc_alloc()
net: qlcnic: avoid superfluous assignement
dsa: b53: remove redundant if
...

+195 -95
+1 -1
arch/arm/mach-omap2/omap_device.c
··· 209 209 int err; 210 210 211 211 switch (event) { 212 - case BUS_NOTIFY_DEL_DEVICE: 212 + case BUS_NOTIFY_REMOVED_DEVICE: 213 213 if (pdev->archdata.od) 214 214 omap_device_delete(pdev->archdata.od); 215 215 break;
+2 -2
drivers/net/caif/caif_spi.c
··· 185 185 /* Fast forward. */ 186 186 i = count - cut; 187 187 len += snprintf((buf + len), (size - len), 188 - "--- %u bytes skipped ---\n", 189 - (int)(count - (cut * 2))); 188 + "--- %zu bytes skipped ---\n", 189 + count - (cut * 2)); 190 190 } 191 191 192 192 if ((!(i % 10)) && i) {
+1 -2
drivers/net/dsa/b53/b53_mmap.c
··· 233 233 if (!dev) 234 234 return -ENOMEM; 235 235 236 - if (pdata) 237 - dev->pdata = pdata; 236 + dev->pdata = pdata; 238 237 239 238 platform_set_drvdata(pdev, dev); 240 239
+3 -2
drivers/net/dsa/bcm_sf2.c
··· 1622 1622 "switch_0", priv); 1623 1623 if (ret < 0) { 1624 1624 pr_err("failed to request switch_0 IRQ\n"); 1625 - goto out_unmap; 1625 + goto out_mdio; 1626 1626 } 1627 1627 1628 1628 ret = request_irq(priv->irq1, bcm_sf2_switch_1_isr, 0, ··· 1679 1679 1680 1680 out_free_irq0: 1681 1681 free_irq(priv->irq0, priv); 1682 + out_mdio: 1683 + bcm_sf2_mdio_unregister(priv); 1682 1684 out_unmap: 1683 1685 base = &priv->core; 1684 1686 for (i = 0; i < BCM_SF2_REGS_NUM; i++) { ··· 1688 1686 iounmap(*base); 1689 1687 base++; 1690 1688 } 1691 - bcm_sf2_mdio_unregister(priv); 1692 1689 return ret; 1693 1690 } 1694 1691
+2 -1
drivers/net/ethernet/8390/ax88796.c
··· 910 910 iounmap(ax->map2); 911 911 912 912 exit_mem2: 913 - release_mem_region(mem2->start, mem2_size); 913 + if (mem2) 914 + release_mem_region(mem2->start, mem2_size); 914 915 915 916 exit_mem1: 916 917 iounmap(ei_local->mem);
+1
drivers/net/ethernet/altera/altera_tse_main.c
··· 815 815 phydev = of_phy_connect(dev, phynode, 816 816 &altera_tse_adjust_link, 0, priv->phy_iface); 817 817 } 818 + of_node_put(phynode); 818 819 819 820 if (!phydev) { 820 821 netdev_err(dev, "Could not find the PHY\n");
+1 -1
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
··· 154 154 goto err_rx_ring; 155 155 156 156 for (i = 0, channel = channel_mem; i < count; i++, channel++) { 157 - snprintf(channel->name, sizeof(channel->name), "channel-%d", i); 157 + snprintf(channel->name, sizeof(channel->name), "channel-%u", i); 158 158 channel->pdata = pdata; 159 159 channel->queue_index = i; 160 160 channel->dma_regs = pdata->xgmac_regs + DMA_CH_BASE +
+1
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c
··· 772 772 773 773 phy_dev = of_phy_connect(ndev, np, &xgene_enet_adjust_link, 774 774 0, pdata->phy_mode); 775 + of_node_put(np); 775 776 if (!phy_dev) { 776 777 netdev_err(ndev, "Could not connect to PHY\n"); 777 778 return -ENODEV;
+11 -4
drivers/net/ethernet/arc/emac_main.c
··· 749 749 err = of_address_to_resource(dev->of_node, 0, &res_regs); 750 750 if (err) { 751 751 dev_err(dev, "failed to retrieve registers base from device tree\n"); 752 - return -ENODEV; 752 + err = -ENODEV; 753 + goto out_put_node; 753 754 } 754 755 755 756 /* Get IRQ from device tree */ 756 757 irq = irq_of_parse_and_map(dev->of_node, 0); 757 758 if (!irq) { 758 759 dev_err(dev, "failed to retrieve <irq> value from device tree\n"); 759 - return -ENODEV; 760 + err = -ENODEV; 761 + goto out_put_node; 760 762 } 761 763 762 764 ndev->netdev_ops = &arc_emac_netdev_ops; ··· 780 778 err = clk_prepare_enable(priv->clk); 781 779 if (err) { 782 780 dev_err(dev, "failed to enable clock\n"); 783 - return err; 781 + goto out_put_node; 784 782 } 785 783 786 784 clock_frequency = clk_get_rate(priv->clk); ··· 789 787 if (of_property_read_u32(dev->of_node, "clock-frequency", 790 788 &clock_frequency)) { 791 789 dev_err(dev, "failed to retrieve <clock-frequency> from device tree\n"); 792 - return -EINVAL; 790 + err = -EINVAL; 791 + goto out_put_node; 793 792 } 794 793 } 795 794 ··· 870 867 goto out_netif_api; 871 868 } 872 869 870 + of_node_put(phy_node); 873 871 return 0; 874 872 875 873 out_netif_api: ··· 881 877 out_clken: 882 878 if (priv->clk) 883 879 clk_disable_unprepare(priv->clk); 880 + out_put_node: 881 + of_node_put(phy_node); 882 + 884 883 return err; 885 884 } 886 885 EXPORT_SYMBOL_GPL(arc_emac_probe);
+2
drivers/net/ethernet/aurora/nb8800.c
··· 1504 1504 err_free_dma: 1505 1505 nb8800_dma_free(dev); 1506 1506 err_free_bus: 1507 + of_node_put(priv->phy_node); 1507 1508 mdiobus_unregister(bus); 1508 1509 err_disable_clk: 1509 1510 clk_disable_unprepare(priv->clk); ··· 1520 1519 struct nb8800_priv *priv = netdev_priv(ndev); 1521 1520 1522 1521 unregister_netdev(ndev); 1522 + of_node_put(priv->phy_node); 1523 1523 1524 1524 mdiobus_unregister(priv->mii_bus); 1525 1525
+1 -1
drivers/net/ethernet/broadcom/bcm63xx_enet.c
··· 1859 1859 } else { 1860 1860 1861 1861 /* run platform code to initialize PHY device */ 1862 - if (pd->mii_config && 1862 + if (pd && pd->mii_config && 1863 1863 pd->mii_config(dev, 1, bcm_enet_mdio_read_mii, 1864 1864 bcm_enet_mdio_write_mii)) { 1865 1865 dev_err(&pdev->dev, "unable to configure mdio bus\n");
+4 -2
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
··· 312 312 struct bnad_debug_info *regrd_debug = file->private_data; 313 313 struct bnad *bnad = (struct bnad *)regrd_debug->i_private; 314 314 struct bfa_ioc *ioc = &bnad->bna.ioceth.ioc; 315 - int addr, len, rc, i; 315 + int rc, i; 316 + u32 addr, len; 316 317 u32 *regbuf; 317 318 void __iomem *rb, *reg_addr; 318 319 unsigned long flags; ··· 373 372 struct bnad_debug_info *debug = file->private_data; 374 373 struct bnad *bnad = (struct bnad *)debug->i_private; 375 374 struct bfa_ioc *ioc = &bnad->bna.ioceth.ioc; 376 - int addr, val, rc; 375 + int rc; 376 + u32 addr, val; 377 377 void __iomem *reg_addr; 378 378 unsigned long flags; 379 379 void *kern_buf;
+3
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
··· 1513 1513 return 0; 1514 1514 1515 1515 err: 1516 + of_node_put(p->phy_np); 1516 1517 free_netdev(netdev); 1517 1518 return result; 1518 1519 } ··· 1521 1520 static int octeon_mgmt_remove(struct platform_device *pdev) 1522 1521 { 1523 1522 struct net_device *netdev = platform_get_drvdata(pdev); 1523 + struct octeon_mgmt *p = netdev_priv(netdev); 1524 1524 1525 1525 unregister_netdev(netdev); 1526 + of_node_put(p->phy_np); 1526 1527 free_netdev(netdev); 1527 1528 return 0; 1528 1529 }
+1 -1
drivers/net/ethernet/chelsio/cxgb4/sge.c
··· 1192 1192 1193 1193 /* Discard the packet if the length is greater than mtu */ 1194 1194 max_pkt_len = ETH_HLEN + dev->mtu; 1195 - if (skb_vlan_tag_present(skb)) 1195 + if (skb_vlan_tagged(skb)) 1196 1196 max_pkt_len += VLAN_HLEN; 1197 1197 if (!skb_shinfo(skb)->gso_size && (unlikely(skb->len > max_pkt_len))) 1198 1198 goto out_free;
+1 -1
drivers/net/ethernet/chelsio/cxgb4vf/sge.c
··· 1188 1188 1189 1189 /* Discard the packet if the length is greater than mtu */ 1190 1190 max_pkt_len = ETH_HLEN + dev->mtu; 1191 - if (skb_vlan_tag_present(skb)) 1191 + if (skb_vlan_tagged(skb)) 1192 1192 max_pkt_len += VLAN_HLEN; 1193 1193 if (!skb_shinfo(skb)->gso_size && (unlikely(skb->len > max_pkt_len))) 1194 1194 goto out_free;
+2 -2
drivers/net/ethernet/cisco/enic/enic_main.c
··· 1566 1566 intr = enic_msix_rq_intr(enic, i); 1567 1567 snprintf(enic->msix[intr].devname, 1568 1568 sizeof(enic->msix[intr].devname), 1569 - "%.11s-rx-%d", netdev->name, i); 1569 + "%.11s-rx-%u", netdev->name, i); 1570 1570 enic->msix[intr].isr = enic_isr_msix; 1571 1571 enic->msix[intr].devid = &enic->napi[i]; 1572 1572 } ··· 1577 1577 intr = enic_msix_wq_intr(enic, i); 1578 1578 snprintf(enic->msix[intr].devname, 1579 1579 sizeof(enic->msix[intr].devname), 1580 - "%.11s-tx-%d", netdev->name, i); 1580 + "%.11s-tx-%u", netdev->name, i); 1581 1581 enic->msix[intr].isr = enic_isr_msix; 1582 1582 enic->msix[intr].devid = &enic->napi[wq]; 1583 1583 }
+1 -1
drivers/net/ethernet/dec/tulip/de4x5.c
··· 1319 1319 1320 1320 if (request_irq(dev->irq, de4x5_interrupt, IRQF_SHARED, 1321 1321 lp->adapter_name, dev)) { 1322 - printk("de4x5_open(): Requested IRQ%d is busy - attemping FAST/SHARE...", dev->irq); 1322 + printk("de4x5_open(): Requested IRQ%d is busy - attempting FAST/SHARE...", dev->irq); 1323 1323 if (request_irq(dev->irq, de4x5_interrupt, IRQF_SHARED, 1324 1324 lp->adapter_name, dev)) { 1325 1325 printk("\n Cannot get IRQ- reconfigure your hardware.\n");
+6 -3
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c
··· 795 795 dev_dbg(mac_cb->dev, "mac%d phy_node: %s\n", 796 796 mac_cb->mac_id, np->name); 797 797 } 798 + of_node_put(np); 798 799 799 800 return 0; 800 801 } ··· 813 812 dev_dbg(mac_cb->dev, "mac%d phy_node: %s\n", 814 813 mac_cb->mac_id, np->name); 815 814 } 815 + of_node_put(np); 816 816 817 - syscon = syscon_node_to_regmap( 818 - of_parse_phandle(to_of_node(mac_cb->fw_port), 819 - "serdes-syscon", 0)); 817 + np = of_parse_phandle(to_of_node(mac_cb->fw_port), 818 + "serdes-syscon", 0); 819 + syscon = syscon_node_to_regmap(np); 820 + of_node_put(np); 820 821 if (IS_ERR_OR_NULL(syscon)) { 821 822 dev_err(mac_cb->dev, "serdes-syscon is needed!\n"); 822 823 return -EINVAL;
+4 -3
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
··· 51 51 const char *mode_str; 52 52 struct regmap *syscon; 53 53 struct resource *res; 54 - struct device_node *np = dsaf_dev->dev->of_node; 54 + struct device_node *np = dsaf_dev->dev->of_node, *np_temp; 55 55 struct platform_device *pdev = to_platform_device(dsaf_dev->dev); 56 56 57 57 if (dev_of_node(dsaf_dev->dev)) { ··· 102 102 dsaf_dev->dsaf_tc_mode = HRD_DSAF_4TC_MODE; 103 103 104 104 if (dev_of_node(dsaf_dev->dev)) { 105 - syscon = syscon_node_to_regmap( 106 - of_parse_phandle(np, "subctrl-syscon", 0)); 105 + np_temp = of_parse_phandle(np, "subctrl-syscon", 0); 106 + syscon = syscon_node_to_regmap(np_temp); 107 + of_node_put(np_temp); 107 108 if (IS_ERR_OR_NULL(syscon)) { 108 109 res = platform_get_resource(pdev, IORESOURCE_MEM, 109 110 res_idx++);
+1
drivers/net/ethernet/marvell/mvneta.c
··· 4118 4118 pp->bm_priv = NULL; 4119 4119 } 4120 4120 } 4121 + of_node_put(bm_node); 4121 4122 4122 4123 err = mvneta_init(&pdev->dev, pp); 4123 4124 if (err < 0)
+2
drivers/net/ethernet/marvell/mvpp2.c
··· 6234 6234 err_free_irq: 6235 6235 irq_dispose_mapping(port->irq); 6236 6236 err_free_netdev: 6237 + of_node_put(phy_node); 6237 6238 free_netdev(dev); 6238 6239 return err; 6239 6240 } ··· 6245 6244 int i; 6246 6245 6247 6246 unregister_netdev(port->dev); 6247 + of_node_put(port->phy_node); 6248 6248 free_percpu(port->pcpu); 6249 6249 free_percpu(port->stats); 6250 6250 for (i = 0; i < txq_number; i++)
+1
drivers/net/ethernet/marvell/pxa168_eth.c
··· 1506 1506 } 1507 1507 of_property_read_u32(np, "reg", &pep->phy_addr); 1508 1508 pep->phy_intf = of_get_phy_mode(pdev->dev.of_node); 1509 + of_node_put(np); 1509 1510 } 1510 1511 1511 1512 /* Hardware supports only 3 ports */
+1 -1
drivers/net/ethernet/neterion/s2io.c
··· 7412 7412 7413 7413 if ((rxdp->Control_1 & TCP_OR_UDP_FRAME) && 7414 7414 ((!ring_data->lro) || 7415 - (ring_data->lro && (!(rxdp->Control_1 & RXD_FRAME_IP_FRAG)))) && 7415 + (!(rxdp->Control_1 & RXD_FRAME_IP_FRAG))) && 7416 7416 (dev->features & NETIF_F_RXCSUM)) { 7417 7417 l3_csum = RXD_GET_L3_CKSUM(rxdp->Control_1); 7418 7418 l4_csum = RXD_GET_L4_CKSUM(rxdp->Control_1);
+3 -2
drivers/net/ethernet/qlogic/qed/qed_dev.c
··· 509 509 DP_ERR(p_hwfn, 510 510 "Cannot allocate 0x%x EQ elements. The maximum of a u16 chain is 0x%x\n", 511 511 n_eqes, 0xFFFF); 512 + rc = -EINVAL; 512 513 goto alloc_err; 513 514 } 514 515 ··· 889 888 890 889 if (hw_mode & (1 << MODE_MF_SI)) { 891 890 u8 pf_id = 0; 892 - u32 val; 891 + u32 val = 0; 893 892 894 893 if (!qed_hw_init_first_eth(p_hwfn, p_ptt, &pf_id)) { 895 894 if (p_hwfn->rel_pf_id == pf_id) { ··· 2540 2539 2541 2540 rc = __qed_configure_vport_wfq(p_hwfn, p_ptt, vp_id, rate); 2542 2541 2543 - if (!rc) { 2542 + if (rc) { 2544 2543 qed_ptt_release(p_hwfn, p_ptt); 2545 2544 return rc; 2546 2545 }
+10 -3
drivers/net/ethernet/qlogic/qed/qed_l2.c
··· 590 590 u16 cqe_pbl_size, void __iomem **pp_prod) 591 591 { 592 592 struct qed_hw_cid_data *p_rx_cid; 593 - u64 init_prod_val = 0; 593 + u32 init_prod_val = 0; 594 594 u16 abs_l2_queue = 0; 595 595 u8 abs_stats_id = 0; 596 596 int rc; ··· 618 618 MSTORM_ETH_PF_PRODS_OFFSET(abs_l2_queue); 619 619 620 620 /* Init the rcq, rx bd and rx sge (if valid) producers to 0 */ 621 - __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u64), 621 + __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u32), 622 622 (u32 *)(&init_prod_val)); 623 623 624 624 /* Allocate a CID for the queue */ ··· 1664 1664 info->num_tc = 1; 1665 1665 1666 1666 if (IS_PF(cdev)) { 1667 + int max_vf_vlan_filters = 0; 1668 + 1667 1669 if (cdev->int_params.out.int_mode == QED_INT_MODE_MSIX) { 1668 1670 for_each_hwfn(cdev, i) 1669 1671 info->num_queues += ··· 1678 1676 info->num_queues = cdev->num_hwfns; 1679 1677 } 1680 1678 1681 - info->num_vlan_filters = RESC_NUM(&cdev->hwfns[0], QED_VLAN); 1679 + if (IS_QED_SRIOV(cdev)) 1680 + max_vf_vlan_filters = cdev->p_iov_info->total_vfs * 1681 + QED_ETH_VF_NUM_VLAN_FILTERS; 1682 + info->num_vlan_filters = RESC_NUM(&cdev->hwfns[0], QED_VLAN) - 1683 + max_vf_vlan_filters; 1684 + 1682 1685 ether_addr_copy(info->port_mac, 1683 1686 cdev->hwfns[0].hw_info.hw_mac_addr); 1684 1687 } else {
+6 -1
drivers/net/ethernet/qlogic/qed/qed_main.c
··· 659 659 struct qed_sb_cnt_info sb_cnt_info; 660 660 int rc; 661 661 int i; 662 - memset(&cdev->int_params, 0, sizeof(struct qed_int_params)); 663 662 663 + if ((int_mode == QED_INT_MODE_MSI) && (cdev->num_hwfns > 1)) { 664 + DP_NOTICE(cdev, "MSI mode is not supported for CMT devices\n"); 665 + return -EINVAL; 666 + } 667 + 668 + memset(&cdev->int_params, 0, sizeof(struct qed_int_params)); 664 669 cdev->int_params.in.int_mode = int_mode; 665 670 for_each_hwfn(cdev, i) { 666 671 memset(&sb_cnt_info, 0, sizeof(sb_cnt_info));
+1 -1
drivers/net/ethernet/qlogic/qed/qed_sriov.c
··· 1404 1404 params.anti_spoofing_en = val; 1405 1405 1406 1406 rc = qed_sp_vport_update(p_hwfn, &params, QED_SPQ_MODE_EBLOCK, NULL); 1407 - if (rc) { 1407 + if (!rc) { 1408 1408 p_vf->spoof_chk = val; 1409 1409 p_vf->req_spoofchk_val = p_vf->spoof_chk; 1410 1410 DP_VERBOSE(p_hwfn, QED_MSG_IOV,
+2 -2
drivers/net/ethernet/qlogic/qed/qed_vf.c
··· 388 388 389 389 /* Learn the address of the producer from the response */ 390 390 if (pp_prod) { 391 - u64 init_prod_val = 0; 391 + u32 init_prod_val = 0; 392 392 393 393 *pp_prod = (u8 __iomem *)p_hwfn->regview + resp->offset; 394 394 DP_VERBOSE(p_hwfn, QED_MSG_IOV, ··· 396 396 rx_qid, *pp_prod, resp->offset); 397 397 398 398 /* Init the rcq, rx bd and rx sge (if valid) producers to 0 */ 399 - __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u64), 399 + __internal_ram_wr(p_hwfn, *pp_prod, sizeof(u32), 400 400 (u32 *)&init_prod_val); 401 401 } 402 402
+8 -4
drivers/net/ethernet/qlogic/qede/qede_main.c
··· 2064 2064 } 2065 2065 2066 2066 /* Remove vlan */ 2067 - rc = qede_set_ucast_rx_vlan(edev, QED_FILTER_XCAST_TYPE_DEL, vid); 2068 - if (rc) { 2069 - DP_ERR(edev, "Failed to remove VLAN %d\n", vid); 2070 - return -EINVAL; 2067 + if (vlan->configured) { 2068 + rc = qede_set_ucast_rx_vlan(edev, QED_FILTER_XCAST_TYPE_DEL, 2069 + vid); 2070 + if (rc) { 2071 + DP_ERR(edev, "Failed to remove VLAN %d\n", vid); 2072 + return -EINVAL; 2073 + } 2071 2074 } 2072 2075 2073 2076 qede_del_vlan_from_list(edev, vlan); ··· 3271 3268 start.vport_id = 0; 3272 3269 start.drop_ttl0 = true; 3273 3270 start.remove_inner_vlan = vlan_removal_en; 3271 + start.clear_stats = clear_stats; 3274 3272 3275 3273 rc = edev->ops->vport_start(cdev, &start); 3276 3274
-1
drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h
··· 45 45 static inline void qlcnic_clear_dcb_ops(struct qlcnic_dcb *dcb) 46 46 { 47 47 kfree(dcb); 48 - dcb = NULL; 49 48 } 50 49 51 50 static inline int qlcnic_dcb_get_hw_capability(struct qlcnic_dcb *dcb)
-1
drivers/net/ethernet/qlogic/qlge/qlge_main.c
··· 1892 1892 skb->len += length; 1893 1893 skb->data_len += length; 1894 1894 skb->truesize += length; 1895 - length -= length; 1896 1895 ql_update_mac_hdr_len(qdev, ib_mac_rsp, 1897 1896 lbq_desc->p.pg_chunk.va, 1898 1897 &hlen);
+8 -4
drivers/net/ethernet/realtek/8139too.c
··· 1667 1667 int i; 1668 1668 u8 tmp8; 1669 1669 1670 + napi_disable(&tp->napi); 1671 + netif_stop_queue(dev); 1672 + synchronize_sched(); 1673 + 1670 1674 netdev_dbg(dev, "Transmit timeout, status %02x %04x %04x media %02x\n", 1671 1675 RTL_R8(ChipCmd), RTL_R16(IntrStatus), 1672 1676 RTL_R16(IntrMask), RTL_R8(MediaStatus)); ··· 1700 1696 spin_unlock_irq(&tp->lock); 1701 1697 1702 1698 /* ...and finally, reset everything */ 1703 - if (netif_running(dev)) { 1704 - rtl8139_hw_start (dev); 1705 - netif_wake_queue (dev); 1706 - } 1699 + napi_enable(&tp->napi); 1700 + rtl8139_hw_start(dev); 1701 + netif_wake_queue(dev); 1702 + 1707 1703 spin_unlock_bh(&tp->rx_lock); 1708 1704 } 1709 1705
+33 -4
drivers/net/ethernet/realtek/r8169.c
··· 1749 1749 static void rtl8169_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) 1750 1750 { 1751 1751 struct rtl8169_private *tp = netdev_priv(dev); 1752 + struct device *d = &tp->pci_dev->dev; 1753 + 1754 + pm_runtime_get_noresume(d); 1752 1755 1753 1756 rtl_lock_work(tp); 1754 1757 1755 1758 wol->supported = WAKE_ANY; 1756 - wol->wolopts = __rtl8169_get_wol(tp); 1759 + if (pm_runtime_active(d)) 1760 + wol->wolopts = __rtl8169_get_wol(tp); 1761 + else 1762 + wol->wolopts = tp->saved_wolopts; 1757 1763 1758 1764 rtl_unlock_work(tp); 1765 + 1766 + pm_runtime_put_noidle(d); 1759 1767 } 1760 1768 1761 1769 static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts) ··· 1853 1845 static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) 1854 1846 { 1855 1847 struct rtl8169_private *tp = netdev_priv(dev); 1848 + struct device *d = &tp->pci_dev->dev; 1849 + 1850 + pm_runtime_get_noresume(d); 1856 1851 1857 1852 rtl_lock_work(tp); 1858 1853 ··· 1863 1852 tp->features |= RTL_FEATURE_WOL; 1864 1853 else 1865 1854 tp->features &= ~RTL_FEATURE_WOL; 1866 - __rtl8169_set_wol(tp, wol->wolopts); 1855 + if (pm_runtime_active(d)) 1856 + __rtl8169_set_wol(tp, wol->wolopts); 1857 + else 1858 + tp->saved_wolopts = wol->wolopts; 1867 1859 1868 1860 rtl_unlock_work(tp); 1869 1861 1870 1862 device_set_wakeup_enable(&tp->pci_dev->dev, wol->wolopts); 1863 + 1864 + pm_runtime_put_noidle(d); 1871 1865 1872 1866 return 0; 1873 1867 } ··· 2308 2292 struct ethtool_stats *stats, u64 *data) 2309 2293 { 2310 2294 struct rtl8169_private *tp = netdev_priv(dev); 2295 + struct device *d = &tp->pci_dev->dev; 2311 2296 struct rtl8169_counters *counters = tp->counters; 2312 2297 2313 2298 ASSERT_RTNL(); 2314 2299 2315 - rtl8169_update_counters(dev); 2300 + pm_runtime_get_noresume(d); 2301 + 2302 + if (pm_runtime_active(d)) 2303 + rtl8169_update_counters(dev); 2304 + 2305 + pm_runtime_put_noidle(d); 2316 2306 2317 2307 data[0] = le64_to_cpu(counters->tx_packets); 2318 2308 data[1] = le64_to_cpu(counters->rx_packets); ··· 4480 4458 static int rtl_set_mac_address(struct net_device *dev, void *p) 4481 4459 { 4482 4460 struct rtl8169_private *tp = netdev_priv(dev); 4461 + struct device *d = &tp->pci_dev->dev; 4483 4462 struct sockaddr *addr = p; 4484 4463 4485 4464 if (!is_valid_ether_addr(addr->sa_data)) ··· 4488 4465 4489 4466 memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); 4490 4467 4491 - rtl_rar_set(tp, dev->dev_addr); 4468 + pm_runtime_get_noresume(d); 4469 + 4470 + if (pm_runtime_active(d)) 4471 + rtl_rar_set(tp, dev->dev_addr); 4472 + 4473 + pm_runtime_put_noidle(d); 4492 4474 4493 4475 return 0; 4494 4476 } ··· 7896 7868 struct pci_dev *pdev = to_pci_dev(device); 7897 7869 struct net_device *dev = pci_get_drvdata(pdev); 7898 7870 struct rtl8169_private *tp = netdev_priv(dev); 7871 + rtl_rar_set(tp, dev->dev_addr); 7899 7872 7900 7873 if (!tp->TxDescArray) 7901 7874 return 0;
+1
drivers/net/ethernet/renesas/ravb_main.c
··· 1005 1005 } 1006 1006 phydev = of_phy_connect(ndev, pn, ravb_adjust_link, 0, 1007 1007 priv->phy_interface); 1008 + of_node_put(pn); 1008 1009 if (!phydev) { 1009 1010 netdev_err(ndev, "failed to connect PHY\n"); 1010 1011 return -ENOENT;
+1
drivers/net/ethernet/renesas/sh_eth.c
··· 1780 1780 sh_eth_adjust_link, 0, 1781 1781 mdp->phy_interface); 1782 1782 1783 + of_node_put(pn); 1783 1784 if (!phydev) 1784 1785 phydev = ERR_PTR(-ENOENT); 1785 1786 } else {
+26 -10
drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
··· 135 135 136 136 np_splitter = of_parse_phandle(np, "altr,emac-splitter", 0); 137 137 if (np_splitter) { 138 - if (of_address_to_resource(np_splitter, 0, &res_splitter)) { 138 + ret = of_address_to_resource(np_splitter, 0, &res_splitter); 139 + of_node_put(np_splitter); 140 + if (ret) { 139 141 dev_info(dev, "Missing emac splitter address\n"); 140 142 return -EINVAL; 141 143 } ··· 161 159 dev_err(dev, 162 160 "%s: ERROR: missing emac splitter address\n", 163 161 __func__); 164 - return -EINVAL; 162 + ret = -EINVAL; 163 + goto err_node_put; 165 164 } 166 165 167 166 dwmac->splitter_base = 168 167 devm_ioremap_resource(dev, &res_splitter); 169 168 170 - if (IS_ERR(dwmac->splitter_base)) 171 - return PTR_ERR(dwmac->splitter_base); 169 + if (IS_ERR(dwmac->splitter_base)) { 170 + ret = PTR_ERR(dwmac->splitter_base); 171 + goto err_node_put; 172 + } 172 173 } 173 174 174 175 index = of_property_match_string(np_sgmii_adapter, "reg-names", ··· 183 178 dev_err(dev, 184 179 "%s: ERROR: failed mapping adapter\n", 185 180 __func__); 186 - return -EINVAL; 181 + ret = -EINVAL; 182 + goto err_node_put; 187 183 } 188 184 189 185 dwmac->pcs.sgmii_adapter_base = 190 186 devm_ioremap_resource(dev, &res_sgmii_adapter); 191 187 192 - if (IS_ERR(dwmac->pcs.sgmii_adapter_base)) 193 - return PTR_ERR(dwmac->pcs.sgmii_adapter_base); 188 + if (IS_ERR(dwmac->pcs.sgmii_adapter_base)) { 189 + ret = PTR_ERR(dwmac->pcs.sgmii_adapter_base); 190 + goto err_node_put; 191 + } 194 192 } 195 193 196 194 index = of_property_match_string(np_sgmii_adapter, "reg-names", ··· 205 197 dev_err(dev, 206 198 "%s: ERROR: failed mapping tse control port\n", 207 199 __func__); 208 - return -EINVAL; 200 + ret = -EINVAL; 201 + goto err_node_put; 209 202 } 210 203 211 204 dwmac->pcs.tse_pcs_base = 212 205 devm_ioremap_resource(dev, &res_tse_pcs); 213 206 214 - if (IS_ERR(dwmac->pcs.tse_pcs_base)) 215 - return PTR_ERR(dwmac->pcs.tse_pcs_base); 207 + if (IS_ERR(dwmac->pcs.tse_pcs_base)) { 208 + ret = PTR_ERR(dwmac->pcs.tse_pcs_base); 209 + goto err_node_put; 210 + } 216 211 } 217 212 } 218 213 dwmac->reg_offset = reg_offset; 219 214 dwmac->reg_shift = reg_shift; 220 215 dwmac->sys_mgr_base_addr = sys_mgr_base_addr; 221 216 dwmac->dev = dev; 217 + of_node_put(np_sgmii_adapter); 222 218 223 219 return 0; 220 + 221 + err_node_put: 222 + of_node_put(np_sgmii_adapter); 223 + return ret; 224 224 } 225 225 226 226 static int socfpga_dwmac_set_phy_mode(struct socfpga_dwmac *dwmac)
+1
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
··· 3397 3397 stmmac_set_mac(priv->ioaddr, false); 3398 3398 netif_carrier_off(ndev); 3399 3399 unregister_netdev(ndev); 3400 + of_node_put(priv->plat->phy_node); 3400 3401 if (priv->stmmac_rst) 3401 3402 reset_control_assert(priv->stmmac_rst); 3402 3403 clk_disable_unprepare(priv->pclk);
+5 -2
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
··· 113 113 return NULL; 114 114 115 115 axi = kzalloc(sizeof(*axi), GFP_KERNEL); 116 - if (!axi) 116 + if (!axi) { 117 + of_node_put(np); 117 118 return ERR_PTR(-ENOMEM); 119 + } 118 120 119 121 axi->axi_lpi_en = of_property_read_bool(np, "snps,lpi_en"); 120 122 axi->axi_xit_frm = of_property_read_bool(np, "snps,xit_frm"); ··· 129 127 of_property_read_u32(np, "snps,wr_osr_lmt", &axi->axi_wr_osr_lmt); 130 128 of_property_read_u32(np, "snps,rd_osr_lmt", &axi->axi_rd_osr_lmt); 131 129 of_property_read_u32_array(np, "snps,blen", axi->axi_blen, AXI_BLEN); 130 + of_node_put(np); 132 131 133 132 return axi; 134 133 } ··· 305 302 dma_cfg = devm_kzalloc(&pdev->dev, sizeof(*dma_cfg), 306 303 GFP_KERNEL); 307 304 if (!dma_cfg) { 308 - of_node_put(np); 305 + of_node_put(plat->phy_node); 309 306 return ERR_PTR(-ENOMEM); 310 307 } 311 308 plat->dma_cfg = dma_cfg;
+9 -10
drivers/net/ethernet/ti/cpsw.c
··· 2564 2564 return ret; 2565 2565 } 2566 2566 2567 - static int cpsw_remove_child_device(struct device *dev, void *c) 2568 - { 2569 - struct platform_device *pdev = to_platform_device(dev); 2570 - 2571 - of_device_unregister(pdev); 2572 - 2573 - return 0; 2574 - } 2575 - 2576 2567 static int cpsw_remove(struct platform_device *pdev) 2577 2568 { 2578 2569 struct net_device *ndev = platform_get_drvdata(pdev); 2579 2570 struct cpsw_priv *priv = netdev_priv(ndev); 2571 + int ret; 2572 + 2573 + ret = pm_runtime_get_sync(&pdev->dev); 2574 + if (ret < 0) { 2575 + pm_runtime_put_noidle(&pdev->dev); 2576 + return ret; 2577 + } 2580 2578 2581 2579 if (priv->data.dual_emac) 2582 2580 unregister_netdev(cpsw_get_slave_ndev(priv, 1)); ··· 2582 2584 2583 2585 cpsw_ale_destroy(priv->ale); 2584 2586 cpdma_ctlr_destroy(priv->dma); 2587 + of_platform_depopulate(&pdev->dev); 2588 + pm_runtime_put_sync(&pdev->dev); 2585 2589 pm_runtime_disable(&pdev->dev); 2586 - device_for_each_child(&pdev->dev, NULL, cpsw_remove_child_device); 2587 2590 if (priv->data.dual_emac) 2588 2591 free_netdev(cpsw_get_slave_ndev(priv, 1)); 2589 2592 free_netdev(ndev);
-3
drivers/net/ethernet/ti/davinci_cpdma.c
··· 357 357 358 358 int cpdma_ctlr_destroy(struct cpdma_ctlr *ctlr) 359 359 { 360 - unsigned long flags; 361 360 int ret = 0, i; 362 361 363 362 if (!ctlr) 364 363 return -EINVAL; 365 364 366 - spin_lock_irqsave(&ctlr->lock, flags); 367 365 if (ctlr->state != CPDMA_STATE_IDLE) 368 366 cpdma_ctlr_stop(ctlr); 369 367 ··· 369 371 cpdma_chan_destroy(ctlr->channels[i]); 370 372 371 373 cpdma_desc_pool_destroy(ctlr->pool); 372 - spin_unlock_irqrestore(&ctlr->lock, flags); 373 374 return ret; 374 375 } 375 376 EXPORT_SYMBOL_GPL(cpdma_ctlr_destroy);
+1
drivers/net/ethernet/ti/davinci_emac.c
··· 1964 1964 cpdma_ctlr_destroy(priv->dma); 1965 1965 1966 1966 unregister_netdev(ndev); 1967 + of_node_put(priv->phy_node); 1967 1968 pm_runtime_disable(&pdev->dev); 1968 1969 free_netdev(ndev); 1969 1970
+11 -5
drivers/net/macsec.c
··· 344 344 345 345 crypto_free_aead(sa->key.tfm); 346 346 free_percpu(sa->stats); 347 - macsec_rxsc_put(sa->sc); 348 347 kfree(sa); 349 348 } 350 349 ··· 862 863 struct net_device *dev = skb->dev; 863 864 struct macsec_dev *macsec = macsec_priv(dev); 864 865 struct macsec_rx_sa *rx_sa = macsec_skb_cb(skb)->rx_sa; 866 + struct macsec_rx_sc *rx_sc = rx_sa->sc; 865 867 int len, ret; 866 868 u32 pn; 867 869 ··· 891 891 892 892 out: 893 893 macsec_rxsa_put(rx_sa); 894 + macsec_rxsc_put(rx_sc); 894 895 dev_put(dev); 895 896 } 896 897 ··· 1107 1106 1108 1107 list_for_each_entry_rcu(macsec, &rxd->secys, secys) { 1109 1108 struct macsec_rx_sc *sc = find_rx_sc(&macsec->secy, sci); 1109 + sc = sc ? macsec_rxsc_get(sc) : NULL; 1110 1110 1111 1111 if (sc) { 1112 1112 secy = &macsec->secy; ··· 1182 1180 1183 1181 if (IS_ERR(skb)) { 1184 1182 /* the decrypt callback needs the reference */ 1185 - if (PTR_ERR(skb) != -EINPROGRESS) 1183 + if (PTR_ERR(skb) != -EINPROGRESS) { 1186 1184 macsec_rxsa_put(rx_sa); 1185 + macsec_rxsc_put(rx_sc); 1186 + } 1187 1187 rcu_read_unlock(); 1188 1188 *pskb = NULL; 1189 1189 return RX_HANDLER_CONSUMED; ··· 1201 1197 1202 1198 if (rx_sa) 1203 1199 macsec_rxsa_put(rx_sa); 1200 + macsec_rxsc_put(rx_sc); 1204 1201 1205 1202 ret = gro_cells_receive(&macsec->gro_cells, skb); 1206 1203 if (ret == NET_RX_SUCCESS) ··· 1217 1212 drop: 1218 1213 macsec_rxsa_put(rx_sa); 1219 1214 drop_nosa: 1215 + macsec_rxsc_put(rx_sc); 1220 1216 rcu_read_unlock(); 1221 1217 drop_direct: 1222 1218 kfree_skb(skb); ··· 1652 1646 1653 1647 rtnl_lock(); 1654 1648 rx_sc = get_rxsc_from_nl(genl_info_net(info), attrs, tb_rxsc, &dev, &secy); 1655 - if (IS_ERR(rx_sc) || !macsec_rxsc_get(rx_sc)) { 1649 + if (IS_ERR(rx_sc)) { 1656 1650 rtnl_unlock(); 1657 1651 return PTR_ERR(rx_sc); 1658 1652 } ··· 3179 3173 if (err < 0) 3180 3174 return err; 3181 3175 3176 + dev_hold(real_dev); 3177 + 3182 3178 /* need to be already registered so that ->init has run and 3183 3179 * the MAC addr is set 3184 3180 */ ··· 3208 3200 goto del_dev; 3209 3201 3210 3202 macsec_generation++; 3211 - 3212 - dev_hold(real_dev); 3213 3203 3214 3204 return 0; 3215 3205
+1 -3
drivers/net/phy/mdio-xgene.c
··· 345 345 346 346 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 347 347 csr_base = devm_ioremap_resource(dev, res); 348 - if (IS_ERR(csr_base)) { 349 - dev_err(dev, "Unable to retrieve mac CSR region\n"); 348 + if (IS_ERR(csr_base)) 350 349 return PTR_ERR(csr_base); 351 - } 352 350 pdata->mac_csr_addr = csr_base; 353 351 pdata->mdio_csr_addr = csr_base + BLOCK_XG_MDIO_CSR_OFFSET; 354 352 pdata->diag_csr_addr = csr_base + BLOCK_DIAG_CSR_OFFSET;
+2 -2
drivers/net/phy/micrel.c
··· 869 869 }, { 870 870 .phy_id = PHY_ID_KSZ8001, 871 871 .name = "Micrel KSZ8001 or KS8721", 872 - .phy_id_mask = 0x00ffffff, 872 + .phy_id_mask = 0x00fffffc, 873 873 .features = (PHY_BASIC_FEATURES | SUPPORTED_Pause), 874 874 .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, 875 875 .driver_data = &ksz8041_type, ··· 993 993 static struct mdio_device_id __maybe_unused micrel_tbl[] = { 994 994 { PHY_ID_KSZ9021, 0x000ffffe }, 995 995 { PHY_ID_KSZ9031, MICREL_PHY_ID_MASK }, 996 - { PHY_ID_KSZ8001, 0x00ffffff }, 996 + { PHY_ID_KSZ8001, 0x00fffffc }, 997 997 { PHY_ID_KS8737, MICREL_PHY_ID_MASK }, 998 998 { PHY_ID_KSZ8021, 0x00ffffff }, 999 999 { PHY_ID_KSZ8031, 0x00ffffff },
+2 -1
drivers/net/wan/fsl_ucc_hdlc.c
··· 862 862 static int uhdlc_resume(struct device *dev) 863 863 { 864 864 struct ucc_hdlc_private *priv = dev_get_drvdata(dev); 865 - struct ucc_tdm *utdm = priv->utdm; 865 + struct ucc_tdm *utdm; 866 866 struct ucc_tdm_info *ut_info; 867 867 struct ucc_fast __iomem *uf_regs; 868 868 struct ucc_fast_private *uccf; ··· 877 877 if (!netif_running(priv->ndev)) 878 878 return 0; 879 879 880 + utdm = priv->utdm; 880 881 ut_info = priv->ut_info; 881 882 uf_info = &ut_info->uf_info; 882 883 uf_regs = priv->uf_regs;
+1 -1
include/net/sctp/constants.h
··· 214 214 SCTP_SS_LISTENING = TCP_LISTEN, 215 215 SCTP_SS_ESTABLISHING = TCP_SYN_SENT, 216 216 SCTP_SS_ESTABLISHED = TCP_ESTABLISHED, 217 - SCTP_SS_CLOSING = TCP_CLOSING, 217 + SCTP_SS_CLOSING = TCP_CLOSE_WAIT, 218 218 } sctp_sock_state_t; 219 219 220 220 /* These functions map various type to printable names. */
+2 -1
net/ipv4/tcp_output.c
··· 236 236 /* Set window scaling on max possible window 237 237 * See RFC1323 for an explanation of the limit to 14 238 238 */ 239 - space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max); 239 + space = max_t(u32, space, sysctl_tcp_rmem[2]); 240 + space = max_t(u32, space, sysctl_rmem_max); 240 241 space = min_t(u32, space, *window_clamp); 241 242 while (space > 65535 && (*rcv_wscale) < 14) { 242 243 space >>= 1;
+1 -2
net/ipv6/addrconf.c
··· 3624 3624 state = ifa->state; 3625 3625 ifa->state = INET6_IFADDR_STATE_DEAD; 3626 3626 3627 - list_del(&ifa->if_list); 3628 - list_add(&ifa->if_list, &del_list); 3627 + list_move(&ifa->if_list, &del_list); 3629 3628 } 3630 3629 3631 3630 spin_unlock_bh(&ifa->lock);
+2 -1
net/sctp/output.c
··· 610 610 /* We will generate more packets, so re-queue 611 611 * auth chunk. 612 612 */ 613 - list_add(&chunk->list, &packet->chunk_list); 613 + list_add(&packet->auth->list, 614 + &packet->chunk_list); 614 615 } else { 615 616 sctp_chunk_free(packet->auth); 616 617 packet->auth = NULL;
+1 -1
net/sctp/socket.c
··· 2079 2079 lock_sock(sk); 2080 2080 2081 2081 if (sctp_style(sk, TCP) && !sctp_sstate(sk, ESTABLISHED) && 2082 - !sctp_sstate(sk, CLOSING)) { 2082 + !sctp_sstate(sk, CLOSING) && !sctp_sstate(sk, CLOSED)) { 2083 2083 err = -ENOTCONN; 2084 2084 goto out; 2085 2085 }
+3 -1
net/sctp/ulpqueue.c
··· 204 204 /* If the socket is just going to throw this away, do not 205 205 * even try to deliver it. 206 206 */ 207 - if (sock_flag(sk, SOCK_DEAD) || (sk->sk_shutdown & RCV_SHUTDOWN)) 207 + if (sk->sk_shutdown & RCV_SHUTDOWN && 208 + (sk->sk_shutdown & SEND_SHUTDOWN || 209 + !sctp_ulpevent_is_notification(event))) 208 210 goto out_free; 209 211 210 212 if (!sctp_ulpevent_is_notification(event)) {
+1 -1
net/tipc/monitor.c
··· 794 794 return 0; 795 795 796 796 attr_msg_full: 797 + read_unlock_bh(&mon->lock); 797 798 nla_nest_cancel(msg->skb, attrs); 798 799 msg_full: 799 800 genlmsg_cancel(msg->skb, hdr); 800 - read_unlock_bh(&mon->lock); 801 801 802 802 return -EMSGSIZE; 803 803 }