diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2009-01-07 21:02:53 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-07 21:02:53 -0500 |
commit | fb875333c80942455551f690f306a899ceeee5df (patch) | |
tree | 8c830ff61d8e9da4f24dad49d8d8ea0816693297 /drivers/media | |
parent | 2a97e6b735416054dcc1b3cf7f4d358f43b45c6e (diff) |
dvb: update network device to current API
Use internal network_device_stats that exist in network device and
net_device_ops. Compile tested only.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_net.c | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c index 03fd9dd5c685..f6ba8468858e 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c | |||
@@ -125,7 +125,6 @@ static void hexdump( const unsigned char *buf, unsigned short len ) | |||
125 | 125 | ||
126 | struct dvb_net_priv { | 126 | struct dvb_net_priv { |
127 | int in_use; | 127 | int in_use; |
128 | struct net_device_stats stats; | ||
129 | u16 pid; | 128 | u16 pid; |
130 | struct net_device *net; | 129 | struct net_device *net; |
131 | struct dvb_net *host; | 130 | struct dvb_net *host; |
@@ -384,8 +383,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
384 | if (priv->ule_skb) { | 383 | if (priv->ule_skb) { |
385 | dev_kfree_skb( priv->ule_skb ); | 384 | dev_kfree_skb( priv->ule_skb ); |
386 | /* Prepare for next SNDU. */ | 385 | /* Prepare for next SNDU. */ |
387 | priv->stats.rx_errors++; | 386 | dev->stats.rx_errors++; |
388 | priv->stats.rx_frame_errors++; | 387 | dev->stats.rx_frame_errors++; |
389 | } | 388 | } |
390 | reset_ule(priv); | 389 | reset_ule(priv); |
391 | priv->need_pusi = 1; | 390 | priv->need_pusi = 1; |
@@ -438,8 +437,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
438 | dev_kfree_skb( priv->ule_skb ); | 437 | dev_kfree_skb( priv->ule_skb ); |
439 | /* Prepare for next SNDU. */ | 438 | /* Prepare for next SNDU. */ |
440 | // reset_ule(priv); moved to below. | 439 | // reset_ule(priv); moved to below. |
441 | priv->stats.rx_errors++; | 440 | dev->stats.rx_errors++; |
442 | priv->stats.rx_frame_errors++; | 441 | dev->stats.rx_frame_errors++; |
443 | } | 442 | } |
444 | reset_ule(priv); | 443 | reset_ule(priv); |
445 | /* skip to next PUSI. */ | 444 | /* skip to next PUSI. */ |
@@ -460,8 +459,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
460 | /* Drop partly decoded SNDU, reset state, resync on PUSI. */ | 459 | /* Drop partly decoded SNDU, reset state, resync on PUSI. */ |
461 | if (priv->ule_skb) { | 460 | if (priv->ule_skb) { |
462 | dev_kfree_skb( priv->ule_skb ); | 461 | dev_kfree_skb( priv->ule_skb ); |
463 | priv->stats.rx_errors++; | 462 | dev->stats.rx_errors++; |
464 | priv->stats.rx_frame_errors++; | 463 | dev->stats.rx_frame_errors++; |
465 | } | 464 | } |
466 | reset_ule(priv); | 465 | reset_ule(priv); |
467 | priv->need_pusi = 1; | 466 | priv->need_pusi = 1; |
@@ -477,8 +476,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
477 | if (priv->ule_sndu_remain > 183) { | 476 | if (priv->ule_sndu_remain > 183) { |
478 | /* Current SNDU lacks more data than there could be available in the | 477 | /* Current SNDU lacks more data than there could be available in the |
479 | * current TS cell. */ | 478 | * current TS cell. */ |
480 | priv->stats.rx_errors++; | 479 | dev->stats.rx_errors++; |
481 | priv->stats.rx_length_errors++; | 480 | dev->stats.rx_length_errors++; |
482 | printk(KERN_WARNING "%lu: Expected %d more SNDU bytes, but " | 481 | printk(KERN_WARNING "%lu: Expected %d more SNDU bytes, but " |
483 | "got PUSI (pf %d, ts_remain %d). Flushing incomplete payload.\n", | 482 | "got PUSI (pf %d, ts_remain %d). Flushing incomplete payload.\n", |
484 | priv->ts_count, priv->ule_sndu_remain, ts[4], ts_remain); | 483 | priv->ts_count, priv->ule_sndu_remain, ts[4], ts_remain); |
@@ -520,8 +519,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
520 | if (priv->ule_sndu_len < 5) { | 519 | if (priv->ule_sndu_len < 5) { |
521 | printk(KERN_WARNING "%lu: Invalid ULE SNDU length %u. " | 520 | printk(KERN_WARNING "%lu: Invalid ULE SNDU length %u. " |
522 | "Resyncing.\n", priv->ts_count, priv->ule_sndu_len); | 521 | "Resyncing.\n", priv->ts_count, priv->ule_sndu_len); |
523 | priv->stats.rx_errors++; | 522 | dev->stats.rx_errors++; |
524 | priv->stats.rx_length_errors++; | 523 | dev->stats.rx_length_errors++; |
525 | priv->ule_sndu_len = 0; | 524 | priv->ule_sndu_len = 0; |
526 | priv->need_pusi = 1; | 525 | priv->need_pusi = 1; |
527 | new_ts = 1; | 526 | new_ts = 1; |
@@ -573,7 +572,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
573 | if (priv->ule_skb == NULL) { | 572 | if (priv->ule_skb == NULL) { |
574 | printk(KERN_NOTICE "%s: Memory squeeze, dropping packet.\n", | 573 | printk(KERN_NOTICE "%s: Memory squeeze, dropping packet.\n", |
575 | dev->name); | 574 | dev->name); |
576 | priv->stats.rx_dropped++; | 575 | dev->stats.rx_dropped++; |
577 | return; | 576 | return; |
578 | } | 577 | } |
579 | 578 | ||
@@ -637,8 +636,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
637 | ule_dump = 1; | 636 | ule_dump = 1; |
638 | #endif | 637 | #endif |
639 | 638 | ||
640 | priv->stats.rx_errors++; | 639 | dev->stats.rx_errors++; |
641 | priv->stats.rx_crc_errors++; | 640 | dev->stats.rx_crc_errors++; |
642 | dev_kfree_skb(priv->ule_skb); | 641 | dev_kfree_skb(priv->ule_skb); |
643 | } else { | 642 | } else { |
644 | /* CRC32 verified OK. */ | 643 | /* CRC32 verified OK. */ |
@@ -744,8 +743,8 @@ static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len ) | |||
744 | * receive the packet anyhow. */ | 743 | * receive the packet anyhow. */ |
745 | /* if (priv->ule_dbit && skb->pkt_type == PACKET_OTHERHOST) | 744 | /* if (priv->ule_dbit && skb->pkt_type == PACKET_OTHERHOST) |
746 | priv->ule_skb->pkt_type = PACKET_HOST; */ | 745 | priv->ule_skb->pkt_type = PACKET_HOST; */ |
747 | priv->stats.rx_packets++; | 746 | dev->stats.rx_packets++; |
748 | priv->stats.rx_bytes += priv->ule_skb->len; | 747 | dev->stats.rx_bytes += priv->ule_skb->len; |
749 | netif_rx(priv->ule_skb); | 748 | netif_rx(priv->ule_skb); |
750 | } | 749 | } |
751 | sndu_done: | 750 | sndu_done: |
@@ -800,8 +799,7 @@ static void dvb_net_sec(struct net_device *dev, | |||
800 | { | 799 | { |
801 | u8 *eth; | 800 | u8 *eth; |
802 | struct sk_buff *skb; | 801 | struct sk_buff *skb; |
803 | struct net_device_stats *stats = | 802 | struct net_device_stats *stats = &dev->stats; |
804 | &((struct dvb_net_priv *) netdev_priv(dev))->stats; | ||
805 | int snap = 0; | 803 | int snap = 0; |
806 | 804 | ||
807 | /* note: pkt_len includes a 32bit checksum */ | 805 | /* note: pkt_len includes a 32bit checksum */ |
@@ -1216,28 +1214,29 @@ static int dvb_net_stop(struct net_device *dev) | |||
1216 | return dvb_net_feed_stop(dev); | 1214 | return dvb_net_feed_stop(dev); |
1217 | } | 1215 | } |
1218 | 1216 | ||
1219 | static struct net_device_stats * dvb_net_get_stats(struct net_device *dev) | ||
1220 | { | ||
1221 | return &((struct dvb_net_priv *) netdev_priv(dev))->stats; | ||
1222 | } | ||
1223 | |||
1224 | static const struct header_ops dvb_header_ops = { | 1217 | static const struct header_ops dvb_header_ops = { |
1225 | .create = eth_header, | 1218 | .create = eth_header, |
1226 | .parse = eth_header_parse, | 1219 | .parse = eth_header_parse, |
1227 | .rebuild = eth_rebuild_header, | 1220 | .rebuild = eth_rebuild_header, |
1228 | }; | 1221 | }; |
1229 | 1222 | ||
1223 | |||
1224 | static const struct net_device_ops dvb_netdev_ops = { | ||
1225 | .ndo_open = dvb_net_open, | ||
1226 | .ndo_stop = dvb_net_stop, | ||
1227 | .ndo_start_xmit = dvb_net_tx, | ||
1228 | .ndo_set_multicast_list = dvb_net_set_multicast_list, | ||
1229 | .ndo_set_mac_address = dvb_net_set_mac, | ||
1230 | .ndo_change_mtu = eth_change_mtu, | ||
1231 | .ndo_validate_addr = eth_validate_addr, | ||
1232 | }; | ||
1233 | |||
1230 | static void dvb_net_setup(struct net_device *dev) | 1234 | static void dvb_net_setup(struct net_device *dev) |
1231 | { | 1235 | { |
1232 | ether_setup(dev); | 1236 | ether_setup(dev); |
1233 | 1237 | ||
1234 | dev->header_ops = &dvb_header_ops; | 1238 | dev->header_ops = &dvb_header_ops; |
1235 | dev->open = dvb_net_open; | 1239 | dev->netdev_ops = &dvb_netdev_ops; |
1236 | dev->stop = dvb_net_stop; | ||
1237 | dev->hard_start_xmit = dvb_net_tx; | ||
1238 | dev->get_stats = dvb_net_get_stats; | ||
1239 | dev->set_multicast_list = dvb_net_set_multicast_list; | ||
1240 | dev->set_mac_address = dvb_net_set_mac; | ||
1241 | dev->mtu = 4096; | 1240 | dev->mtu = 4096; |
1242 | dev->mc_count = 0; | 1241 | dev->mc_count = 0; |
1243 | 1242 | ||