As we know that USB URB completion callback will execute in softIRQ context. Let me explain the background in which I am trying to use send_sig_info(). So I'm currently working on Data Acquisition Board. For that, At USB device side I have two blocks, The FPGA and FX3 USB chip. FX3 device firmware is exposed 4 endpoints. Out of 4 EPs, 2 is used for register read/write of FPGA, 1 is used to capture Interrupt IN EP.
There is one requirement in my project to capture interrupt signal of FPGA ( FPGA deliver interrupt on GPIO pin to FX3 and in response FX3 will raise dummy data ) on interrupt IN EP and after successful reception of interrupt signal inside device driver, read FPGA interrupt status register using bulk urb. So In the interrupt IN urb completion callback, I'm planning to submit bulk urb to read FPGA interrupt register.
Now No more explanation, coming to the main point. In the above bulk urb completion callback after successfully read FPGA's interrupt status register value, I need to send that integer value to userapp using signal. So that userapp event engine will execute the proper action.
So is it safe to call send_sig_info() inside bulk urb completion callback to deliver data to userapp?