From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm2-f13.google.com (mail-wm2-f13.google.com [74.125.225.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 431AE38F92A for ; Sat, 3 Oct 2026 19:23:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.225.141 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791055385; cv=none; b=SLxZaXrUog3LoIbzK/4tTIoph6uA+kLXth47JhkcD/3m39ujknGM8UKIilEnWPAid3rhya2It6QESglVrcJK3oz86RuVgDQE72K31bf5xn16RvtaZz+1mXu+AL5nxR2GPzN2mHRGuvsdnkHE9mMfvFFS1SpPNaD+INlTIwhwkxY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791055385; c=relaxed/simple; bh=XHE6A5BN8v6Dp+xVYIMHhiMfFNUVP0eMVpusbjehULs=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=U2ED4RnMNrik6WLh25tSHiievRUu/csjdY+R7lC+ob1acaibE1a471oS/E0UpIKlx9czldWR8woa0lL0epsQbBEaWxjxuv/nUgQulK8zD8nVOIzR+1Auytd6WVj3y80m7dBp6W8SP4SEz850V/P06Pa7BPjWVEQRUMteUytJ6e4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Odq6H+qt; arc=none smtp.client-ip=74.125.225.141 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Odq6H+qt" Received: by mail-wm2-f13.google.com with SMTP id 5b1f17b1804b1-49b912d8239so6444115e9.0 for ; Sat, 03 Oct 2026 12:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791055382; x=1791660182; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=N87SDrTNrT62RbYNdy57gjkPfRU5M8XA+xJLqbWkO+w=; b=Odq6H+qtr0Ov9UDCNWQA0fHAbNpUBcCpeacWspyyYjR++fp9e2Bn6ql1ivTIvSANTO wkTcM/PrbLTHXKQZY1Kzvx9npoSwaAl81DQhVa+oXyPlRPASrcJ7pVW4NMhDKid9GNoo H9akM3ckJQxVcsqLlWWQIW5vKoLtaS9cmtcffQL/bUwGVTAFb7/0u4e4GyuKYrXjAYVr 2DcSLUFqnoVwTzr4qjqt4OWaf1JZvgr2h8QVUK67zN5ZXfv8qwEwt0ctT+UDwrYYA2ad RVqrb2EFkNZZzqptQSqqt1RL+X7/JtasTEqK2NG45FltiTZ2qZvIbee22j9GxVxpbOYG zvSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791055382; x=1791660182; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=N87SDrTNrT62RbYNdy57gjkPfRU5M8XA+xJLqbWkO+w=; b=ePecflzD9ezhdYqhbAFYTnnst+uq5YdG509Jy/Muc8FLEIGCcT5Xj6B5NqdTlwbIoB fWB7zVuljKn2SUQFdgIargsclpZq/6ETzyWfVRQtMHFnwteD8XuJESwffNKZGWEzIUKi uJEKyNpy9U74nNM9Kie1OXC6QgRbWkddrTYVqxsSQXWUY8XcIeS8EpS971CKPLHSmjC6 WsGYfSmA7iRqLKY0e5QVUI6slQiOP/56ilLo20Z+SoTld9j9bMKYGcUClZJg5aiL1yc+ jqT3SMitVbucjPjoRC6TcQIizzefLR7iBPQCZ9123zt2uajW3sYHbVPJxmUJUsNQCivT rJUQ== X-Forwarded-Encrypted: i=1; AKwUvBzKh247+uP2QCdffPoceg1WflG6ExgDfs6zEC8iIz8tiHb+zgO8ndzrkiB3Ztl7puknaVyZ5XP3CYOPjws=@vger.kernel.org X-Gm-Message-State: AFuF++nPfeXAbjghZ53+/0RB/5e3boeiOlMBeVh2kESyncE8+8pTSrWo pS/XHKf0v0HArhopXVR0Yph1W/tZgPL/td9PrHs7o7p76RDNXNQYV3cH X-Gm-Gg: AYBFou3dVFWttgPzgqCfy1UX3Wn4tRHziP7Vza0yMeyEcnBCYsfpDEyTN7ufIL3eaDU +VpP6yy//9wCAoPwzm5Nf23AXPB8r3l3rd+Zz+PE0d2bgHCBEHgjnrYvAC1/eKcTKHcHVl/5101 AyLakASX2Mc4ejzxKizddQ3vnVK9N2ET+xQHHP10DWAfPN+d7ttrBBViXxhv6tJYRbIvKygplp+ N6ARFlATuVGhtz7tK9KELhdIi50IjHbZ6nJ39vBOx1RVOhqWwGtZT/qBBogxVLur0Hl4shpJRPC 9gylxmrL6j8EQ5ZxDual67AaARI7Kf8wYAbsddDip97DNaBaRyc8QEw91Yzm6P6kg7fyCrHvhYP 8yV81rXT2vRx2HMUK4Cq9njGkaWsCXyyfCXd2XkY3SKdUItVSbl0xq4Jtfu8ekLQ7MPQC/6FURb SkOPZqANhshp+FgDnErvuNKuCODdtCnxu6BfGMbATpW6lWBhTH91bJKE/DBD62XAXzt3cs6JzJv 3gW/QZ+UFA2OcdNrBpkVWza86u7whASd1DBeKiTV55FQdSI0/m2QyBPN1TZEJKJmagNyUsV0iwa L80v0r0aqiyIdUK6jLWWnUJUAbOwy/P6fhNyvgtyU6JQ5R3uke3yi0xG1LOBr9dJd9RD1/UDik0 zGA== X-Received: by 2002:a05:600c:4e87:b0:4a0:3a3:33e2 with SMTP id 5b1f17b1804b1-4a027567702mr115370855e9.5.1791055382292; Sat, 03 Oct 2026 12:23:02 -0700 (PDT) Received: from localhost.localdomain (dynamic-2a02-3100-b2e2-2001-c47f-5a89-3d9a-cd2d.310.pool.telefonica.de. [2a02:3100:b2e2:2001:c47f:5a89:3d9a:cd2d]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a0394e6c5asm150040485e9.2.2026.10.03.12.23.01 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 03 Oct 2026 12:23:01 -0700 (PDT) From: Karl Mehltretter To: Jeff Chen , Francesco Dolcini Cc: Karl Mehltretter , Johannes Berg , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH wireless] wifi: nxpwifi: fail the firmware download on a poll timeout Date: Sat, 3 Oct 2026 21:22:56 +0200 Message-Id: <20261003192256.78255-1-kmehltretter@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit nxpwifi_sdio_poll_card_status() returns the result of the last register read when the requested status bits never show up. That read succeeded, so a timeout is reported as success. nxpwifi_prog_fw_w_helper() therefore skips its "poll status timeout" branch on a timeout. With an emulated SDIO card that never gets ready, the driver logs "FW download complete (0 bytes)" and gives up 30 seconds later with "FW failed to be active in time". Return -ETIMEDOUT when the poll runs out of tries. mwifiex, which this function was derived from, returns an error in the same place. Noticed while looking at a clang -Wconditional-uninitialized warning on this return statement. Tested only in QEMU with an SDIO card model written for this test, not on real hardware. Fixes: 73b01e57ed3e ("wifi: nxp: add nxpwifi driver for IW61x") Assisted-by: LLM Signed-off-by: Karl Mehltretter --- drivers/net/wireless/nxp/nxpwifi/sdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/nxp/nxpwifi/sdio.c b/drivers/net/wireless/nxp/nxpwifi/sdio.c index 8ef0f6eb49e2..a0d7196c13a2 100644 --- a/drivers/net/wireless/nxp/nxpwifi/sdio.c +++ b/drivers/net/wireless/nxp/nxpwifi/sdio.c @@ -665,7 +665,7 @@ nxpwifi_sdio_poll_card_status(struct nxpwifi_adapter *adapter, u8 bits) nxpwifi_dbg(adapter, ERROR, "poll card status failed, tries = %d\n", tries); - return ret; + return ret ?: -ETIMEDOUT; } /* Disable SDIO host interrupt and release IRQ. */ base-commit: e767a4ea70a3992c37ed604157d32f0dfbf9b1e3 -- 2.53.0