net: systemport: suppress warnings on failed Rx SKB allocations
[linux-2.6-microblaze.git] / drivers / net / ethernet / broadcom / bcmsysport.c
index 15b31cd..b25356e 100644 (file)
@@ -287,7 +287,6 @@ static void bcm_sysport_get_drvinfo(struct net_device *dev,
                                    struct ethtool_drvinfo *info)
 {
        strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver));
-       strlcpy(info->version, "0.1", sizeof(info->version));
        strlcpy(info->bus_info, "platform", sizeof(info->bus_info));
 }
 
@@ -624,8 +623,7 @@ static int bcm_sysport_set_coalesce(struct net_device *dev,
                return -EINVAL;
 
        if ((ec->tx_coalesce_usecs == 0 && ec->tx_max_coalesced_frames == 0) ||
-           (ec->rx_coalesce_usecs == 0 && ec->rx_max_coalesced_frames == 0) ||
-           ec->use_adaptive_tx_coalesce)
+           (ec->rx_coalesce_usecs == 0 && ec->rx_max_coalesced_frames == 0))
                return -EINVAL;
 
        for (i = 0; i < dev->num_tx_queues; i++)
@@ -666,7 +664,8 @@ static struct sk_buff *bcm_sysport_rx_refill(struct bcm_sysport_priv *priv,
        dma_addr_t mapping;
 
        /* Allocate a new SKB for a new packet */
-       skb = netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH);
+       skb = __netdev_alloc_skb(priv->netdev, RX_BUF_LENGTH,
+                                GFP_ATOMIC | __GFP_NOWARN);
        if (!skb) {
                priv->mib.alloc_rx_buff_failed++;
                netif_err(priv, rx_err, ndev, "SKB alloc failed\n");
@@ -2210,6 +2209,9 @@ static int bcm_sysport_set_rxnfc(struct net_device *dev,
 }
 
 static const struct ethtool_ops bcm_sysport_ethtool_ops = {
+       .supported_coalesce_params = ETHTOOL_COALESCE_USECS |
+                                    ETHTOOL_COALESCE_MAX_FRAMES |
+                                    ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
        .get_drvinfo            = bcm_sysport_get_drvinfo,
        .get_msglevel           = bcm_sysport_get_msglvl,
        .set_msglevel           = bcm_sysport_set_msglvl,
@@ -2474,7 +2476,6 @@ static int bcm_sysport_probe(struct platform_device *pdev)
                priv->wol_irq = platform_get_irq(pdev, 1);
        }
        if (priv->irq0 <= 0 || (priv->irq1 <= 0 && !priv->is_lite)) {
-               dev_err(&pdev->dev, "invalid interrupts\n");
                ret = -EINVAL;
                goto err_free_netdev;
        }