aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/hp/sim/simeth.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/hp/sim/simeth.c')
-rw-r--r--arch/ia64/hp/sim/simeth.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c
index 3d47839a0c48..e4d8fde68103 100644
--- a/arch/ia64/hp/sim/simeth.c
+++ b/arch/ia64/hp/sim/simeth.c
@@ -167,6 +167,15 @@ netdev_read(int fd, unsigned char *buf, unsigned int len)
167 return ia64_ssc(fd, __pa(buf), len, 0, SSC_NETDEV_RECV); 167 return ia64_ssc(fd, __pa(buf), len, 0, SSC_NETDEV_RECV);
168} 168}
169 169
170static const struct net_device_ops simeth_netdev_ops = {
171 .ndo_open = simeth_open,
172 .ndo_stop = simeth_close,
173 .ndo_start_xmit = simeth_tx,
174 .ndo_get_stats = simeth_get_stats,
175 .ndo_set_multicast_list = set_multicast_list, /* not yet used */
176
177};
178
170/* 179/*
171 * Function shared with module code, so cannot be in init section 180 * Function shared with module code, so cannot be in init section
172 * 181 *
@@ -206,14 +215,10 @@ simeth_probe1(void)
206 215
207 memcpy(dev->dev_addr, mac_addr, sizeof(mac_addr)); 216 memcpy(dev->dev_addr, mac_addr, sizeof(mac_addr));
208 217
209 local = dev->priv; 218 local = netdev_priv(dev);
210 local->simfd = fd; /* keep track of underlying file descriptor */ 219 local->simfd = fd; /* keep track of underlying file descriptor */
211 220
212 dev->open = simeth_open; 221 dev->netdev_ops = &simeth_netdev_ops;
213 dev->stop = simeth_close;
214 dev->hard_start_xmit = simeth_tx;
215 dev->get_stats = simeth_get_stats;
216 dev->set_multicast_list = set_multicast_list; /* no yet used */
217 222
218 err = register_netdev(dev); 223 err = register_netdev(dev);
219 if (err) { 224 if (err) {
@@ -325,7 +330,7 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
325 * we get DOWN then UP. 330 * we get DOWN then UP.
326 */ 331 */
327 332
328 local = dev->priv; 333 local = netdev_priv(dev);
329 /* now do it for real */ 334 /* now do it for real */
330 r = event == NETDEV_UP ? 335 r = event == NETDEV_UP ?
331 netdev_attach(local->simfd, dev->irq, ntohl(ifa->ifa_local)): 336 netdev_attach(local->simfd, dev->irq, ntohl(ifa->ifa_local)):
@@ -380,7 +385,7 @@ frame_print(unsigned char *from, unsigned char *frame, int len)
380static int 385static int
381simeth_tx(struct sk_buff *skb, struct net_device *dev) 386simeth_tx(struct sk_buff *skb, struct net_device *dev)
382{ 387{
383 struct simeth_local *local = dev->priv; 388 struct simeth_local *local = netdev_priv(dev);
384 389
385#if 0 390#if 0
386 /* ensure we have at least ETH_ZLEN bytes (min frame size) */ 391 /* ensure we have at least ETH_ZLEN bytes (min frame size) */
@@ -443,7 +448,7 @@ simeth_rx(struct net_device *dev)
443 int len; 448 int len;
444 int rcv_count = SIMETH_RECV_MAX; 449 int rcv_count = SIMETH_RECV_MAX;
445 450
446 local = dev->priv; 451 local = netdev_priv(dev);
447 /* 452 /*
448 * the loop concept has been borrowed from other drivers 453 * the loop concept has been borrowed from other drivers
449 * looks to me like it's a throttling thing to avoid pushing to many 454 * looks to me like it's a throttling thing to avoid pushing to many
@@ -507,7 +512,7 @@ simeth_interrupt(int irq, void *dev_id)
507static struct net_device_stats * 512static struct net_device_stats *
508simeth_get_stats(struct net_device *dev) 513simeth_get_stats(struct net_device *dev)
509{ 514{
510 struct simeth_local *local = dev->priv; 515 struct simeth_local *local = netdev_priv(dev);
511 516
512 return &local->stats; 517 return &local->stats;
513} 518}