總線(xiàn)驅動(dòng)加載設備錯誤解決


從顯示的錯誤回執表,我們你可以看出,是我們的match函數里面的strncmp函數錯了問(wèn)題,訪(fǎng)問(wèn)了空指針。?源代碼如下:?

到底哪里出了問(wèn)題呢??我們明明訪(fǎng)問(wèn)的dev->init_name,和drv->name,難道他們是空指針??
解決:?
我們找到內核代碼:??
1、先從dev->init_name出發(fā)找到device的注冊函數:?

進(jìn)入device_add:?
我們看到其中一段代碼,如果dev->init_name不為空則dev_set_name(dev, "%s", dev->init_name);最后將dev->init_name置為空,問(wèn)題找到了??!?

2、怎么修改呢?設備文件名到底放到哪里了呢?
實(shí)際上,放到了dev->kobj.name里面。


評論