总线驱动加载设备错误解决


从显示的错误回执表,我们你可以看出,是我们的match函数里面的strncmp函数错了问题,访问了空指针。源代码如下:

到底哪里出了问题呢??我们明明访问的dev->init_name,和drv->name,难道他们是空指针??
解决:
我们找到内核代码:
1、先从dev->init_name出发找到device的注册函数:

进入device_add:
我们看到其中一段代码,如果dev->init_name不为空则dev_set_name(dev, "%s", dev->init_name);最后将dev->init_name置为空,问题找到了!!

2、怎么修改呢?设备文件名到底放到哪里了呢?
实际上,放到了dev->kobj.name里面。


评论