struct net_device *ndev;
        struct napi_struct napi;
 
-       /* Device for printing */
-       struct device *dev;
-
        /* module number */
        unsigned int num;
 
        xord = locl ^ peer;
 
        if ((xord & MSYNC_RB_MASK) == 0x00) {
-               dev_dbg(mod->dev, "no mbox for reading\n");
+               netdev_dbg(mod->ndev, "no mbox for reading\n");
                return -ENOMEM;
        }
 
        xord = locl ^ peer;
 
        if ((xord & MSYNC_WB_MASK) == MSYNC_WB_MASK) {
-               dev_err(mod->dev, "no mbox for writing\n");
+               netdev_err(mod->ndev, "no mbox for writing\n");
                return -ENOMEM;
        }
 
        memcpy_fromio(&desc, desc_addr, sizeof(desc));
 
        if (!(desc.control & DESC_VALID)) {
-               dev_dbg(mod->dev, "%s: no free buffers\n", __func__);
+               netdev_dbg(mod->ndev, "%s: no free buffers\n", __func__);
                return -ENOMEM;
        }
 
        memcpy_fromio(&desc, desc_addr, sizeof(desc));
 
        if (!(desc.control & DESC_VALID)) {
-               dev_dbg(mod->dev, "%s: no buffers to recv\n", __func__);
+               netdev_dbg(mod->ndev, "%s: no buffers to recv\n", __func__);
                return -ENOMEM;
        }
 
  */
 static void ican3_handle_idvers(struct ican3_dev *mod, struct ican3_msg *msg)
 {
-       dev_dbg(mod->dev, "IDVERS response: %s\n", msg->data);
+       netdev_dbg(mod->ndev, "IDVERS response: %s\n", msg->data);
 }
 
 static void ican3_handle_msglost(struct ican3_dev *mod, struct ican3_msg *msg)
         * error frame for userspace
         */
        if (msg->spec == MSG_MSGLOST) {
-               dev_err(mod->dev, "lost %d control messages\n", msg->data[0]);
+               netdev_err(mod->ndev, "lost %d control messages\n", msg->data[0]);
                return;
        }
 
 
        /* we can only handle the SJA1000 part */
        if (msg->data[1] != CEVTIND_CHIP_SJA1000) {
-               dev_err(mod->dev, "unable to handle errors on non-SJA1000\n");
+               netdev_err(mod->ndev, "unable to handle errors on non-SJA1000\n");
                return -ENODEV;
        }
 
        /* check the message length for sanity */
        if (le16_to_cpu(msg->len) < 6) {
-               dev_err(mod->dev, "error message too short\n");
+               netdev_err(mod->ndev, "error message too short\n");
                return -EINVAL;
        }
 
         */
        if (isrc == CEVTIND_BEI) {
                int ret;
-               dev_dbg(mod->dev, "bus error interrupt\n");
+               netdev_dbg(mod->ndev, "bus error interrupt\n");
 
                /* TX error */
                if (!(ecc & ECC_DIR)) {
                 */
                ret = ican3_set_buserror(mod, 1);
                if (ret) {
-                       dev_err(mod->dev, "unable to re-enable bus-error\n");
+                       netdev_err(mod->ndev, "unable to re-enable bus-error\n");
                        return ret;
                }
 
 
        /* data overrun interrupt */
        if (isrc == CEVTIND_DOI || isrc == CEVTIND_LOST) {
-               dev_dbg(mod->dev, "data overrun interrupt\n");
+               netdev_dbg(mod->ndev, "data overrun interrupt\n");
                cf->can_id |= CAN_ERR_CRTL;
                cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW;
                stats->rx_over_errors++;
 
        /* error warning + passive interrupt */
        if (isrc == CEVTIND_EI) {
-               dev_dbg(mod->dev, "error warning + passive interrupt\n");
+               netdev_dbg(mod->ndev, "error warning + passive interrupt\n");
                if (status & SR_BS) {
                        state = CAN_STATE_BUS_OFF;
                        cf->can_id |= CAN_ERR_BUSOFF;
                complete(&mod->termination_comp);
                break;
        default:
-               dev_err(mod->dev, "received an unknown inquiry response\n");
+               netdev_err(mod->ndev, "received an unknown inquiry response\n");
                break;
        }
 }
 static void ican3_handle_unknown_message(struct ican3_dev *mod,
                                        struct ican3_msg *msg)
 {
-       dev_warn(mod->dev, "received unknown message: spec 0x%.2x length %d\n",
+       netdev_warn(mod->ndev, "received unknown message: spec 0x%.2x length %d\n",
                           msg->spec, le16_to_cpu(msg->len));
 }
 
  */
 static void ican3_handle_message(struct ican3_dev *mod, struct ican3_msg *msg)
 {
-       dev_dbg(mod->dev, "%s: modno %d spec 0x%.2x len %d bytes\n", __func__,
+       netdev_dbg(mod->ndev, "%s: modno %d spec 0x%.2x len %d bytes\n", __func__,
                           mod->num, msg->spec, le16_to_cpu(msg->len));
 
        switch (msg->spec) {
                msleep(10);
        } while (time_before(jiffies, start + HZ / 4));
 
-       dev_err(mod->dev, "failed to reset CAN module\n");
+       netdev_err(mod->ndev, "failed to reset CAN module\n");
        return -ETIMEDOUT;
 }
 
 
        ret = ican3_reset_module(mod);
        if (ret) {
-               dev_err(mod->dev, "unable to reset module\n");
+               netdev_err(mod->ndev, "unable to reset module\n");
                return ret;
        }
 
 
        ret = ican3_msg_connect(mod);
        if (ret) {
-               dev_err(mod->dev, "unable to connect to module\n");
+               netdev_err(mod->ndev, "unable to connect to module\n");
                return ret;
        }
 
        ican3_init_new_host_interface(mod);
        ret = ican3_msg_newhostif(mod);
        if (ret) {
-               dev_err(mod->dev, "unable to switch to new-style interface\n");
+               netdev_err(mod->ndev, "unable to switch to new-style interface\n");
                return ret;
        }
 
        /* default to "termination on" */
        ret = ican3_set_termination(mod, true);
        if (ret) {
-               dev_err(mod->dev, "unable to enable termination\n");
+               netdev_err(mod->ndev, "unable to enable termination\n");
                return ret;
        }
 
        /* default to "bus errors enabled" */
        ret = ican3_set_buserror(mod, 1);
        if (ret) {
-               dev_err(mod->dev, "unable to set bus-error\n");
+               netdev_err(mod->ndev, "unable to set bus-error\n");
                return ret;
        }
 
        ican3_init_fast_host_interface(mod);
        ret = ican3_msg_fasthostif(mod);
        if (ret) {
-               dev_err(mod->dev, "unable to switch to fast host interface\n");
+               netdev_err(mod->ndev, "unable to switch to fast host interface\n");
                return ret;
        }
 
        ret = ican3_set_id_filter(mod, true);
        if (ret) {
-               dev_err(mod->dev, "unable to set acceptance filter\n");
+               netdev_err(mod->ndev, "unable to set acceptance filter\n");
                return ret;
        }
 
        /* open the CAN layer */
        ret = open_candev(ndev);
        if (ret) {
-               dev_err(mod->dev, "unable to start CAN layer\n");
+               netdev_err(mod->ndev, "unable to start CAN layer\n");
                return ret;
        }
 
        /* bring the bus online */
        ret = ican3_set_bus_state(mod, true);
        if (ret) {
-               dev_err(mod->dev, "unable to set bus-on\n");
+               netdev_err(mod->ndev, "unable to set bus-on\n");
                close_candev(ndev);
                return ret;
        }
        /* bring the bus offline, stop receiving packets */
        ret = ican3_set_bus_state(mod, false);
        if (ret) {
-               dev_err(mod->dev, "unable to set bus-off\n");
+               netdev_err(mod->ndev, "unable to set bus-off\n");
                return ret;
        }
 
 
        /* check that we can actually transmit */
        if (!ican3_txok(mod)) {
-               dev_err(mod->dev, "BUG: no free descriptors\n");
+               netdev_err(mod->ndev, "BUG: no free descriptors\n");
                spin_unlock_irqrestore(&mod->lock, flags);
                return NETDEV_TX_BUSY;
        }
        /* bring the bus online */
        ret = ican3_set_bus_state(mod, true);
        if (ret) {
-               dev_err(mod->dev, "unable to set bus-on\n");
+               netdev_err(ndev, "unable to set bus-on\n");
                return ret;
        }
 
 
        ret = wait_for_completion_timeout(&mod->buserror_comp, HZ);
        if (ret == 0) {
-               dev_info(mod->dev, "%s timed out\n", __func__);
+               netdev_info(mod->ndev, "%s timed out\n", __func__);
                return -ETIMEDOUT;
        }
 
 
        ret = wait_for_completion_timeout(&mod->termination_comp, HZ);
        if (ret == 0) {
-               dev_info(mod->dev, "%s timed out\n", __func__);
+               netdev_info(mod->ndev, "%s timed out\n", __func__);
                return -ETIMEDOUT;
        }
 
        platform_set_drvdata(pdev, ndev);
        mod = netdev_priv(ndev);
        mod->ndev = ndev;
-       mod->dev = &pdev->dev;
        mod->num = pdata->modno;
        netif_napi_add(ndev, &mod->napi, ican3_napi, ICAN3_RX_BUFFERS);
        skb_queue_head_init(&mod->echoq);