From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from nbd.name (nbd.name [46.4.11.11]) (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 81A9C41D139 for ; Mon, 27 Jul 2026 15:04:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.4.11.11 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785164692; cv=none; b=XW3FhXK8QwABl40pe6xns1dxT69D5x40fK2l/VPzFSxODtXTlW47czSmUIR7YRfOdc5bo9R9qVREhn462LU6E6pXoTPN1qKhfQq2dRvgauEzIwJOcQf5wd0MPGm/z6+WGuvGVPBdI67TJbIK7wzybe6AcGhGT0KgTDG21gVcxHo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785164692; c=relaxed/simple; bh=NsXdmQ9QtSskIfP8BZkEvqFyYCl1RZieknhtb9Ojkd0=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A71q+4pvo7ryXjzbw+KOfsmE4A+49HAhiJqF0kD6VPkiqRiLaGy5KRPWCv23gSTT479ohSlaKDXThKZqgxGMd5m3MSrbeQj2Ue3BQDE96iUOb9nIsyuGqxk4GXwc3/odcu2r3OunLLocnjSKCiMOArYu1Xp8XwS0Py5i5dVUHRo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nbd.name; spf=pass smtp.mailfrom=nbd.name; dkim=pass (1024-bit key) header.d=nbd.name header.i=@nbd.name header.b=O/y3OPBA; arc=none smtp.client-ip=46.4.11.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nbd.name Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nbd.name Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nbd.name header.i=@nbd.name header.b="O/y3OPBA" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=nbd.name; s=20160729; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=X3/Xbk/0x1yo1JkGKtml5Ku7Dp5x6hp4aOFczjEgv4U=; b=O/y3OPBAV5JZr55S7yB5/iehYB ae+qUbufFAIcf1qZ71nbNU/aTc9NOvptED5w2vyOcCY1J57mrXCNw+osKkrYX1MfEAzEt4e/cq0tP PPXez4fxh+/GeunfnGQW+T3YOpOhNs+bs73NVXgm7/cniEYkjPJl7HdcnGuJMK6Ai5jM=; Received: from p200300cadf0126009ebf0dfffe00fa2d.dip0.t-ipconnect.de ([2003:ca:df01:2600:9ebf:dff:fe00:fa2d] helo=max) by ds12 with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1woMsj-008KN0-37 for linux-wireless@vger.kernel.org; Mon, 27 Jul 2026 17:04:42 +0200 From: Felix Fietkau To: linux-wireless@vger.kernel.org Subject: [PATCH mt76 04/15] wifi: mt76: mt7915: release hif2 reference on probe IRQ failure Date: Mon, 27 Jul 2026 15:04:23 +0000 Message-ID: <20260727150434.1778520-4-nbd@nbd.name> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260727150434.1778520-1-nbd@nbd.name> References: <20260727150434.1778520-1-nbd@nbd.name> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The hif2 reference obtained by mt7915_pci_init_hif2() is only released on error paths that key off dev->hif2, which is not assigned until after the IRQ setup. If pci_alloc_irq_vectors() or the primary devm_request_irq() fails, the reference leaks. Drop it explicitly on those paths via mt7915_put_hif2(). Fixes: f68d67623dec ("mt76: mt7915: add Wireless Ethernet Dispatch support") Signed-off-by: Felix Fietkau --- drivers/net/wireless/mediatek/mt76/mt7915/pci.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/pci.c b/drivers/net/wireless/mediatek/mt76/mt7915/pci.c index 12b3e2dd530a..8007e620048b 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/pci.c @@ -144,16 +144,20 @@ static int mt7915_pci_probe(struct pci_dev *pdev, hif2 = mt7915_pci_init_hif2(pdev); ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES); - if (ret < 0) + if (ret < 0) { + mt7915_put_hif2(hif2); goto free_device; + } irq = pdev->irq; } ret = devm_request_irq(mdev->dev, irq, mt7915_irq_handler, IRQF_SHARED, KBUILD_MODNAME, dev); - if (ret) + if (ret) { + mt7915_put_hif2(hif2); goto free_wed_or_irq_vector; + } /* master switch of PCIe tnterrupt enable */ mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); -- 2.53.0