2013-04-01 5 views
0

я нанес на карту памяти PCI в пользовательском пространстве, какget_user_pages Сбой памяти PCIe

fs = open("/dev/mem",O_RDWR | O_SYNC); 

mmap_src = mmap(NULL, BUFF_COUNT, PROT_READ | PROT_WRITE, MAP_SHARED, fs, 0xe0000000); 

0xe0000000 является устройство памяти PCI AddressOf.

После того, как mmaped get successed, я передаю этот адрес драйверу с помощью функции ioctl.

В коде драйвера

Я называю get_user_pages с этого адреса, который я получил от IOCTL.

В исполнении get_user_pages вызов завершается с ошибкой.

Любая идея, как решить эту проблему.

ответ

0

get_user_pages возвращает указатель на структурную страницу для действительной физической памяти, а не для IO-памяти, поэтому ожидается, что get_user_pages потерпит неудачу для PCI-памяти. До тех пор, пока вы не представите более подробную информацию о своем дизайне, вам трудно предложить, как его исправить.

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