From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86D4034D4E4; Tue, 16 Dec 2025 11:46:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765885576; cv=none; b=BbjrvCjQWKQYEXNjtmak6EhTOnK/DyeuGydLMcl1Q91x7E+rkwKaB3bxDdHjT670ebk+hB4LuDDcZNNezagEUqDDB4Qkm3vIKvxurNMfIMn1LIaDo9vhTlXldX9i0tJb//ZP/fBAXbzsrQ3YH7y1r8ogiuDHpOSlNboYhFZeWUc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765885576; c=relaxed/simple; bh=CIJUhA6ZG2XOIgOZoknzMWQIidIKFqrvQqNROXnxYtM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jc2P8PHzEXWaSX7ybOv4sN7HtIO5zT+Gv5CWcU8W8TJSqRaneDkRtzqZdp5UucGNhwgD60w3bfBN3scTojI/RIkxfBKhq0KBO1XELqQq6g1AuF1G8l/y98ayaACzBsExJb9MjqNgdutEliXZtjS4y11n+tSXMAKRFpQP59ahxIM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=pDZVhN6l; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="pDZVhN6l" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EB447C4CEF1; Tue, 16 Dec 2025 11:46:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1765885576; bh=CIJUhA6ZG2XOIgOZoknzMWQIidIKFqrvQqNROXnxYtM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pDZVhN6lkzjubvVfhBFdYDxgdl3zwDXenCRDGfpiGyX7yKPe4X5F91+ChMkS6oOFJ OhywRuItXeOl6ltobDnuElrJqmN5UbW3zpHj+kXKHeK8UZS48OdGXD+jrfjuqq/Xq+ ZfwYyoPsSHFUVJkYc5m/lMfr68DYepjwWwgov6Wg= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Ping-Ke Shih , Fedor Pchelkin , Sasha Levin Subject: [PATCH 6.17 181/507] wifi: rtw89: usb: fix leak in rtw89_usb_write_port() Date: Tue, 16 Dec 2025 12:10:22 +0100 Message-ID: <20251216111352.073218223@linuxfoundation.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20251216111345.522190956@linuxfoundation.org> References: <20251216111345.522190956@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.17-stable review patch. If anyone has any objections, please let me know. ------------------ From: Fedor Pchelkin [ Upstream commit 7543818e97d5d54b3b2f75f1c4dedee298d7d914 ] When there is an attempt to write data and RTW89_FLAG_UNPLUGGED is set, this means device is disconnected and no urb is submitted. Return appropriate error code to the caller to properly free the allocated resources. Found by Linux Verification Center (linuxtesting.org). Fixes: 2135c28be6a8 ("wifi: rtw89: Add usb.{c,h}") Acked-by: Ping-Ke Shih Signed-off-by: Fedor Pchelkin Signed-off-by: Ping-Ke Shih Link: https://patch.msgid.link/20251104135720.321110-3-pchelkin@ispras.ru Signed-off-by: Sasha Levin --- drivers/net/wireless/realtek/rtw89/usb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/usb.c b/drivers/net/wireless/realtek/rtw89/usb.c index e8e064cf7e0ad..512a46dd9d06a 100644 --- a/drivers/net/wireless/realtek/rtw89/usb.c +++ b/drivers/net/wireless/realtek/rtw89/usb.c @@ -256,7 +256,7 @@ static int rtw89_usb_write_port(struct rtw89_dev *rtwdev, u8 ch_dma, int ret; if (test_bit(RTW89_FLAG_UNPLUGGED, rtwdev->flags)) - return 0; + return -ENODEV; urb = usb_alloc_urb(0, GFP_ATOMIC); if (!urb) @@ -305,8 +305,9 @@ static void rtw89_usb_ops_tx_kick_off(struct rtw89_dev *rtwdev, u8 txch) ret = rtw89_usb_write_port(rtwdev, txch, skb->data, skb->len, txcb); if (ret) { - rtw89_err(rtwdev, "write port txch %d failed: %d\n", - txch, ret); + if (ret != -ENODEV) + rtw89_err(rtwdev, "write port txch %d failed: %d\n", + txch, ret); skb_dequeue(&txcb->tx_ack_queue); kfree(txcb); -- 2.51.0