diff options
-rw-r--r-- | drivers/message/fusion/mptlan.c | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c index a13f6eecd25b..c2804f26cb44 100644 --- a/drivers/message/fusion/mptlan.c +++ b/drivers/message/fusion/mptlan.c | |||
@@ -106,7 +106,6 @@ struct mpt_lan_priv { | |||
106 | 106 | ||
107 | u32 total_posted; | 107 | u32 total_posted; |
108 | u32 total_received; | 108 | u32 total_received; |
109 | struct net_device_stats stats; /* Per device statistics */ | ||
110 | 109 | ||
111 | struct delayed_work post_buckets_task; | 110 | struct delayed_work post_buckets_task; |
112 | struct net_device *dev; | 111 | struct net_device *dev; |
@@ -548,15 +547,6 @@ mpt_lan_close(struct net_device *dev) | |||
548 | } | 547 | } |
549 | 548 | ||
550 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 549 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
551 | static struct net_device_stats * | ||
552 | mpt_lan_get_stats(struct net_device *dev) | ||
553 | { | ||
554 | struct mpt_lan_priv *priv = netdev_priv(dev); | ||
555 | |||
556 | return (struct net_device_stats *) &priv->stats; | ||
557 | } | ||
558 | |||
559 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | ||
560 | static int | 550 | static int |
561 | mpt_lan_change_mtu(struct net_device *dev, int new_mtu) | 551 | mpt_lan_change_mtu(struct net_device *dev, int new_mtu) |
562 | { | 552 | { |
@@ -594,8 +584,8 @@ mpt_lan_send_turbo(struct net_device *dev, u32 tmsg) | |||
594 | ctx = GET_LAN_BUFFER_CONTEXT(tmsg); | 584 | ctx = GET_LAN_BUFFER_CONTEXT(tmsg); |
595 | sent = priv->SendCtl[ctx].skb; | 585 | sent = priv->SendCtl[ctx].skb; |
596 | 586 | ||
597 | priv->stats.tx_packets++; | 587 | dev->stats.tx_packets++; |
598 | priv->stats.tx_bytes += sent->len; | 588 | dev->stats.tx_bytes += sent->len; |
599 | 589 | ||
600 | dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n", | 590 | dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n", |
601 | IOC_AND_NETDEV_NAMES_s_s(dev), | 591 | IOC_AND_NETDEV_NAMES_s_s(dev), |
@@ -636,7 +626,7 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep) | |||
636 | 626 | ||
637 | switch (le16_to_cpu(pSendRep->IOCStatus) & MPI_IOCSTATUS_MASK) { | 627 | switch (le16_to_cpu(pSendRep->IOCStatus) & MPI_IOCSTATUS_MASK) { |
638 | case MPI_IOCSTATUS_SUCCESS: | 628 | case MPI_IOCSTATUS_SUCCESS: |
639 | priv->stats.tx_packets += count; | 629 | dev->stats.tx_packets += count; |
640 | break; | 630 | break; |
641 | 631 | ||
642 | case MPI_IOCSTATUS_LAN_CANCELED: | 632 | case MPI_IOCSTATUS_LAN_CANCELED: |
@@ -644,13 +634,13 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep) | |||
644 | break; | 634 | break; |
645 | 635 | ||
646 | case MPI_IOCSTATUS_INVALID_SGL: | 636 | case MPI_IOCSTATUS_INVALID_SGL: |
647 | priv->stats.tx_errors += count; | 637 | dev->stats.tx_errors += count; |
648 | printk (KERN_ERR MYNAM ": %s/%s: ERROR - Invalid SGL sent to IOC!\n", | 638 | printk (KERN_ERR MYNAM ": %s/%s: ERROR - Invalid SGL sent to IOC!\n", |
649 | IOC_AND_NETDEV_NAMES_s_s(dev)); | 639 | IOC_AND_NETDEV_NAMES_s_s(dev)); |
650 | goto out; | 640 | goto out; |
651 | 641 | ||
652 | default: | 642 | default: |
653 | priv->stats.tx_errors += count; | 643 | dev->stats.tx_errors += count; |
654 | break; | 644 | break; |
655 | } | 645 | } |
656 | 646 | ||
@@ -661,7 +651,7 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep) | |||
661 | ctx = GET_LAN_BUFFER_CONTEXT(le32_to_cpu(*pContext)); | 651 | ctx = GET_LAN_BUFFER_CONTEXT(le32_to_cpu(*pContext)); |
662 | 652 | ||
663 | sent = priv->SendCtl[ctx].skb; | 653 | sent = priv->SendCtl[ctx].skb; |
664 | priv->stats.tx_bytes += sent->len; | 654 | dev->stats.tx_bytes += sent->len; |
665 | 655 | ||
666 | dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n", | 656 | dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n", |
667 | IOC_AND_NETDEV_NAMES_s_s(dev), | 657 | IOC_AND_NETDEV_NAMES_s_s(dev), |
@@ -842,8 +832,8 @@ mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb) | |||
842 | "delivered to upper level.\n", | 832 | "delivered to upper level.\n", |
843 | IOC_AND_NETDEV_NAMES_s_s(dev), skb->len)); | 833 | IOC_AND_NETDEV_NAMES_s_s(dev), skb->len)); |
844 | 834 | ||
845 | priv->stats.rx_bytes += skb->len; | 835 | dev->stats.rx_bytes += skb->len; |
846 | priv->stats.rx_packets++; | 836 | dev->stats.rx_packets++; |
847 | 837 | ||
848 | skb->dev = dev; | 838 | skb->dev = dev; |
849 | netif_rx(skb); | 839 | netif_rx(skb); |
@@ -1308,6 +1298,14 @@ mpt_lan_post_receive_buckets_work(struct work_struct *work) | |||
1308 | post_buckets_task.work)); | 1298 | post_buckets_task.work)); |
1309 | } | 1299 | } |
1310 | 1300 | ||
1301 | static const struct net_device_ops mpt_netdev_ops = { | ||
1302 | .ndo_open = mpt_lan_open, | ||
1303 | .ndo_stop = mpt_lan_close, | ||
1304 | .ndo_start_xmit = mpt_lan_sdu_send, | ||
1305 | .ndo_change_mtu = mpt_lan_change_mtu, | ||
1306 | .ndo_tx_timeout = mpt_lan_tx_timeout, | ||
1307 | }; | ||
1308 | |||
1311 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 1309 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
1312 | static struct net_device * | 1310 | static struct net_device * |
1313 | mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum) | 1311 | mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum) |
@@ -1372,15 +1370,7 @@ mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum) | |||
1372 | priv->tx_max_out = (tx_max_out_p <= MPT_TX_MAX_OUT_LIM) ? | 1370 | priv->tx_max_out = (tx_max_out_p <= MPT_TX_MAX_OUT_LIM) ? |
1373 | tx_max_out_p : MPT_TX_MAX_OUT_LIM; | 1371 | tx_max_out_p : MPT_TX_MAX_OUT_LIM; |
1374 | 1372 | ||
1375 | dev->open = mpt_lan_open; | 1373 | dev->netdev_ops = &mpt_netdev_ops; |
1376 | dev->stop = mpt_lan_close; | ||
1377 | dev->get_stats = mpt_lan_get_stats; | ||
1378 | dev->set_multicast_list = NULL; | ||
1379 | dev->change_mtu = mpt_lan_change_mtu; | ||
1380 | dev->hard_start_xmit = mpt_lan_sdu_send; | ||
1381 | |||
1382 | /* Not in 2.3.42. Need 2.3.45+ */ | ||
1383 | dev->tx_timeout = mpt_lan_tx_timeout; | ||
1384 | dev->watchdog_timeo = MPT_LAN_TX_TIMEOUT; | 1374 | dev->watchdog_timeo = MPT_LAN_TX_TIMEOUT; |
1385 | 1375 | ||
1386 | dlprintk((KERN_INFO MYNAM ": Finished registering dev " | 1376 | dlprintk((KERN_INFO MYNAM ": Finished registering dev " |