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

Commit 748ff68f authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

hippi: convert driver to net_device_ops



Convert the HIPPI infrastructure for use with net_device_ops.

Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fd8f4997
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -63,6 +63,16 @@ MODULE_LICENSE("GPL");

static char version[] __devinitdata = "rrunner.c: v0.50 11/11/2002  Jes Sorensen (jes@wildopensource.com)\n";


static const struct net_device_ops rr_netdev_ops = {
	.ndo_open 		= rr_open,
	.ndo_stop		= rr_close,
	.ndo_do_ioctl		= rr_ioctl,
	.ndo_start_xmit		= rr_start_xmit,
	.ndo_change_mtu		= hippi_change_mtu,
	.ndo_set_mac_address	= hippi_mac_addr,
};

/*
 * Implementation notes:
 *
@@ -115,10 +125,7 @@ static int __devinit rr_init_one(struct pci_dev *pdev,
	spin_lock_init(&rrpriv->lock);

	dev->irq = pdev->irq;
	dev->open = &rr_open;
	dev->hard_start_xmit = &rr_start_xmit;
	dev->stop = &rr_close;
	dev->do_ioctl = &rr_ioctl;
	dev->netdev_ops = &rr_netdev_ops;

	dev->base_addr = pci_resource_start(pdev, 0);

+3 −1
Original line number Diff line number Diff line
@@ -32,7 +32,9 @@ struct hippi_cb {
};

extern __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev);

extern int hippi_change_mtu(struct net_device *dev, int new_mtu);
extern int hippi_mac_addr(struct net_device *dev, void *p);
extern int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p);
extern struct net_device *alloc_hippi_dev(int sizeof_priv);
#endif

+9 −5
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ __be16 hippi_type_trans(struct sk_buff *skb, struct net_device *dev)

EXPORT_SYMBOL(hippi_type_trans);

static int hippi_change_mtu(struct net_device *dev, int new_mtu)
int hippi_change_mtu(struct net_device *dev, int new_mtu)
{
	/*
	 * HIPPI's got these nice large MTUs.
@@ -154,12 +154,13 @@ static int hippi_change_mtu(struct net_device *dev, int new_mtu)
	dev->mtu = new_mtu;
	return(0);
}
EXPORT_SYMBOL(hippi_change_mtu);

/*
 * For HIPPI we will actually use the lower 4 bytes of the hardware
 * address as the I-FIELD rather than the actual hardware address.
 */
static int hippi_mac_addr(struct net_device *dev, void *p)
int hippi_mac_addr(struct net_device *dev, void *p)
{
	struct sockaddr *addr = p;
	if (netif_running(dev))
@@ -167,8 +168,9 @@ static int hippi_mac_addr(struct net_device *dev, void *p)
	memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
	return 0;
}
EXPORT_SYMBOL(hippi_mac_addr);

static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
{
	/* Never send broadcast/multicast ARP messages */
	p->mcast_probes = 0;
@@ -181,6 +183,7 @@ static int hippi_neigh_setup_dev(struct net_device *dev, struct neigh_parms *p)
		p->ucast_probes = 0;
	return 0;
}
EXPORT_SYMBOL(hippi_neigh_setup_dev);

static const struct header_ops hippi_header_ops = {
	.create		= hippi_header,
@@ -190,11 +193,12 @@ static const struct header_ops hippi_header_ops = {

static void hippi_setup(struct net_device *dev)
{
	dev->set_multicast_list		= NULL;
#ifdef CONFIG_COMPAT_NET_DEV_OPS
	dev->change_mtu			= hippi_change_mtu;
	dev->header_ops			= &hippi_header_ops;
	dev->set_mac_address 		= hippi_mac_addr;
	dev->neigh_setup 		= hippi_neigh_setup_dev;
#endif
	dev->header_ops			= &hippi_header_ops;

	/*
	 * We don't support HIPPI `ARP' for the time being, and probably