if (!skb)
                return 0;
 
+       /* Clear offset. */
+       desc->offset = 0;
+
        /* Check if we can embed a CAIF frame. */
        if (skb->len < CFHSI_MAX_EMB_FRM_SZ) {
                struct caif_payload_info *info;
                        consume_skb(skb);
                        skb = NULL;
                }
-       } else
-               /* Clear offset. */
-               desc->offset = 0;
+       }
 
        /* Create payload CAIF frames. */
        pfrm = desc->emb_frm + CFHSI_MAX_EMB_FRM_SZ;
        /* Set up the driver. */
        cfhsi->drv.tx_done_cb = cfhsi_tx_done_cb;
        cfhsi->drv.rx_done_cb = cfhsi_rx_done_cb;
+       cfhsi->drv.wake_up_cb = cfhsi_wake_up_cb;
+       cfhsi->drv.wake_down_cb = cfhsi_wake_down_cb;
 
        /* Initialize the work queues. */
        INIT_WORK(&cfhsi->wake_up_work, cfhsi_wake_up);
                goto err_net_reg;
        }
 
-       cfhsi->drv.wake_up_cb = cfhsi_wake_up_cb;
-       cfhsi->drv.wake_down_cb = cfhsi_wake_down_cb;
-
        /* Register network device. */
        res = register_netdev(ndev);
        if (res) {