Subject: macvlan: fix gso_max_size setting

From: Patrick McHardy <[email-masked]>
Date: Mon, 23 Nov 2009 11:33:06 +0100

Fix macvlan gso_max_size setting. Based on net-next-2.6.git.

commit 198a1fd488e7ebec080d1d2da7947cb9e1aacebf
Author: Patrick McHardy <[email-masked]>
Date:   Mon Nov 23 11:28:22 2009 +0100

    macvlan: fix gso_max_size setting
    
    gso_max_size must be set based on the value of the underlying device to
    support devices not using the full 64k.
    
    Signed-off-by: Patrick McHardy <[email-masked]>

diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index ae2b5c7..7b0ef0c 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -376,6 +376,7 @@ static int macvlan_init(struct net_device *dev)
 	dev->state		= (dev->state & ~MACVLAN_STATE_MASK) |
 				  (lowerdev->state & MACVLAN_STATE_MASK);
 	dev->features 		= lowerdev->features & MACVLAN_FEATURES;
+	dev->gso_max_size	= lowerdev->gso_max_size;
 	dev->iflink		= lowerdev->ifindex;
 	dev->hard_header_len	= lowerdev->hard_header_len;
 
@@ -652,6 +653,7 @@ static int macvlan_device_event(struct notifier_block *unused,
 	case NETDEV_FEAT_CHANGE:
 		list_for_each_entry(vlan, &port->vlans, list) {
 			vlan->dev->features = dev->features & MACVLAN_FEATURES;
+			vlan->dev->gso_max_size = dev->gso_max_size;
 			netdev_features_change(vlan->dev);
 		}
 		break;