--- ib-net.h.orig 2005-10-09 14:37:27.000000000 +1000 +++ ib-net.h 2005-10-09 14:37:40.000000000 +1000 @@ -179,4 +179,4 @@ static inline void ib_net_schedule(struc extern void ib_net_parse(struct ib_net_modem_t *modem, int nbuf); extern int ib_net_fill(struct ib_net_modem_t *modem); extern void ib_net_deregister(struct ib_net_modem_t *modem); -extern struct ib_net_modem_t *ib_net_register(u_char *name); +extern struct ib_net_modem_t *ib_net_register(u_char *name, struct device *device); --- ib-net.c.orig 2005-10-09 14:21:34.000000000 +1000 +++ ib-net.c 2005-10-09 14:37:05.000000000 +1000 @@ -291,7 +291,7 @@ static int ib_net_ioctl(struct net_devic * ib_net_register - register network device. * @name: return device name. */ -struct ib_net_modem_t *ib_net_register(u_char *name) +struct ib_net_modem_t *ib_net_register(u_char *name, struct device *device) { struct ib_net_modem_t *modem; struct net_device *dev; @@ -315,6 +315,8 @@ struct ib_net_modem_t *ib_net_register(u dev->tx_timeout = ib_net_tx_timeout; dev->watchdog_timeo = HZ * 10; strcpy(dev->name, ifname); + if (device != NULL) + SET_NETDEV_DEV(dev, device); if (register_netdev(dev)) { kfree(modem); return NULL; --- ib-pcmcia.c.orig 2005-10-09 14:21:34.000000000 +1000 +++ ib-pcmcia.c 2005-10-09 14:25:12.000000000 +1000 @@ -742,7 +742,7 @@ next_entry: if (local->mem == NULL) goto failed3; local->ctl = local->mem + (version < 2 ? 0x0800 : 0x1000); - local->modem = ib_net_register(local->node.dev_name); + local->modem = ib_net_register(local->node.dev_name, &handle_to_dev(handle)); if (local->modem == NULL) goto failed4; ib_net_addr(local->modem, local->mem + OFFSET_UT_ETHERNET); --- ib-usb.c.orig 2005-10-09 15:02:13.000000000 +1000 +++ ib-usb.c 2005-10-09 15:02:24.000000000 +1000 @@ -290,7 +290,7 @@ static int ib_usb_probe(struct usb_inter DEBUG(1, "ib-usb: invalid response\n"); goto failed; } - priv->modem = ib_net_register(NULL); + priv->modem = ib_net_register(NULL, NULL); if (priv->modem == NULL) { DEBUG(1, "ib-usb: ib_net_register failed\n"); goto failed;