今天在编写总线驱动设备的时分,当加载完总线和驱动,再加载设备的时分呈现如下过错:
填写图片摘要(选填)
从显现的过错回执表,咱们你能够看出,是咱们的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里边。