p****s 发帖数: 32405 | 1 【 以下文字转载自 Linux 讨论区 】
发信人: plutus (愿HERO的小朋友们都健康快乐), 信区: Linux
标 题: INIT_WORK从Linux kernel 2.6.20后改了?
发信站: BBS 未名空间站 (Wed Apr 1 12:23:50 2009), 转信
如题,一直用老的2.6.11 kernel compile driver,
这两天刚升级到2.6.24, 发现原来的code不能编译了,
其中一个就是这个INIT_WORK的macro改了,原来老的kernel上
prototype里要传三个参数,
INIT_WORK(struct work_struct *work, void (*function)(void *), void *data);
现在看, 只剩俩了,
INIT_WORK(struct work_struct *work, void (*function)(void *));
难道原来的data被wrap到work里去了? 简单的把第三个argument去掉然后
放到workqueue里虽然能编译, 但是数据是会丢的. |
|