免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4552 | 回复: 1

向input_dev.dev.kobject调用sysfs_create_file 报错? [复制链接]

论坛徽章:
0
发表于 2011-06-09 09:21 |显示全部楼层
我的目的是注册一个input_dev型的设备,通过sysfs_create_file给他添加一个属性,但每次加载模块的时候都报段错误(Segment fault),但如果我注册一个platform_device,对platform_device.dev.kobject调用sysfs_create_file就没有问题,是不是input_dev有什么特别的地方呢?


代码:
DEVICE_ATTR(coordinates,0644,NULL,write_vmouse);

static int module_init(void)
{
     struct input_dev *input_dev;
        int error = -ENOMEM;
        struct kobject *kobj;

        vmouse_dev = platform_device_register_simple("vmouse",-1,NULL,0);
        if(IS_ERR(vmouse_dev))
        {
                printk(KERN_ALERT "vmouse_init: platform_device_register_simple error\n");
        }

        input_dev = input_allocate_device();
        if(!input_dev)
                goto err_free;
        vmouse.dev = input_dev;

        input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL);
        input_dev->keybit[BIT_WORD(BTN_MOUSE)] = BIT_MASK(BTN_LEFT) |
                BIT_MASK(BTN_MIDDLE) | BIT_MASK(BTN_RIGHT);
        input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y);

        input_dev->name = "virtual mouse";
        input_dev->phys = "virtual_mouse";
        input_dev->id.bustype = BUS_I8042;
        input_dev->id.vendor = 0x0002;
      
        
        kobj = (struct kobject*) &vmouse_dev->dev.kobj;
        sysfs_create_file(kobj,&dev_attr_coordinates.attr);         //这里出现错误!


        error = input_register_device(input_dev);
        if(error)
                goto err_free;
        return 0;
err_free:
        input_free_device(input_dev);
        return error;
}

论坛徽章:
0
发表于 2011-06-09 11:42 |显示全部楼层
自己找到原因了,sysfs_create_file应该在input_register_device之后。
因为先需要input_register_device会调用device_add(&input_dev.dev)。

话说怎么感觉cu这么冷清啊,我之前发的求助贴都半个多月了也没人回,还是我的提问有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP