Kernel thread, tasklet, taskqueue, bottom half

From: parrell (parrell_at_baubau.com)
Date: 05/31/04


Date: 30 May 2004 20:53:04 -0700

I am writing L2/L3 interaction module program.(kernel version is 2.4.20)
In that program, when user excutes a IOCTL, L2 module calls L3's callback
function via kernel thread that adds a IPv6 address in the network interface.
Situation is like this

in l2.o -----------------------------

int call(void *data)
{
 ...
 l3_callback();
 ...
}

l2_ioctl()
{
 ...
 case MYV6ADDADDR:
  ...
  kernel_thread(call, my_data, 0);
  ...
 break;
 ...
}

--------------------------- l2.o ----

in l3.o -----------------------------
callback implementation in l3.o

callback_impl()
{
 my_add_v6addr();
}

-------------------------------------

Anyway, kernel threads excute well, so a new IPv6 address added in my interface.

BUT, I WANNA KNOW is that there is another way to perform such task without
kernel thread. (tasklet, taskqueue..., I've tried to use tasklet, but failed)