bridge: inherit slave devices needed_headroom
authorFlorian Fainelli <f.fainelli@gmail.com>
Tue, 27 Aug 2013 11:03:53 +0000 (12:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Aug 2013 19:17:09 +0000 (15:17 -0400)
Some slave devices may have set a dev->needed_headroom value which is
different than the default one, most likely in order to prepend a
hardware descriptor in front of the Ethernet frame to send. Whenever a
new slave is added to a bridge, ensure that we update the
needed_headroom value accordingly to account for the slave
needed_headroom value.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_if.c

index aa6c9a8ba32a8df827e0749c6c4f870f6c3f2362..c41d5fbb91d0c3e07bf0eff148d57e6cd74ef8d0 100644 (file)
@@ -383,6 +383,9 @@ int br_add_if(struct net_bridge *br, struct net_device *dev)
 
        netdev_update_features(br->dev);
 
+       if (br->dev->needed_headroom < dev->needed_headroom)
+               br->dev->needed_headroom = dev->needed_headroom;
+
        spin_lock_bh(&br->lock);
        changed_addr = br_stp_recalculate_bridge_id(br);