| 1 | commit 2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a |
| 2 | Author: chas williams - CONTRACTOR <chas@cmf.nrl.navy.mil> |
| 3 | Date: Fri Dec 4 11:06:32 2009 +0000 |
| 4 | |
| 5 | atm: [br2684] allow routed mode operation again |
| 6 | |
| 7 | in routed mode, we don't have a hardware address so netdev_ops doesnt |
| 8 | need to validate our hardware address via .ndo_validate_addr |
| 9 | |
| 10 | Reported-by: Manuel Fuentes <mfuentes@agenciaefe.com> |
| 11 | Signed-off-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil> |
| 12 | Signed-off-by: David S. Miller <davem@davemloft.net> |
| 13 | |
| 14 | --- a/net/atm/br2684.c |
| 15 | +++ b/net/atm/br2684.c |
| 16 | @@ -544,6 +544,12 @@ static const struct net_device_ops br268 |
| 17 | .ndo_validate_addr = eth_validate_addr, |
| 18 | }; |
| 19 | |
| 20 | +static const struct net_device_ops br2684_netdev_ops_routed = { |
| 21 | + .ndo_start_xmit = br2684_start_xmit, |
| 22 | + .ndo_set_mac_address = br2684_mac_addr, |
| 23 | + .ndo_change_mtu = eth_change_mtu |
| 24 | +}; |
| 25 | + |
| 26 | static void br2684_setup(struct net_device *netdev) |
| 27 | { |
| 28 | struct br2684_dev *brdev = BRPRIV(netdev); |
| 29 | @@ -559,11 +565,10 @@ static void br2684_setup(struct net_devi |
| 30 | static void br2684_setup_routed(struct net_device *netdev) |
| 31 | { |
| 32 | struct br2684_dev *brdev = BRPRIV(netdev); |
| 33 | - brdev->net_dev = netdev; |
| 34 | |
| 35 | + brdev->net_dev = netdev; |
| 36 | netdev->hard_header_len = 0; |
| 37 | - |
| 38 | - netdev->netdev_ops = &br2684_netdev_ops; |
| 39 | + netdev->netdev_ops = &br2684_netdev_ops_routed; |
| 40 | netdev->addr_len = 0; |
| 41 | netdev->mtu = 1500; |
| 42 | netdev->type = ARPHRD_PPP; |
| 43 | |