Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 368184
b: refs/heads/master
c: 86c2da5
h: refs/heads/master
v: v3
  • Loading branch information
Ben Hutchings committed Mar 7, 2013
1 parent fa7e02e commit dd645c3
Show file tree
Hide file tree
Showing 141 changed files with 1,409 additions and 1,774 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e1733de2243609073534cf56afb146a62af3c3d8
refs/heads/master: 86c2da58a70e02ece910a3bba3da86d61b6aeefd
5 changes: 4 additions & 1 deletion trunk/drivers/net/caif/caif_shmcore.c
Original file line number Diff line number Diff line change
Expand Up @@ -338,8 +338,11 @@ static void shm_rx_work_func(struct work_struct *rx_work)
/* Get a suitable CAIF packet and copy in data. */
skb = netdev_alloc_skb(pshm_drv->pshm_dev->pshm_netdev,
frm_pck_len + 1);
if (skb == NULL)

if (skb == NULL) {
pr_info("OOM: Try next frame in descriptor\n");
break;
}

p = skb_put(skb, frm_pck_len);
memcpy(p, pbuf->desc_vptr + frm_pck_ofs, frm_pck_len);
Expand Down
6 changes: 4 additions & 2 deletions trunk/drivers/net/ethernet/adi/bfin_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,10 @@ static int desc_list_init(struct net_device *dev)

/* allocate a new skb for next time receive */
new_skb = netdev_alloc_skb(dev, PKT_BUF_SZ + NET_IP_ALIGN);
if (!new_skb)
if (!new_skb) {
pr_notice("init: low on mem - packet dropped\n");
goto init_error;

}
skb_reserve(new_skb, NET_IP_ALIGN);
/* Invidate the data cache of skb->data range when it is write back
* cache. It will prevent overwritting the new data from DMA
Expand Down Expand Up @@ -1235,6 +1236,7 @@ static void bfin_mac_rx(struct net_device *dev)

new_skb = netdev_alloc_skb(dev, PKT_BUF_SZ + NET_IP_ALIGN);
if (!new_skb) {
netdev_notice(dev, "rx: low on mem - packet dropped\n");
dev->stats.rx_dropped++;
goto out;
}
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/ethernet/amd/7990.c
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,8 @@ static int lance_rx (struct net_device *dev)
struct sk_buff *skb = netdev_alloc_skb(dev, len + 2);

if (!skb) {
printk ("%s: Memory squeeze, deferring packet.\n",
dev->name);
dev->stats.rx_dropped++;
rd->mblength = 0;
rd->rmd1_bits = LE_R1_OWN;
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/amd/a2065.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ static int lance_rx(struct net_device *dev)
struct sk_buff *skb = netdev_alloc_skb(dev, len + 2);

if (!skb) {
netdev_warn(dev, "Memory squeeze, deferring packet\n");
dev->stats.rx_dropped++;
rd->mblength = 0;
rd->rmd1_bits = LE_R1_OWN;
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/amd/am79c961a.c
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@ am79c961_rx(struct net_device *dev, struct dev_priv *priv)
dev->stats.rx_packets++;
} else {
am_writeword (dev, hdraddr + 2, RMD_OWN);
printk (KERN_WARNING "%s: memory squeeze, dropping packet.\n", dev->name);
dev->stats.rx_dropped++;
break;
}
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/amd/ariadne.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ static int ariadne_rx(struct net_device *dev)

skb = netdev_alloc_skb(dev, pkt_len + 2);
if (skb == NULL) {
netdev_warn(dev, "Memory squeeze, deferring packet\n");
for (i = 0; i < RX_RING_SIZE; i++)
if (lowb(priv->rx_ring[(entry + i) % RX_RING_SIZE]->RMD1) & RF_OWN)
break;
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/ethernet/amd/atarilance.c
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,8 @@ static int lance_rx( struct net_device *dev )
else {
skb = netdev_alloc_skb(dev, pkt_len + 2);
if (skb == NULL) {
DPRINTK( 1, ( "%s: Memory squeeze, deferring packet.\n",
dev->name ));
for( i = 0; i < RX_RING_SIZE; i++ )
if (MEM->rx_head[(entry+i) & RX_RING_MOD_MASK].flag &
RMD1_OWN_CHIP)
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/amd/au1000_eth.c
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,7 @@ static int au1000_rx(struct net_device *dev)
frmlen -= 4; /* Remove FCS */
skb = netdev_alloc_skb(dev, frmlen + 2);
if (skb == NULL) {
netdev_err(dev, "Memory squeeze, dropping packet.\n");
dev->stats.rx_dropped++;
continue;
}
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/net/ethernet/amd/declance.c
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,8 @@ static int lance_rx(struct net_device *dev)
skb = netdev_alloc_skb(dev, len + 2);

