atm: [br2684] allow routed mode operation again
authorchas williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Fri, 4 Dec 2009 11:06:32 +0000 (11:06 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Dec 2009 04:22:31 +0000 (20:22 -0800)
in routed mode, we don't have a hardware address so netdev_ops doesnt
need to validate our hardware address via .ndo_validate_addr

Reported-by: Manuel Fuentes <mfuentes@agenciaefe.com>
Signed-off-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/atm/br2684.c

index 26a646d4eb32dc3df591bc404420587e9ab0f32a..c9230c398697a75986b71b28263261e37fed2cee 100644 (file)
@@ -554,6 +554,12 @@ static const struct net_device_ops br2684_netdev_ops = {
        .ndo_validate_addr      = eth_validate_addr,
 };
 
+static const struct net_device_ops br2684_netdev_ops_routed = {
+       .ndo_start_xmit         = br2684_start_xmit,
+       .ndo_set_mac_address    = br2684_mac_addr,
+       .ndo_change_mtu         = eth_change_mtu
+};
+
 static void br2684_setup(struct net_device *netdev)
 {
        struct br2684_dev *brdev = BRPRIV(netdev);
@@ -569,11 +575,10 @@ static void br2684_setup(struct net_device *netdev)
 static void br2684_setup_routed(struct net_device *netdev)
 {
        struct br2684_dev *brdev = BRPRIV(netdev);
-       brdev->net_dev = netdev;
 
+       brdev->net_dev = netdev;
        netdev->hard_header_len = 0;
-
-       netdev->netdev_ops = &br2684_netdev_ops;
+       netdev->netdev_ops = &br2684_netdev_ops_routed;
        netdev->addr_len = 0;
        netdev->mtu = 1500;
        netdev->type = ARPHRD_PPP;