]> git.hungrycats.org Git - linux/commitdiff
net: do not pretend FRAGLIST support
authorEric Dumazet <edumazet@google.com>
Mon, 2 Dec 2013 16:51:13 +0000 (08:51 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jan 2014 23:27:10 +0000 (15:27 -0800)
[ Upstream commit 28e24c62ab3062e965ef1b3bcc244d50aee7fa85 ]

Few network drivers really supports frag_list : virtual drivers.

Some drivers wrongly advertise NETIF_F_FRAGLIST feature.

If skb with a frag_list is given to them, packet on the wire will be
corrupt.

Remove this flag, as core networking stack will make sure to
provide packets that can be sent without corruption.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Cc: Anirudha Sarangi <anirudh@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/calxeda/xgmac.c
drivers/net/ethernet/ibm/ehea/ehea_main.c
drivers/net/ethernet/tehuti/tehuti.c
drivers/net/ethernet/xilinx/ll_temac_main.c
drivers/net/ethernet/xilinx/xilinx_axienet_main.c

index 4ebbe6f609d0b90a4464cc41094be77b0ad373b8..5699105112d382f3f4f9703fc1a768f07a0ff1d0 100644 (file)
@@ -1776,7 +1776,7 @@ static int xgmac_probe(struct platform_device *pdev)
        if (device_can_wakeup(priv->device))
                priv->wolopts = WAKE_MAGIC;     /* Magic Frame as default */
 
-       ndev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA;
+       ndev->hw_features = NETIF_F_SG | NETIF_F_HIGHDMA;
        if (readl(priv->base + XGMAC_DMA_HW_FEATURE) & DMA_HW_FEAT_TXCOESEL)
                ndev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
                                     NETIF_F_RXCSUM;
index f4d2da0db1b149938e7c9d0e9905dfaa7db2849f..8b3da6eb5bc4fc0fde9453b3eb922cfad36312f0 100644 (file)
@@ -3029,7 +3029,7 @@ static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
 
        dev->hw_features = NETIF_F_SG | NETIF_F_TSO
                      | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX | NETIF_F_LRO;
-       dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO
+       dev->features = NETIF_F_SG | NETIF_F_TSO
                      | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX
                      | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER
                      | NETIF_F_RXCSUM;
index ad973ffc9ff363acb4ecd923bcd3d93a3b78dc18..32f0bcd5e30dc5b3a4d61b05d830bdebec8c1a3e 100644 (file)
@@ -1995,7 +1995,6 @@ bdx_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO
                    | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX |
                    NETIF_F_HW_VLAN_FILTER | NETIF_F_RXCSUM
-                   /*| NETIF_F_FRAGLIST */
                    ;
                ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
                        NETIF_F_TSO | NETIF_F_HW_VLAN_TX;
index 5e5b791f12e9060ff2bb500e434f1fd33ca7d736..d240c0624d460c517892f1ca0d054cc2fa6f43bf 100644 (file)
@@ -1026,7 +1026,7 @@ static int __devinit temac_of_probe(struct platform_device *op)
        dev_set_drvdata(&op->dev, ndev);
        SET_NETDEV_DEV(ndev, &op->dev);
        ndev->flags &= ~IFF_MULTICAST;  /* clear multicast */
-       ndev->features = NETIF_F_SG | NETIF_F_FRAGLIST;
+       ndev->features = NETIF_F_SG;
        ndev->netdev_ops = &temac_netdev_ops;
        ndev->ethtool_ops = &temac_ethtool_ops;
 #if 0
index 9c365e192a3197dc11267f37ce572985c12f274b..fde716dec196157e6e340d688014f988ce78e768 100644 (file)
@@ -1494,7 +1494,7 @@ static int __devinit axienet_of_probe(struct platform_device *op)
 
        SET_NETDEV_DEV(ndev, &op->dev);
        ndev->flags &= ~IFF_MULTICAST;  /* clear multicast */
-       ndev->features = NETIF_F_SG | NETIF_F_FRAGLIST;
+       ndev->features = NETIF_F_SG;
        ndev->netdev_ops = &axienet_netdev_ops;
        ndev->ethtool_ops = &axienet_ethtool_ops;