]> git.ipfire.org Git - people/ms/linux.git/commitdiff
Drivers: net: hyperv: Allocate memory for all possible per-pecket information
authorKY Srinivasan <kys@microsoft.com>
Wed, 9 Apr 2014 22:00:45 +0000 (15:00 -0700)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 15 Dec 2015 15:50:29 +0000 (15:50 +0000)
An outgoing packet can potentially need per-packet information for
all the offloads and VLAN tagging. Fix this issue.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/netvsc_drv.c

index 5baa1fa7e6921391add9271abbcb60b43f0f33b4..c76c851766449a429cb64c403c27566267026123 100644 (file)
@@ -320,7 +320,9 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
        packet = kzalloc(sizeof(struct hv_netvsc_packet) +
                         (num_data_pgs * sizeof(struct hv_page_buffer)) +
                         sizeof(struct rndis_message) +
-                        NDIS_VLAN_PPI_SIZE, GFP_ATOMIC);
+                        NDIS_VLAN_PPI_SIZE +
+                        NDIS_CSUM_PPI_SIZE +
+                        NDIS_LSO_PPI_SIZE, GFP_ATOMIC);
        if (!packet) {
                /* out of memory, drop packet */
                netdev_err(net, "unable to allocate hv_netvsc_packet\n");