Re: [PATCH] wifi: mwifiex: fix freeze for 60 seconds caused by request_firmware

From: Francesco Dolcini

Date: Wed Jul 15 2026 - 11:37:22 EST


On Mon, Jul 13, 2026 at 01:17:09AM +0300, Georgi Valkov wrote:
> Fix regression in rgpower table loading, caused by using
> request_firmware(): when the requested firmware does not exist, e.g.
> nxp/rgpower_WW.bin does not exist on OpenWRT builds for WRT3200ACM,
> request_firmware() falls back to firmware_fallback_sysfs(), which expects
> the firmware to be provided by user space using SYSFS. No such utility is
> provided in this configuration, so the entire system locks up for 60
> seconds, until the request times out. During this time, no other log
> messages are observed, and the device does not respond to commands over
> UART.
>
> The request_firmware() call is performed in the following context:
> current->comm kworker/1:2 in_task 1 irqs_disabled 0 in_atomic 0
>
> Fixed by using request_firmware_direct(). This prevents fallback to SYSFS,
> and avoids delay. The rgpower table is optional. The driver falls back
> to the device tree power table if the firmware is not present.
>
> The error code is printed for debugging and returned to the caller,
> which only cares for success or failure, so there are no side effects.
>
> Fixes: 7b6f16a25806 ("wifi: mwifiex: add rgpower table loading support")
> Signed-off-by: Georgi Valkov <gvalkov@xxxxxxxxx>

Reviewed-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>