On Fri, May 21, 2021 at 06:08:43AM +0000, Zheyu Ma wrote: > In 'rp2_probe', the driver registers 'rp2_uart_interrupt' then calls > 'rp2_fw_cb' through 'request_firmware_nowait'. In 'rp2_fw_cb', if the > firmware don't exists, function just return without initializing ports > of 'rp2_card'. But now the interrupt handler function has been > registered, and when an interrupt comes, 'rp2_uart_interrupt' may access > those ports then causing NULL pointer dereference or other bugs. > > Because the driver does some initialization work in 'rp2_fw_cb', in > order to make the driver ready to handle interrupts, 'request_firmware' > should be used instead of asynchronous 'request_firmware_nowait'. You just now slowed down the probe function. Are you _sure_ this is ok? Do you have this hardware to test this? If so, what is the init time before and after this change? thanks, greg k-h