Цитата(krux @ Oct 15 2015, 15:01)

обычно со стороны драйвера непосредственно в ISR делается только самый необходимый минимум, плюс шедулится вызов либо tasklet-а либо work queue.
что выбрать в конкретном случае - зависит от "тяжеловесности" обработки, которую нужно совершить.
для передачи больших объемов информации обычно пользуются либо bsd-сокетами, либо netlink-ом.
и примите как данность, что данные из кернелспейса в юзерспейс передаются копированием, и передать указатель вы не сможете, а если всё же передадите, то ядро срубит userspace-процесс, полезший в память, выделенную в kernelspace.
в linux это by design, для обеспечения безопасности в смысле security.
поэтому заранее оценивайте падение производительности.
подсунуть в ядро память, выделенную в юзерспейсе можно, однако для выполнения DMA-транзакций она не подходит по целому ряду причин.
Со всем согласен, но если использовать расшаренную область памяти, то можно без копирования передавать данные между кернелспейсом и юзерспейсом. Для полноты картины добавил.