Привет,

пожалуй самый удобный способ обмена, который я встречал в ядре - netlink. И программа, и модуль ядра просто создают по сокету и могут начинать общаться, в сообщение можно упаковывать фактически все что угодно, начиная от обычных стандартных типов и заканчивая массивами и структурами. Есть апи для удобной обработки, контроль ошибок и тд

Если модуль создает устройство в /dev/ тогда можно и в сторону ioctl посмотреть)

 

http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html

http://www.linuxfoundation.org/collaborate/workgroups/networking/generic_netlink_howto