Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4805fc76 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

fusion: convert devices to new API



Convert to net_device_ops and internal net_device_stats

Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d700555b
Loading
Loading
Loading
Loading
+17 −27
Original line number Original line Diff line number Diff line
@@ -106,7 +106,6 @@ struct mpt_lan_priv {


	u32 total_posted;
	u32 total_posted;
	u32 total_received;
	u32 total_received;
	struct net_device_stats stats;	/* Per device statistics */


	struct delayed_work post_buckets_task;
	struct delayed_work post_buckets_task;
	struct net_device *dev;
	struct net_device *dev;
@@ -547,15 +546,6 @@ mpt_lan_close(struct net_device *dev)
	return 0;
	return 0;
}
}


/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
static struct net_device_stats *
mpt_lan_get_stats(struct net_device *dev)
{
	struct mpt_lan_priv *priv = netdev_priv(dev);

	return (struct net_device_stats *) &priv->stats;
}

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
static int
static int
mpt_lan_change_mtu(struct net_device *dev, int new_mtu)
mpt_lan_change_mtu(struct net_device *dev, int new_mtu)
@@ -594,8 +584,8 @@ mpt_lan_send_turbo(struct net_device *dev, u32 tmsg)
	ctx = GET_LAN_BUFFER_CONTEXT(tmsg);
	ctx = GET_LAN_BUFFER_CONTEXT(tmsg);
	sent = priv->SendCtl[ctx].skb;
	sent = priv->SendCtl[ctx].skb;


	priv->stats.tx_packets++;
	dev->stats.tx_packets++;
	priv->stats.tx_bytes += sent->len;
	dev->stats.tx_bytes += sent->len;


	dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n",
	dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n",
			IOC_AND_NETDEV_NAMES_s_s(dev),
			IOC_AND_NETDEV_NAMES_s_s(dev),
@@ -636,7 +626,7 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep)


	switch (le16_to_cpu(pSendRep->IOCStatus) & MPI_IOCSTATUS_MASK) {
	switch (le16_to_cpu(pSendRep->IOCStatus) & MPI_IOCSTATUS_MASK) {
	case MPI_IOCSTATUS_SUCCESS:
	case MPI_IOCSTATUS_SUCCESS:
		priv->stats.tx_packets += count;
		dev->stats.tx_packets += count;
		break;
		break;


	case MPI_IOCSTATUS_LAN_CANCELED:
	case MPI_IOCSTATUS_LAN_CANCELED:
@@ -644,13 +634,13 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep)
		break;
		break;


	case MPI_IOCSTATUS_INVALID_SGL:
	case MPI_IOCSTATUS_INVALID_SGL:
		priv->stats.tx_errors += count;
		dev->stats.tx_errors += count;
		printk (KERN_ERR MYNAM ": %s/%s: ERROR - Invalid SGL sent to IOC!\n",
		printk (KERN_ERR MYNAM ": %s/%s: ERROR - Invalid SGL sent to IOC!\n",
				IOC_AND_NETDEV_NAMES_s_s(dev));
				IOC_AND_NETDEV_NAMES_s_s(dev));
		goto out;
		goto out;


	default:
	default:
		priv->stats.tx_errors += count;
		dev->stats.tx_errors += count;
		break;
		break;
	}
	}


@@ -661,7 +651,7 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep)
		ctx = GET_LAN_BUFFER_CONTEXT(le32_to_cpu(*pContext));
		ctx = GET_LAN_BUFFER_CONTEXT(le32_to_cpu(*pContext));


		sent = priv->SendCtl[ctx].skb;
		sent = priv->SendCtl[ctx].skb;
		priv->stats.tx_bytes += sent->len;
		dev->stats.tx_bytes += sent->len;


		dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n",
		dioprintk((KERN_INFO MYNAM ": %s/%s: @%s, skb %p sent.\n",
				IOC_AND_NETDEV_NAMES_s_s(dev),
				IOC_AND_NETDEV_NAMES_s_s(dev),
@@ -842,8 +832,8 @@ mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb)
		 "delivered to upper level.\n",
		 "delivered to upper level.\n",
			IOC_AND_NETDEV_NAMES_s_s(dev), skb->len));
			IOC_AND_NETDEV_NAMES_s_s(dev), skb->len));


	priv->stats.rx_bytes += skb->len;
	dev->stats.rx_bytes += skb->len;
	priv->stats.rx_packets++;
	dev->stats.rx_packets++;


	skb->dev = dev;
	skb->dev = dev;
	netif_rx(skb);
	netif_rx(skb);
@@ -1308,6 +1298,14 @@ mpt_lan_post_receive_buckets_work(struct work_struct *work)
						  post_buckets_task.work));
						  post_buckets_task.work));
}
}


static const struct net_device_ops mpt_netdev_ops = {
	.ndo_open       = mpt_lan_open,
	.ndo_stop       = mpt_lan_close,
	.ndo_start_xmit = mpt_lan_sdu_send,
	.ndo_change_mtu = mpt_lan_change_mtu,
	.ndo_tx_timeout = mpt_lan_tx_timeout,
};

/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
static struct net_device *
static struct net_device *
mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum)
mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum)
@@ -1372,15 +1370,7 @@ mpt_register_lan_device (MPT_ADAPTER *mpt_dev, int pnum)
	priv->tx_max_out = (tx_max_out_p <= MPT_TX_MAX_OUT_LIM) ?
	priv->tx_max_out = (tx_max_out_p <= MPT_TX_MAX_OUT_LIM) ?
			    tx_max_out_p : MPT_TX_MAX_OUT_LIM;
			    tx_max_out_p : MPT_TX_MAX_OUT_LIM;


	dev->open = mpt_lan_open;
	dev->netdev_ops = &mpt_netdev_ops;
	dev->stop = mpt_lan_close;
	dev->get_stats = mpt_lan_get_stats;
	dev->set_multicast_list = NULL;
	dev->change_mtu = mpt_lan_change_mtu;
	dev->hard_start_xmit = mpt_lan_sdu_send;

/* Not in 2.3.42. Need 2.3.45+ */
	dev->tx_timeout = mpt_lan_tx_timeout;
	dev->watchdog_timeo = MPT_LAN_TX_TIMEOUT;
	dev->watchdog_timeo = MPT_LAN_TX_TIMEOUT;


	dlprintk((KERN_INFO MYNAM ": Finished registering dev "
	dlprintk((KERN_INFO MYNAM ": Finished registering dev "