загадочный Kernel crash
От: ivrubano  
Дата: 18.05.11 07:09
Оценка:
Здравствейте коллеги,
помогите разобраться в интересной ситуации. Я разрабатываю модуль ядра для линукс и сталкнулся с интересной проблемой: при вызове hcd_buffer_alloc случается crash с сообщением Unable to handle kernel paging request at virtual address. Я немного изменил функцию и пересобрал ядро откуда стало ясно, что Crash случается на строке bus->controller->dma_mask при этом bus != NULL и bus->controller != NULL. Какое объяснение может быть у такого поведения?
Заранее спасибо.
linux kernel
Re: загадочный Kernel crash
От: ilnar Россия  
Дата: 18.05.11 07:27
Оценка:
Здравствуйте, ivrubano, Вы писали:

I>Здравствейте коллеги,

I>помогите разобраться в интересной ситуации. Я разрабатываю модуль ядра для линукс и сталкнулся с интересной проблемой: при вызове hcd_buffer_alloc случается crash с сообщением Unable to handle kernel paging request at virtual address. Я немного изменил функцию и пересобрал ядро откуда стало ясно, что Crash случается на строке bus->controller->dma_mask при этом bus != NULL и bus->controller != NULL. Какое объяснение может быть у такого поведения?
I>Заранее спасибо.

сначала нужно допустить, что bus != NULL и bus->controller != NULL не есть гарантия нормальности указателей, если только не уверенности что они инициализируются нулем, не затираются никогда, и там указатель на "адекватную" память.
насчет "адекватной" памяти, надо убедиться что там ядровая память, не из юзерспейса.
Re: загадочный Kernel crash
От: Mr.Cat  
Дата: 18.05.11 08:03
Оценка:
Здравствуйте, ivrubano, Вы писали:
I>Unable to handle kernel paging request at virtual address.
Я на самом деле просто мимо пробегал и в этих ваших юниксах ничего не понимаю, но выглядит так, как будто ты обращаешься к незамапленной на память странице из обработчика прерывания (когда прерывание по отсутствующей странице не может отработать), т.к. неправильно выделяешь память для обработчика (не из невыгружаемого пула).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.