Loading MAINTAINERS +7 −0 Original line number Original line Diff line number Diff line Loading @@ -3643,6 +3643,13 @@ F: Documentation/blockdev/nbd.txt F: drivers/block/nbd.c F: drivers/block/nbd.c F: include/linux/nbd.h F: include/linux/nbd.h NETWORK DROP MONITOR M: Neil Horman <nhorman@tuxdriver.com> L: netdev@vger.kernel.org S: Maintained W: https://fedorahosted.org/dropwatch/ F: net/core/drop_monitor.c NETWORKING [GENERAL] NETWORKING [GENERAL] M: "David S. Miller" <davem@davemloft.net> M: "David S. Miller" <davem@davemloft.net> L: netdev@vger.kernel.org L: netdev@vger.kernel.org Loading drivers/net/Makefile +4 −4 Original line number Original line Diff line number Diff line Loading @@ -2,6 +2,10 @@ # Makefile for the Linux network (ethercard) device drivers. # Makefile for the Linux network (ethercard) device drivers. # # obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_MDIO) += mdio.o obj-$(CONFIG_PHYLIB) += phy/ obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o obj-$(CONFIG_E1000) += e1000/ obj-$(CONFIG_E1000) += e1000/ Loading Loading @@ -100,10 +104,6 @@ obj-$(CONFIG_SH_ETH) += sh_eth.o # end link order section # end link order section # # obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_MDIO) += mdio.o obj-$(CONFIG_PHYLIB) += phy/ obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_HAMACHI) += hamachi.o obj-$(CONFIG_HAMACHI) += hamachi.o obj-$(CONFIG_NET) += Space.o loopback.o obj-$(CONFIG_NET) += Space.o loopback.o Loading drivers/net/au1000_eth.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -721,7 +721,7 @@ static inline void update_rx_stats(struct net_device *dev, u32 status) ps->rx_errors++; ps->rx_errors++; if (status & RX_MISSED_FRAME) if (status & RX_MISSED_FRAME) ps->rx_missed_errors++; ps->rx_missed_errors++; if (status & (RX_OVERLEN | RX_OVERLEN | RX_LEN_ERROR)) if (status & (RX_OVERLEN | RX_RUNT | RX_LEN_ERROR)) ps->rx_length_errors++; ps->rx_length_errors++; if (status & RX_CRC_ERROR) if (status & RX_CRC_ERROR) ps->rx_crc_errors++; ps->rx_crc_errors++; Loading Loading @@ -794,8 +794,6 @@ static int au1000_rx(struct net_device *dev) printk("rx len error\n"); printk("rx len error\n"); if (status & RX_U_CNTRL_FRAME) if (status & RX_U_CNTRL_FRAME) printk("rx u control frame\n"); printk("rx u control frame\n"); if (status & RX_MISSED_FRAME) printk("rx miss\n"); } } } } prxd->buff_stat = (u32)(pDB->dma_addr | RX_DMA_ENABLE); prxd->buff_stat = (u32)(pDB->dma_addr | RX_DMA_ENABLE); Loading drivers/net/ethoc.c +54 −27 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,10 @@ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <net/ethoc.h> #include <net/ethoc.h> static int buffer_size = 0x8000; /* 32 KBytes */ module_param(buffer_size, int, 0); MODULE_PARM_DESC(buffer_size, "DMA buffer allocation size"); /* register offsets */ /* register offsets */ #define MODER 0x00 #define MODER 0x00 #define INT_SOURCE 0x04 #define INT_SOURCE 0x04 Loading Loading @@ -167,6 +171,7 @@ * struct ethoc - driver-private device structure * struct ethoc - driver-private device structure * @iobase: pointer to I/O memory region * @iobase: pointer to I/O memory region * @membase: pointer to buffer memory region * @membase: pointer to buffer memory region * @dma_alloc: dma allocated buffer size * @num_tx: number of send buffers * @num_tx: number of send buffers * @cur_tx: last send buffer written * @cur_tx: last send buffer written * @dty_tx: last buffer actually sent * @dty_tx: last buffer actually sent Loading @@ -185,6 +190,7 @@ struct ethoc { struct ethoc { void __iomem *iobase; void __iomem *iobase; void __iomem *membase; void __iomem *membase; int dma_alloc; unsigned int num_tx; unsigned int num_tx; unsigned int cur_tx; unsigned int cur_tx; Loading Loading @@ -284,7 +290,7 @@ static int ethoc_init_ring(struct ethoc *dev) dev->cur_rx = 0; dev->cur_rx = 0; /* setup transmission buffers */ /* setup transmission buffers */ bd.addr = 0; bd.addr = virt_to_phys(dev->membase); bd.stat = TX_BD_IRQ | TX_BD_CRC; bd.stat = TX_BD_IRQ | TX_BD_CRC; for (i = 0; i < dev->num_tx; i++) { for (i = 0; i < dev->num_tx; i++) { Loading @@ -295,7 +301,6 @@ static int ethoc_init_ring(struct ethoc *dev) bd.addr += ETHOC_BUFSIZ; bd.addr += ETHOC_BUFSIZ; } } bd.addr = dev->num_tx * ETHOC_BUFSIZ; bd.stat = RX_BD_EMPTY | RX_BD_IRQ; bd.stat = RX_BD_EMPTY | RX_BD_IRQ; for (i = 0; i < dev->num_rx; i++) { for (i = 0; i < dev->num_rx; i++) { Loading Loading @@ -400,8 +405,12 @@ static int ethoc_rx(struct net_device *dev, int limit) if (ethoc_update_rx_stats(priv, &bd) == 0) { if (ethoc_update_rx_stats(priv, &bd) == 0) { int size = bd.stat >> 16; int size = bd.stat >> 16; struct sk_buff *skb = netdev_alloc_skb(dev, size); struct sk_buff *skb = netdev_alloc_skb(dev, size); size -= 4; /* strip the CRC */ skb_reserve(skb, 2); /* align TCP/IP header */ if (likely(skb)) { if (likely(skb)) { void *src = priv->membase + bd.addr; void *src = phys_to_virt(bd.addr); memcpy_fromio(skb_put(skb, size), src, size); memcpy_fromio(skb_put(skb, size), src, size); skb->protocol = eth_type_trans(skb, dev); skb->protocol = eth_type_trans(skb, dev); priv->stats.rx_packets++; priv->stats.rx_packets++; Loading Loading @@ -653,9 +662,9 @@ static int ethoc_open(struct net_device *dev) if (ret) if (ret) return ret; return ret; /* calculate the number of TX/RX buffers */ /* calculate the number of TX/RX buffers, maximum 128 supported */ num_bd = (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ; num_bd = min(128, (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ); priv->num_tx = min(min_tx, num_bd / 4); priv->num_tx = max(min_tx, num_bd / 4); priv->num_rx = num_bd - priv->num_tx; priv->num_rx = num_bd - priv->num_tx; ethoc_write(priv, TX_BD_NUM, priv->num_tx); ethoc_write(priv, TX_BD_NUM, priv->num_tx); Loading Loading @@ -823,7 +832,7 @@ static netdev_tx_t ethoc_start_xmit(struct sk_buff *skb, struct net_device *dev) else else bd.stat &= ~TX_BD_PAD; bd.stat &= ~TX_BD_PAD; dest = priv->membase + bd.addr; dest = phys_to_virt(bd.addr); memcpy_toio(dest, skb->data, skb->len); memcpy_toio(dest, skb->data, skb->len); bd.stat &= ~(TX_BD_STATS | TX_BD_LEN_MASK); bd.stat &= ~(TX_BD_STATS | TX_BD_LEN_MASK); Loading Loading @@ -903,12 +912,7 @@ static int ethoc_probe(struct platform_device *pdev) /* obtain buffer memory space */ /* obtain buffer memory space */ res = platform_get_resource(pdev, IORESOURCE_MEM, 1); res = platform_get_resource(pdev, IORESOURCE_MEM, 1); if (!res) { if (res) { dev_err(&pdev->dev, "cannot obtain memory space\n"); ret = -ENXIO; goto free; } mem = devm_request_mem_region(&pdev->dev, res->start, mem = devm_request_mem_region(&pdev->dev, res->start, res->end - res->start + 1, res->name); res->end - res->start + 1, res->name); if (!mem) { if (!mem) { Loading @@ -919,6 +923,8 @@ static int ethoc_probe(struct platform_device *pdev) netdev->mem_start = mem->start; netdev->mem_start = mem->start; netdev->mem_end = mem->end; netdev->mem_end = mem->end; } /* obtain device IRQ number */ /* obtain device IRQ number */ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); Loading @@ -933,6 +939,7 @@ static int ethoc_probe(struct platform_device *pdev) /* setup driver-private data */ /* setup driver-private data */ priv = netdev_priv(netdev); priv = netdev_priv(netdev); priv->netdev = netdev; priv->netdev = netdev; priv->dma_alloc = 0; priv->iobase = devm_ioremap_nocache(&pdev->dev, netdev->base_addr, priv->iobase = devm_ioremap_nocache(&pdev->dev, netdev->base_addr, mmio->end - mmio->start + 1); mmio->end - mmio->start + 1); Loading @@ -942,13 +949,28 @@ static int ethoc_probe(struct platform_device *pdev) goto error; goto error; } } priv->membase = devm_ioremap_nocache(&pdev->dev, netdev->mem_start, if (netdev->mem_end) { mem->end - mem->start + 1); priv->membase = devm_ioremap_nocache(&pdev->dev, netdev->mem_start, mem->end - mem->start + 1); if (!priv->membase) { if (!priv->membase) { dev_err(&pdev->dev, "cannot remap memory space\n"); dev_err(&pdev->dev, "cannot remap memory space\n"); ret = -ENXIO; ret = -ENXIO; goto error; goto error; } } } else { /* Allocate buffer memory */ priv->membase = dma_alloc_coherent(NULL, buffer_size, (void *)&netdev->mem_start, GFP_KERNEL); if (!priv->membase) { dev_err(&pdev->dev, "cannot allocate %dB buffer\n", buffer_size); ret = -ENOMEM; goto error; } netdev->mem_end = netdev->mem_start + buffer_size; priv->dma_alloc = buffer_size; } /* Allow the platform setup code to pass in a MAC address. */ /* Allow the platform setup code to pass in a MAC address. */ if (pdev->dev.platform_data) { if (pdev->dev.platform_data) { Loading Loading @@ -1034,6 +1056,9 @@ static int ethoc_probe(struct platform_device *pdev) kfree(priv->mdio->irq); kfree(priv->mdio->irq); mdiobus_free(priv->mdio); mdiobus_free(priv->mdio); free: free: if (priv->dma_alloc) dma_free_coherent(NULL, priv->dma_alloc, priv->membase, netdev->mem_start); free_netdev(netdev); free_netdev(netdev); out: out: return ret; return ret; Loading @@ -1059,7 +1084,9 @@ static int ethoc_remove(struct platform_device *pdev) kfree(priv->mdio->irq); kfree(priv->mdio->irq); mdiobus_free(priv->mdio); mdiobus_free(priv->mdio); } } if (priv->dma_alloc) dma_free_coherent(NULL, priv->dma_alloc, priv->membase, netdev->mem_start); unregister_netdev(netdev); unregister_netdev(netdev); free_netdev(netdev); free_netdev(netdev); } } Loading drivers/net/ibm_newemac/core.c +5 −2 Original line number Original line Diff line number Diff line Loading @@ -443,7 +443,7 @@ static u32 __emac_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_s ret |= EMAC_MR1_TFS_2K; ret |= EMAC_MR1_TFS_2K; break; break; default: default: printk(KERN_WARNING "%s: Unknown Rx FIFO size %d\n", printk(KERN_WARNING "%s: Unknown Tx FIFO size %d\n", dev->ndev->name, tx_size); dev->ndev->name, tx_size); } } Loading @@ -470,6 +470,9 @@ static u32 __emac4_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_ DBG2(dev, "__emac4_calc_base_mr1" NL); DBG2(dev, "__emac4_calc_base_mr1" NL); switch(tx_size) { switch(tx_size) { case 16384: ret |= EMAC4_MR1_TFS_16K; break; case 4096: case 4096: ret |= EMAC4_MR1_TFS_4K; ret |= EMAC4_MR1_TFS_4K; break; break; Loading @@ -477,7 +480,7 @@ static u32 __emac4_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_ ret |= EMAC4_MR1_TFS_2K; ret |= EMAC4_MR1_TFS_2K; break; break; default: default: printk(KERN_WARNING "%s: Unknown Rx FIFO size %d\n", printk(KERN_WARNING "%s: Unknown Tx FIFO size %d\n", dev->ndev->name, tx_size); dev->ndev->name, tx_size); } } Loading Loading
MAINTAINERS +7 −0 Original line number Original line Diff line number Diff line Loading @@ -3643,6 +3643,13 @@ F: Documentation/blockdev/nbd.txt F: drivers/block/nbd.c F: drivers/block/nbd.c F: include/linux/nbd.h F: include/linux/nbd.h NETWORK DROP MONITOR M: Neil Horman <nhorman@tuxdriver.com> L: netdev@vger.kernel.org S: Maintained W: https://fedorahosted.org/dropwatch/ F: net/core/drop_monitor.c NETWORKING [GENERAL] NETWORKING [GENERAL] M: "David S. Miller" <davem@davemloft.net> M: "David S. Miller" <davem@davemloft.net> L: netdev@vger.kernel.org L: netdev@vger.kernel.org Loading
drivers/net/Makefile +4 −4 Original line number Original line Diff line number Diff line Loading @@ -2,6 +2,10 @@ # Makefile for the Linux network (ethercard) device drivers. # Makefile for the Linux network (ethercard) device drivers. # # obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_MDIO) += mdio.o obj-$(CONFIG_PHYLIB) += phy/ obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o obj-$(CONFIG_E1000) += e1000/ obj-$(CONFIG_E1000) += e1000/ Loading Loading @@ -100,10 +104,6 @@ obj-$(CONFIG_SH_ETH) += sh_eth.o # end link order section # end link order section # # obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_MDIO) += mdio.o obj-$(CONFIG_PHYLIB) += phy/ obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_HAMACHI) += hamachi.o obj-$(CONFIG_HAMACHI) += hamachi.o obj-$(CONFIG_NET) += Space.o loopback.o obj-$(CONFIG_NET) += Space.o loopback.o Loading
drivers/net/au1000_eth.c +1 −3 Original line number Original line Diff line number Diff line Loading @@ -721,7 +721,7 @@ static inline void update_rx_stats(struct net_device *dev, u32 status) ps->rx_errors++; ps->rx_errors++; if (status & RX_MISSED_FRAME) if (status & RX_MISSED_FRAME) ps->rx_missed_errors++; ps->rx_missed_errors++; if (status & (RX_OVERLEN | RX_OVERLEN | RX_LEN_ERROR)) if (status & (RX_OVERLEN | RX_RUNT | RX_LEN_ERROR)) ps->rx_length_errors++; ps->rx_length_errors++; if (status & RX_CRC_ERROR) if (status & RX_CRC_ERROR) ps->rx_crc_errors++; ps->rx_crc_errors++; Loading Loading @@ -794,8 +794,6 @@ static int au1000_rx(struct net_device *dev) printk("rx len error\n"); printk("rx len error\n"); if (status & RX_U_CNTRL_FRAME) if (status & RX_U_CNTRL_FRAME) printk("rx u control frame\n"); printk("rx u control frame\n"); if (status & RX_MISSED_FRAME) printk("rx miss\n"); } } } } prxd->buff_stat = (u32)(pDB->dma_addr | RX_DMA_ENABLE); prxd->buff_stat = (u32)(pDB->dma_addr | RX_DMA_ENABLE); Loading
drivers/net/ethoc.c +54 −27 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,10 @@ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <net/ethoc.h> #include <net/ethoc.h> static int buffer_size = 0x8000; /* 32 KBytes */ module_param(buffer_size, int, 0); MODULE_PARM_DESC(buffer_size, "DMA buffer allocation size"); /* register offsets */ /* register offsets */ #define MODER 0x00 #define MODER 0x00 #define INT_SOURCE 0x04 #define INT_SOURCE 0x04 Loading Loading @@ -167,6 +171,7 @@ * struct ethoc - driver-private device structure * struct ethoc - driver-private device structure * @iobase: pointer to I/O memory region * @iobase: pointer to I/O memory region * @membase: pointer to buffer memory region * @membase: pointer to buffer memory region * @dma_alloc: dma allocated buffer size * @num_tx: number of send buffers * @num_tx: number of send buffers * @cur_tx: last send buffer written * @cur_tx: last send buffer written * @dty_tx: last buffer actually sent * @dty_tx: last buffer actually sent Loading @@ -185,6 +190,7 @@ struct ethoc { struct ethoc { void __iomem *iobase; void __iomem *iobase; void __iomem *membase; void __iomem *membase; int dma_alloc; unsigned int num_tx; unsigned int num_tx; unsigned int cur_tx; unsigned int cur_tx; Loading Loading @@ -284,7 +290,7 @@ static int ethoc_init_ring(struct ethoc *dev) dev->cur_rx = 0; dev->cur_rx = 0; /* setup transmission buffers */ /* setup transmission buffers */ bd.addr = 0; bd.addr = virt_to_phys(dev->membase); bd.stat = TX_BD_IRQ | TX_BD_CRC; bd.stat = TX_BD_IRQ | TX_BD_CRC; for (i = 0; i < dev->num_tx; i++) { for (i = 0; i < dev->num_tx; i++) { Loading @@ -295,7 +301,6 @@ static int ethoc_init_ring(struct ethoc *dev) bd.addr += ETHOC_BUFSIZ; bd.addr += ETHOC_BUFSIZ; } } bd.addr = dev->num_tx * ETHOC_BUFSIZ; bd.stat = RX_BD_EMPTY | RX_BD_IRQ; bd.stat = RX_BD_EMPTY | RX_BD_IRQ; for (i = 0; i < dev->num_rx; i++) { for (i = 0; i < dev->num_rx; i++) { Loading Loading @@ -400,8 +405,12 @@ static int ethoc_rx(struct net_device *dev, int limit) if (ethoc_update_rx_stats(priv, &bd) == 0) { if (ethoc_update_rx_stats(priv, &bd) == 0) { int size = bd.stat >> 16; int size = bd.stat >> 16; struct sk_buff *skb = netdev_alloc_skb(dev, size); struct sk_buff *skb = netdev_alloc_skb(dev, size); size -= 4; /* strip the CRC */ skb_reserve(skb, 2); /* align TCP/IP header */ if (likely(skb)) { if (likely(skb)) { void *src = priv->membase + bd.addr; void *src = phys_to_virt(bd.addr); memcpy_fromio(skb_put(skb, size), src, size); memcpy_fromio(skb_put(skb, size), src, size); skb->protocol = eth_type_trans(skb, dev); skb->protocol = eth_type_trans(skb, dev); priv->stats.rx_packets++; priv->stats.rx_packets++; Loading Loading @@ -653,9 +662,9 @@ static int ethoc_open(struct net_device *dev) if (ret) if (ret) return ret; return ret; /* calculate the number of TX/RX buffers */ /* calculate the number of TX/RX buffers, maximum 128 supported */ num_bd = (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ; num_bd = min(128, (dev->mem_end - dev->mem_start + 1) / ETHOC_BUFSIZ); priv->num_tx = min(min_tx, num_bd / 4); priv->num_tx = max(min_tx, num_bd / 4); priv->num_rx = num_bd - priv->num_tx; priv->num_rx = num_bd - priv->num_tx; ethoc_write(priv, TX_BD_NUM, priv->num_tx); ethoc_write(priv, TX_BD_NUM, priv->num_tx); Loading Loading @@ -823,7 +832,7 @@ static netdev_tx_t ethoc_start_xmit(struct sk_buff *skb, struct net_device *dev) else else bd.stat &= ~TX_BD_PAD; bd.stat &= ~TX_BD_PAD; dest = priv->membase + bd.addr; dest = phys_to_virt(bd.addr); memcpy_toio(dest, skb->data, skb->len); memcpy_toio(dest, skb->data, skb->len); bd.stat &= ~(TX_BD_STATS | TX_BD_LEN_MASK); bd.stat &= ~(TX_BD_STATS | TX_BD_LEN_MASK); Loading Loading @@ -903,12 +912,7 @@ static int ethoc_probe(struct platform_device *pdev) /* obtain buffer memory space */ /* obtain buffer memory space */ res = platform_get_resource(pdev, IORESOURCE_MEM, 1); res = platform_get_resource(pdev, IORESOURCE_MEM, 1); if (!res) { if (res) { dev_err(&pdev->dev, "cannot obtain memory space\n"); ret = -ENXIO; goto free; } mem = devm_request_mem_region(&pdev->dev, res->start, mem = devm_request_mem_region(&pdev->dev, res->start, res->end - res->start + 1, res->name); res->end - res->start + 1, res->name); if (!mem) { if (!mem) { Loading @@ -919,6 +923,8 @@ static int ethoc_probe(struct platform_device *pdev) netdev->mem_start = mem->start; netdev->mem_start = mem->start; netdev->mem_end = mem->end; netdev->mem_end = mem->end; } /* obtain device IRQ number */ /* obtain device IRQ number */ res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); Loading @@ -933,6 +939,7 @@ static int ethoc_probe(struct platform_device *pdev) /* setup driver-private data */ /* setup driver-private data */ priv = netdev_priv(netdev); priv = netdev_priv(netdev); priv->netdev = netdev; priv->netdev = netdev; priv->dma_alloc = 0; priv->iobase = devm_ioremap_nocache(&pdev->dev, netdev->base_addr, priv->iobase = devm_ioremap_nocache(&pdev->dev, netdev->base_addr, mmio->end - mmio->start + 1); mmio->end - mmio->start + 1); Loading @@ -942,13 +949,28 @@ static int ethoc_probe(struct platform_device *pdev) goto error; goto error; } } priv->membase = devm_ioremap_nocache(&pdev->dev, netdev->mem_start, if (netdev->mem_end) { mem->end - mem->start + 1); priv->membase = devm_ioremap_nocache(&pdev->dev, netdev->mem_start, mem->end - mem->start + 1); if (!priv->membase) { if (!priv->membase) { dev_err(&pdev->dev, "cannot remap memory space\n"); dev_err(&pdev->dev, "cannot remap memory space\n"); ret = -ENXIO; ret = -ENXIO; goto error; goto error; } } } else { /* Allocate buffer memory */ priv->membase = dma_alloc_coherent(NULL, buffer_size, (void *)&netdev->mem_start, GFP_KERNEL); if (!priv->membase) { dev_err(&pdev->dev, "cannot allocate %dB buffer\n", buffer_size); ret = -ENOMEM; goto error; } netdev->mem_end = netdev->mem_start + buffer_size; priv->dma_alloc = buffer_size; } /* Allow the platform setup code to pass in a MAC address. */ /* Allow the platform setup code to pass in a MAC address. */ if (pdev->dev.platform_data) { if (pdev->dev.platform_data) { Loading Loading @@ -1034,6 +1056,9 @@ static int ethoc_probe(struct platform_device *pdev) kfree(priv->mdio->irq); kfree(priv->mdio->irq); mdiobus_free(priv->mdio); mdiobus_free(priv->mdio); free: free: if (priv->dma_alloc) dma_free_coherent(NULL, priv->dma_alloc, priv->membase, netdev->mem_start); free_netdev(netdev); free_netdev(netdev); out: out: return ret; return ret; Loading @@ -1059,7 +1084,9 @@ static int ethoc_remove(struct platform_device *pdev) kfree(priv->mdio->irq); kfree(priv->mdio->irq); mdiobus_free(priv->mdio); mdiobus_free(priv->mdio); } } if (priv->dma_alloc) dma_free_coherent(NULL, priv->dma_alloc, priv->membase, netdev->mem_start); unregister_netdev(netdev); unregister_netdev(netdev); free_netdev(netdev); free_netdev(netdev); } } Loading
drivers/net/ibm_newemac/core.c +5 −2 Original line number Original line Diff line number Diff line Loading @@ -443,7 +443,7 @@ static u32 __emac_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_s ret |= EMAC_MR1_TFS_2K; ret |= EMAC_MR1_TFS_2K; break; break; default: default: printk(KERN_WARNING "%s: Unknown Rx FIFO size %d\n", printk(KERN_WARNING "%s: Unknown Tx FIFO size %d\n", dev->ndev->name, tx_size); dev->ndev->name, tx_size); } } Loading @@ -470,6 +470,9 @@ static u32 __emac4_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_ DBG2(dev, "__emac4_calc_base_mr1" NL); DBG2(dev, "__emac4_calc_base_mr1" NL); switch(tx_size) { switch(tx_size) { case 16384: ret |= EMAC4_MR1_TFS_16K; break; case 4096: case 4096: ret |= EMAC4_MR1_TFS_4K; ret |= EMAC4_MR1_TFS_4K; break; break; Loading @@ -477,7 +480,7 @@ static u32 __emac4_calc_base_mr1(struct emac_instance *dev, int tx_size, int rx_ ret |= EMAC4_MR1_TFS_2K; ret |= EMAC4_MR1_TFS_2K; break; break; default: default: printk(KERN_WARNING "%s: Unknown Rx FIFO size %d\n", printk(KERN_WARNING "%s: Unknown Tx FIFO size %d\n", dev->ndev->name, tx_size); dev->ndev->name, tx_size); } } Loading