user callback requirement from kernel mode

I have a requirement to use a freeware linux user mode library for data processing.
The input data is purely in kernel space and we are finding it very difficult to port
whole freeware community based project to build under linux kernel build system !

So normally the requirement is to make a callback from kernel to user mode,
call user mode lib and let it process input data
return back to kernel mode and signal the consumer.
Is it possible to achieve kernel to user mode callback ?
If it's not possible, then I have another idea to create a user mode thread making kernel calls (ioctl),
which initially blocked, being signalled when there is sufficient data. Come back to user mode,
process data in user mode, make an ioctl call, switch to kernel mode,
unblock consumer.
But the second scheme will be costlier and include 2 context switch and also difficult
to adapt in our enviornment.

Your suggestions will be very helpful.

Many Thanks