Function 内核版本2.6.24和2.6.32

Function 内核版本2.6.24和2.6.32,function,linux-kernel,device,Function,Linux Kernel,Device,我正在使用函数创建设备设备\u create() 但是它在Ubuntu 8.04内核版本2.6.24中创建了一个警告: 警告:格式参数太多 以下是我如何使用此功能: device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev"); 同样的代码在Ubuntu10.04内核版本2.6.32上运行良好,但在Ubuntu8.04内核版本2.6.24上创建了一个警告 有人能帮我更正一下,删除那个警告吗 先谢谢你。 Sindhu用于此的旧API

我正在使用函数创建设备设备\u create() 但是它在Ubuntu 8.04内核版本2.6.24中创建了一个警告:

警告:格式参数太多

以下是我如何使用此功能:

device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev");
同样的代码在Ubuntu10.04内核版本2.6.32上运行良好,但在Ubuntu8.04内核版本2.6.24上创建了一个警告

有人能帮我更正一下,删除那个警告吗

先谢谢你。
Sindhu

用于此的旧API没有drvdata的第四个参数,您提供的参数为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

用于此的旧API没有drvdata的第四个参数,您提供的参数为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