#include "ieee802154_i.h"
 #include "cfg.h"
 
-static void ieee802154_tasklet_handler(unsigned long data)
+static void ieee802154_tasklet_handler(struct tasklet_struct *t)
 {
-       struct ieee802154_local *local = (struct ieee802154_local *)data;
+       struct ieee802154_local *local = from_tasklet(local, t, tasklet);
        struct sk_buff *skb;
 
        while ((skb = skb_dequeue(&local->skb_queue))) {
        INIT_LIST_HEAD(&local->interfaces);
        mutex_init(&local->iflist_mtx);
 
-       tasklet_init(&local->tasklet,
-                    ieee802154_tasklet_handler,
-                    (unsigned long)local);
+       tasklet_setup(&local->tasklet, ieee802154_tasklet_handler);
 
        skb_queue_head_init(&local->skb_queue);