2014-02-13 4 views
0

У меня есть выходной буфер в моем драйвере ядра. И эта доля с моим оборудованием, которое использует его для вывода.Как аннулировать кеш в драйвере ядра?

Когда я получил прерывание, драйвер ядра скопирует данные из выходного буфера в буфер пространства пользователя.

Как я могу аннулировать кеш после того, как драйвер ядра скопировал выходной буфер?

+1

Какой кэш, процессор dcache или какой-либо другой кеш? Если вы выделили буфер с помощью 'kmalloc' и' GFP_KERNEL' и использовали 'copy_to_user' для переноса данных в буфер пользовательского пространства, тогда проблема с кешем не возникает. –

+0

Вы прочитали [DMA API documentation] (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/DMA-API-HOWTO.txt)? –

ответ

0

Я использовал dmac_inv_range(). Передайте начало и конец области, которую вы хотите аннулировать.

Смежные вопросы