Ядро Linux: почему это вызывает крах kstrtol?
Я изучаю программирование ядра и имею простой вызов kstrtol, который я использую для преобразования строки в число. Однако каждый раз, когда я компилирую этот модуль и использую insmod для помещения его в ядро, я получаю "BUG: невозможно обработать пейджинговый запрос ядра на f862b026 " а затем регистр и стек дамп.
м, следуя определению отсюда:https://www.kernel.org/doc/htmldocs/kernel-api/API-kstrtol.html, Это похоже на действительно простой звонок. Что я здесь не так делаю?
#include
static int __init convert(void)
{
long myLong;
char *myNumber = "342";
myNumber[2] = '\0'; //Overwriting the '2', just so I know for sure I have a terminating '\0'
if (kstrtol(myNumber, 10, &myLong) == 0)
{
printk("We have a number!\n");
}
return 0;
}
static void __exit convert_exit(void)
{
printk("Module unloaded\n");
}
module_init(convert);
module_exit(convert_exit);