linux-kernel - 在 URB 完成例程中调用 send_sig_info() 是否安全?
问题描述
我们知道 USB URB 完成回调将在 softIRQ 上下文中执行。让我解释一下我尝试使用 send_sig_info() 的背景。所以我目前正在数据采集委员会工作。为此,在 USB 设备端,我有两个模块,FPGA 和 FX3 USB 芯片。FX3 设备固件暴露了 4 个端点。在 4 个 EP 中,2 个用于 FPGA 的寄存器读/写,1 个用于捕获 Interrupt IN EP。
我的项目中有一个要求是在中断 IN EP 上捕获 FPGA 的中断信号(FPGA 在 GPIO 引脚上向 FX3 提供中断,作为响应,FX3 将产生虚拟数据),并且在设备驱动程序内部成功接收到中断信号后,读取 FPGA 中断状态使用批量 urb 注册。所以在中断 IN urb 完成回调中,我打算提交批量 urb 以读取 FPGA 中断寄存器。
现在不解释了,进入重点。在成功读取 FPGA 的中断状态寄存器值后的上述批量 urb 完成回调中,我需要使用信号将该整数值发送给 userapp。这样 userapp 事件引擎将执行正确的操作。
那么在批量 urb 完成回调中调用 send_sig_info() 将数据传递给 userapp 是否安全?
解决方案
推荐阅读
- asp.net - 面临使用 filehelper.dll 导出 CSV 的问题
- python - Flask - 获取点击的链接信息并显示在渲染页面上
- html - 加速移动页面 (AMP) -HTML
- java - 如何在 java8 中定义没有 args 的函数或返回值?
- vhdl - Lattice Fpga 内部时钟
- android-studio - Android Studio 无法清理项目
- c++ - Boost Unit testing - 在哪里找到makefile
- javascript - 理解 JavaScript 中的 async 和 await
- javascript - 基于网格高度的颜色 Three.js
- javascript - Javascript多维数组删除