免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2145 | 回复: 6
打印 上一主题 下一主题

请教:linux2.6.24后do_softirq的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-19 16:41 |只看该作者 |倒序浏览
小弟学习linux时间不长,2个多月,碰到这个问题,求教,谢谢!
关于软中断:
一个驱动的移植,驱动中调用了do_softirq函数,在2.6.18时还有的do_softirq函数在2.6.24后就没有EXPORT_SYMBOL(do_softirq)了,然后在Module_symvers中就没有了这个,然后就不能调用了,如何解决,有什么替换的函数吗?

[ 本帖最后由 wvyeahnm 于 2009-5-19 16:42 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-05-19 17:18 |只看该作者
#include <linux/interrupt.h>

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
3 [报告]
发表于 2009-05-20 08:41 |只看该作者

回复 #1 wvyeahnm 的帖子

楼没找着吧,是有的。
分别在/kernel/softirq.c和arch/x86/kernel/irq_32.c

论坛徽章:
0
4 [报告]
发表于 2009-05-20 09:55 |只看该作者
感谢楼上两位回答
头文件已经包含了,如果不包含应该报错,现在报的是一个警告说do_softirq没有定义。
.ko文件能生成,但是加载时不行,因为内核中没有可以被调用的该函数,我网上找了搜索了一些,大概是因为没有EXPORT_SYMBOL(do_softirq),然后在/usr/src/linux/Module_symvers中就没有该函数。
内核中是有这个函数,但是不能被其他模块调用。

3楼说的是之前版本,2.6.20中在可以在/kernel/softirq.c和\arch\i386\kernel\irq.c中找到EXPORT_SYMBOL(do_softirq),但是2.6.24就没有了。

不知道我有说清楚怎么回事了没。

论坛徽章:
0
5 [报告]
发表于 2009-05-20 10:49 |只看该作者
原帖由 wvyeahnm 于 2009-5-20 09:55 发表
感谢楼上两位回答
头文件已经包含了,如果不包含应该报错,现在报的是一个警告说do_softirq没有定义。
.ko文件能生成,但是加载时不行,因为内核中没有可以被调用的该函数,我网上找了搜索了一些,大概是因为 ...


如果你确认你得代码没有问题的话,直接EXPORT_SYMBOL出来就OK了。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
6 [报告]
发表于 2009-05-20 12:23 |只看该作者

回复 #4 wvyeahnm 的帖子

我看的源码可是linux2.6.29 什么以后的版本没有了?没搞清楚你的意思!

论坛徽章:
0
7 [报告]
发表于 2009-05-20 14:58 |只看该作者
回楼上,我也不知道是不是以后都没有了,我接触linux才3月不到
2.6.24的Changelog里面有
    [SOFTIRQ]: Remove do_softirq() symbol export.
我没有更高版本的,估计又给恢复了。

其实自己加上不错,谢谢两位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP