printk(KERN_WARNING'%s: '%s'->init suspiciously returned %d, it should follow 0/-E conventionn''%s: loading module anyway...n',__func__,mod->name, ret,__func__);
dump_stack();
}
//模块初始化完成,更改状态,通知内核
mod->state = MODULE_STATE_LIVE;
blocking_notifier_call_chain(&module_notify_list,MODULE_STATE_LIVE, mod);
if (current->flags & PF_USED_ASYNC)
async_synchronize_full();
mutex_lock(&module_mutex);
/* Drop initial reference. */
module_put(mod);
rim_init_extable(mod);
#ifdef CONFIG_KALLSYMS
mod->num_symtab = mod->core_num_syms;
mod->symtab = mod->core_symtab;
mod->strtab = mod->core_strtab;
#endif
//释放初始化部分空间,这部分只是在初始化有效,初始化结束回收资源,清空
unset_module_init_ro_nx(mod);
module_free(mod, mod->module_init);
mod->module_init = NULL;
mod->init_size = 0;
mod->init_ro_size = 0;
mod->init_text_size = 0;
mutex_unlock(&module_mutex);
wake_up_all(&module_wq);
return 0;
}
int __init_or_module do_one_initcall(initcall_t fn)
{
int count = preempt_count();
int ret;
char msgbuf[64];
if (initcall_debug)
ret = do_one_initcall_debug(fn);
else
ret = fn();//执行模块的init_module函数
msgbuf[0] = 0;
if (preempt_count() != count) {
sprintf(msgbuf, 'preemption imbalance ');
preempt_count() = count;
}
if (irqs_disabled()) {
strlcat(msgbuf, 'disabled interrupts ', sizeof(msgbuf));
local_irq_enable();
}
WARN(msgbuf[0], 'initcall %pF returned with %sn', fn, msgbuf);
return ret;
}
上一篇:Linux驱动之建立一个hello模块
下一篇:S3C2440看门狗定时器原理
推荐阅读最新更新时间:2024-11-16 17:21
设计资源 培训 开发板 精华推荐
- 使用 ON Semiconductor 的 ADP3167 的参考设计
- TEA1836DB1200:TEA1836 45 W 19.5 V QR / DCM壁式充电器
- LTM4620EY 1.2V 和 1V 输出 DC/DC 稳压器的典型应用电路
- STC8A8K64D4
- 具有 8V 栅极驱动器的 LTC3892IUH 高效率、双相降压型 5V/8.5V 转换器的典型应用电路
- ADM1186-1ARQZ 四路电压监控的典型应用电路
- 使用 Infineon Technologies AG 的 OMR7815SR 的参考设计
- TEA1995DB1294: TEA1995T GreenChip Dual SR Controller add-on board for resonant and multi-output flyback (TO-220 MOSFETs)
- LT8494IUF 750kHz、16V 至 32V 输入、48V 输出、0.5A 升压转换器的典型应用电路
- MIKROE-3442,带有 SPD EEPROM 的 CAT34TS02 数字输出温度传感器的 Temp-Log 5 Click 板
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况