diff options
author | chas williams - CONTRACTOR <chas@cmf.nrl.navy.mil> | 2009-12-04 11:06:32 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-09 04:22:31 (GMT) |
commit | 2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a (patch) | |
tree | 8b15d52b73905f89184c91fb146c1b216d71bc8f /net | |
parent | 504bb3b58e7314e0fe026da280e8168c1314be3d (diff) | |
download | linux-2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a.tar.xz |
atm: [br2684] allow routed mode operation again
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/atm/br2684.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/net/atm/br2684.c b/net/atm/br2684.c index 26a646d..c9230c3 100644 --- a/net/atm/br2684.c +++ b/net/atm/br2684.c @@ -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; |