if (skb == 0) {
printk("%s: Memory squeeze, deferring packet.\n",
dev->name);
dev->stats.rx_dropped++;
*rds_ptr(rd, mblength, lp->type) = 0;
*rds_ptr(rd, rmd1, lp->type) =
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/ethernet/amd/pcnet32.c
Original file line number Diff line number Diff line change
Expand Up @@ -1166,6 +1166,7 @@ static void pcnet32_rx_entry(struct net_device *dev,
skb = netdev_alloc_skb(dev, pkt_len + NET_IP_ALIGN);

if (skb == NULL) {
netif_err(lp, drv, dev, "Memory squeeze, dropping packet\n");
dev->stats.rx_dropped++;
return;
}
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/net/ethernet/amd/sun3lance.c
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,9 @@ static int lance_rx( struct net_device *dev )
else {
skb = netdev_alloc_skb(dev, pkt_len + 2);
if (skb == NULL) {
DPRINTK( 1, ( "%s: Memory squeeze, deferring packet.\n",
dev->name ));

dev->stats.rx_dropped++;
head->msg_length = 0;
head->flag |= RMD1_OWN_CHIP;
Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/net/ethernet/amd/sunlance.c
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,8 @@ static void lance_rx_dvma(struct net_device *dev)
skb = netdev_alloc_skb(dev, len + 2);

if (skb == NULL) {
printk(KERN_INFO "%s: Memory squeeze, deferring packet.\n",
dev->name);
dev->stats.rx_dropped++;
rd->mblength = 0;
rd->rmd1_bits = LE_R1_OWN;
Expand Down Expand Up @@ -706,6 +708,8 @@ static void lance_rx_pio(struct net_device *dev)
skb = netdev_alloc_skb(dev, len + 2);

if (skb == NULL) {
printk(KERN_INFO "%s: Memory squeeze, deferring packet.\n",
dev->name);
dev->stats.rx_dropped++;
sbus_writew(0, &rd->mblength);
sbus_writeb(LE_R1_OWN, &rd->rmd1_bits);
Expand Down
6 changes: 4 additions & 2 deletions trunk/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1420,9 +1420,11 @@ static void atl1e_clean_rx_irq(struct atl1e_adapter *adapter, u8 que,
packet_size = ((prrs->word1 >> RRS_PKT_SIZE_SHIFT) &
RRS_PKT_SIZE_MASK) - 4; /* CRC */
skb = netdev_alloc_skb_ip_align(netdev, packet_size);
if (skb == NULL)
if (skb == NULL) {
netdev_warn(netdev,
"Memory squeeze, deferring packet\n");
goto skip_pkt;

}
memcpy(skb->data, (u8 *)(prrs + 1), packet_size);
skb_put(skb, packet_size);
skb->protocol = eth_type_trans(skb, netdev);
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/net/ethernet/atheros/atlx/atl2.c
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,9 @@ static void atl2_intr_rx(struct atl2_adapter *adapter)
/* alloc new buffer */
skb = netdev_alloc_skb_ip_align(netdev, rx_size);
if (NULL == skb) {
printk(KERN_WARNING
"%s: Mem squeeze, deferring packet.\n",
netdev->name);
/*
* Check that some rx space is free. If not,
* free one and mark stats->rx_dropped++.
Expand Down
63 changes: 47 additions & 16 deletions trunk/drivers/net/ethernet/broadcom/bcm63xx_enet.c
Original file line number Diff line number Diff line change
Expand Up @@ -1619,6 +1619,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
struct resource *res_mem, *res_irq, *res_irq_rx, *res_irq_tx;
struct mii_bus *bus;
const char *clk_name;
unsigned int iomem_size;
int i, ret;

/* stop if shared driver failed, assume driver->probe will be
Expand All @@ -1643,12 +1644,17 @@ static int bcm_enet_probe(struct platform_device *pdev)
if (ret)
goto out;

priv->base = devm_request_and_ioremap(&pdev->dev, res_mem);
if (priv->base == NULL) {
ret = -ENOMEM;
iomem_size = resource_size(res_mem);
if (!request_mem_region(res_mem->start, iomem_size, "bcm63xx_enet")) {
ret = -EBUSY;
goto out;
}

priv->base = ioremap(res_mem->start, iomem_size);
if (priv->base == NULL) {
ret = -ENOMEM;
goto out_release_mem;
}
dev->irq = priv->irq = res_irq->start;
priv->irq_rx = res_irq_rx->start;
priv->irq_tx = res_irq_tx->start;
Expand All @@ -1668,9 +1674,9 @@ static int bcm_enet_probe(struct platform_device *pdev)
priv->mac_clk = clk_get(&pdev->dev, clk_name);
if (IS_ERR(priv->mac_clk)) {
ret = PTR_ERR(priv->mac_clk);
goto out;
goto out_unmap;
}
clk_prepare_enable(priv->mac_clk);
clk_enable(priv->mac_clk);

/* initialize default and fetch platform data */
priv->rx_ring_size = BCMENET_DEF_RX_DESC;
Expand Down Expand Up @@ -1699,7 +1705,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
priv->phy_clk = NULL;
goto out_put_clk_mac;
}
clk_prepare_enable(priv->phy_clk);
clk_enable(priv->phy_clk);
}

/* do minimal hardware init to be able to probe mii bus */
Expand Down Expand Up @@ -1727,8 +1733,7 @@ static int bcm_enet_probe(struct platform_device *pdev)
* if a slave is not present on hw */
bus->phy_mask = ~(1 << priv->phy_id);

bus->irq = devm_kzalloc(&pdev->dev, sizeof(int) * PHY_MAX_ADDR,
GFP_KERNEL);
bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
if (!bus->irq) {
ret = -ENOMEM;
goto out_free_mdio;
Expand Down Expand Up @@ -1789,8 +1794,10 @@ static int bcm_enet_probe(struct platform_device *pdev)
return 0;

out_unregister_mdio:
if (priv->mii_bus)
if (priv->mii_bus) {
mdiobus_unregister(priv->mii_bus);
kfree(priv->mii_bus->irq);
}

out_free_mdio:
if (priv->mii_bus)
Expand All @@ -1800,13 +1807,19 @@ static int bcm_enet_probe(struct platform_device *pdev)
/* turn off mdc clock */
enet_writel(priv, 0, ENET_MIISC_REG);
if (priv->phy_clk) {
clk_disable_unprepare(priv->phy_clk);
clk_disable(priv->phy_clk);
clk_put(priv->phy_clk);
}

out_put_clk_mac:
clk_disable_unprepare(priv->mac_clk);
clk_disable(priv->mac_clk);
clk_put(priv->mac_clk);

out_unmap:
iounmap(priv->base);

out_release_mem:
release_mem_region(res_mem->start, iomem_size);
out:
free_netdev(dev);
return ret;
Expand All @@ -1820,6 +1833,7 @@ static int bcm_enet_remove(struct platform_device *pdev)
{
struct bcm_enet_priv *priv;
struct net_device *dev;
struct resource *res;

/* stop netdevice */
dev = platform_get_drvdata(pdev);
Expand All @@ -1831,6 +1845,7 @@ static int bcm_enet_remove(struct platform_device *pdev)

if (priv->has_phy) {
mdiobus_unregister(priv->mii_bus);
kfree(priv->mii_bus->irq);
mdiobus_free(priv->mii_bus);
} else {
struct bcm63xx_enet_platform_data *pd;
Expand All @@ -1841,12 +1856,17 @@ static int bcm_enet_remove(struct platform_device *pdev)
bcm_enet_mdio_write_mii);
}

/* release device resources */
iounmap(priv->base);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
release_mem_region(res->start, resource_size(res));

/* disable hw block clocks */
if (priv->phy_clk) {
clk_disable_unprepare(priv->phy_clk);
clk_disable(priv->phy_clk);
clk_put(priv->phy_clk);
}
clk_disable_unprepare(priv->mac_clk);
clk_disable(priv->mac_clk);
clk_put(priv->mac_clk);

platform_set_drvdata(pdev, NULL);
Expand All @@ -1869,20 +1889,31 @@ struct platform_driver bcm63xx_enet_driver = {
static int bcm_enet_shared_probe(struct platform_device *pdev)
{
struct resource *res;
unsigned int iomem_size;

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
return -ENODEV;

bcm_enet_shared_base = devm_request_and_ioremap(&pdev->dev, res);
if (!bcm_enet_shared_base)
return -ENOMEM;
iomem_size = resource_size(res);
if (!request_mem_region(res->start, iomem_size, "bcm63xx_enet_dma"))
return -EBUSY;

bcm_enet_shared_base = ioremap(res->start, iomem_size);
if (!bcm_enet_shared_base) {
release_mem_region(res->start, iomem_size);
return -ENOMEM;
}
return 0;
}

static int bcm_enet_shared_remove(struct platform_device *pdev)
{
struct resource *res;

iounmap(bcm_enet_shared_base);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
release_mem_region(res->start, resource_size(res));
return 0;
}

Expand Down
Loading

0 comments on commit dd645c3

Please sign in to comment.