diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2009-03-20 15:36:16 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-22 01:38:00 -0400 |
commit | d9b06c47a9eddef7d8829f6763bdf601c435c6f2 (patch) | |
tree | 2fa22d642f7974fa89651b1cc8fdf94b56788b93 /drivers/net/wan/cycx_x25.c | |
parent | 49e8abaf62dc6403f11313e8fefbc0f5e7a9f50f (diff) |
cycx: convert to net_device_ops
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wan/cycx_x25.c')
-rw-r--r-- | drivers/net/wan/cycx_x25.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c index 5fa52923efa8..35dea3bea95d 100644 --- a/drivers/net/wan/cycx_x25.c +++ b/drivers/net/wan/cycx_x25.c | |||
@@ -355,12 +355,6 @@ static int cycx_wan_update(struct wan_device *wandev) | |||
355 | return 0; | 355 | return 0; |
356 | } | 356 | } |
357 | 357 | ||
358 | /* callback to initialize device */ | ||
359 | static void cycx_x25_chan_setup(struct net_device *dev) | ||
360 | { | ||
361 | dev->init = cycx_netdevice_init; | ||
362 | } | ||
363 | |||
364 | /* Create new logical channel. | 358 | /* Create new logical channel. |
365 | * This routine is called by the router when ROUTER_IFNEW IOCTL is being | 359 | * This routine is called by the router when ROUTER_IFNEW IOCTL is being |
366 | * handled. | 360 | * handled. |
@@ -476,6 +470,27 @@ static const struct header_ops cycx_header_ops = { | |||
476 | .rebuild = cycx_netdevice_rebuild_header, | 470 | .rebuild = cycx_netdevice_rebuild_header, |
477 | }; | 471 | }; |
478 | 472 | ||
473 | static const struct net_device_ops cycx_netdev_ops = { | ||
474 | .ndo_init = cycx_netdevice_init, | ||
475 | .ndo_open = cycx_netdevice_open, | ||
476 | .ndo_stop = cycx_netdevice_stop, | ||
477 | .ndo_start_xmit = cycx_netdevice_hard_start_xmit, | ||
478 | .ndo_get_stats = cycx_netdevice_get_stats, | ||
479 | }; | ||
480 | |||
481 | static void cycx_x25_chan_setup(struct net_device *dev) | ||
482 | { | ||
483 | /* Initialize device driver entry points */ | ||
484 | dev->netdev_ops = &cycx_netdev_ops; | ||
485 | dev->header_ops = &cycx_header_ops; | ||
486 | |||
487 | /* Initialize media-specific parameters */ | ||
488 | dev->mtu = CYCX_X25_CHAN_MTU; | ||
489 | dev->type = ARPHRD_HWX25; /* ARP h/w type */ | ||
490 | dev->hard_header_len = 0; /* media header length */ | ||
491 | dev->addr_len = 0; /* hardware address length */ | ||
492 | } | ||
493 | |||
479 | /* Initialize Linux network interface. | 494 | /* Initialize Linux network interface. |
480 | * | 495 | * |
481 | * This routine is called only once for each interface, during Linux network | 496 | * This routine is called only once for each interface, during Linux network |
@@ -487,20 +502,6 @@ static int cycx_netdevice_init(struct net_device *dev) | |||
487 | struct cycx_device *card = chan->card; | 502 | struct cycx_device *card = chan->card; |
488 | struct wan_device *wandev = &card->wandev; | 503 | struct wan_device *wandev = &card->wandev; |
489 | 504 | ||
490 | /* Initialize device driver entry points */ | ||
491 | dev->open = cycx_netdevice_open; | ||
492 | dev->stop = cycx_netdevice_stop; | ||
493 | dev->header_ops = &cycx_header_ops; | ||
494 | |||
495 | dev->hard_start_xmit = cycx_netdevice_hard_start_xmit; | ||
496 | dev->get_stats = cycx_netdevice_get_stats; | ||
497 | |||
498 | /* Initialize media-specific parameters */ | ||
499 | dev->mtu = CYCX_X25_CHAN_MTU; | ||
500 | dev->type = ARPHRD_HWX25; /* ARP h/w type */ | ||
501 | dev->hard_header_len = 0; /* media header length */ | ||
502 | dev->addr_len = 0; /* hardware address length */ | ||
503 | |||
504 | if (!chan->svc) | 505 | if (!chan->svc) |
505 | *(__be16*)dev->dev_addr = htons(chan->lcn); | 506 | *(__be16*)dev->dev_addr = htons(chan->lcn); |
506 | 507 | ||