我正在使用该功能创建设备 device_create() 但它在Ubuntu 8.04内核版本2.6.24中创建了一个警告:
警告:格式
的参数太多
以下是我使用此功能的方法:
device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev");
此代码与 Ubuntu 10.04 - 内核版本2.6.32 一起正常工作,但在 Ubuntu 8.04 - 内核版本2.6中创建警告。 24 !
任何人都可以请我更正以删除该警告吗?
提前谢谢你。 娜斯迪胡
答案 0 :(得分:1)
旧的API没有drvdata的第四个参数,你提供的是NULL。所以摆脱NULL,你应该没事。
也就是说,其他API也发生了变化,所以期待其他问题。考虑定义一些在内核版本中做正确事情的预处理器宏。例如:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
#define my_device_create(a, b, c, d) device_create(a, b, c, NULL, d)
#else
#define my_device_create(a, b, c, d) device_create(a, b, c, d)
#endif