3.2.1.1 open 与 release 逻辑 3.2.1.1 open 与 release 逻辑:当 返回成功, 却从未被调用——一个被 隐蔽吞噬的引用计数陷阱 你有没有遇到过这样的场景? 驱动加载成功,设备节点 创建完毕;用户空间程序 返回 ,一切看似正常;你甚至在 回调里完成了硬件寄存器初始化、DMA 缓冲区分配、中断使能——日志清晰,状态就绪。 可当你 文件描述符时, 回调却像被黑洞吸走一样,静默消失。 更诡异的是: 里找不到任何 的 输出; 显示主设备号仍在; 没爆; 只看到一个进程…… 但 下赫然躺着 三个 指向该字符设备的 fd: (stdin)、 (stdout)、 (stderr)——而你只 过一次。 这不是内存泄漏。 这不是驱动未卸载。