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 65CEB37147D; Sat, 28 Feb 2026 17:58:48 +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=1772301528; cv=none; b=aG6t9vlIEJH+jIknYcwrlxvVvd/y3/aA506XUqX303OstotRmWY2gWMa2UFGq4Dij81PTHendxpsPzV4hRhmEBxRjX3UtfgnGvYHI0BaTInHdZBnbTkHAXgaZjGRqz8Uiq551Bs9cDgyILxtcOqneLfHKI+wvskFZvD9QXTbcpI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772301528; c=relaxed/simple; bh=DXvnn4pqLxhUTyTe3v2FJbPXsGLM/T0ZvX9QUX762Bo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KLMh010ES0NbRpuVzcWW18758sIs/3SPeqoQdaBecpdWQaupakZVty9ESmRiQGeqX9WaKVeZVZkB3pIqpSiPUj6TfkQVtdUo/hDnpQGct6DXKk9fBRNAgTx20N+7i35P8f2DVuihcZFO9rrZJ2V5wll4TI6KbGU6lgXVsAPryLI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VXZRgj7/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VXZRgj7/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7ED4FC116D0; Sat, 28 Feb 2026 17:58:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772301528; bh=DXvnn4pqLxhUTyTe3v2FJbPXsGLM/T0ZvX9QUX762Bo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VXZRgj7/2nLF7cVGFOswWfbjKQX9QWCKlr0qQRiAnM/8jnkhDoA52u1GMjMVFtmBr ARxok3ofZ7G7pUqZXM8nBtXSQhuPTKHGgLIUReFBzzzA+fUSwmqs4KiDFEmD28lW9f itP3zG4x9RC+LaHwt2ZBh8sckGvg+586mcrQkrvmHIPGud7BVwdh8Gqf+6r8sfycNI URKKxGxhks/APJbCRwlNlvSdn+5+CdHzAsja1HOCAX+O7Zbar4VK1GZzXZovlgxlAB TjX57DYxh+3cYUTa6c1K1HPPGETEIkaVRuTpFcWM4WwXQ19sVOSZmRNUCsmzEWk9MS k1l2lsSr19vqw== From: Sasha Levin To: patches@lists.linux.dev Cc: Ethan Nelson-Moore , stable@vger.kernel.org, Johannes Berg , Aleksandr Loktionov , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.18 710/752] net: intel: fix PCI device ID conflict between i40e and ipw2200 Date: Sat, 28 Feb 2026 12:47:01 -0500 Message-ID: <20260228174750.1542406-710-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228174750.1542406-1-sashal@kernel.org> References: <20260228174750.1542406-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Ethan Nelson-Moore [ Upstream commit d03e094473ecdeb68d853752ba467abe13e1de44 ] The ID 8086:104f is matched by both i40e and ipw2200. The same device ID should not be in more than one driver, because in that case, which driver is used is unpredictable. Fix this by taking advantage of the fact that i40e devices use PCI_CLASS_NETWORK_ETHERNET and ipw2200 devices use PCI_CLASS_NETWORK_OTHER to differentiate the devices. Fixes: 2e45d3f4677a ("i40e: Add support for X710 B/P & SFP+ cards") Cc: stable@vger.kernel.org Acked-by: Johannes Berg Signed-off-by: Ethan Nelson-Moore Reviewed-by: Aleksandr Loktionov Link: https://patch.msgid.link/20260210021235.16315-1-enelsonmoore@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/intel/i40e/i40e_main.c | 8 +++++++- drivers/net/wireless/intel/ipw2x00/ipw2200.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index d3bc3207054f9..02de186dcc8f5 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -75,7 +75,13 @@ static const struct pci_device_id i40e_pci_tbl[] = { {PCI_VDEVICE(INTEL, I40E_DEV_ID_10G_BASE_T4), 0}, {PCI_VDEVICE(INTEL, I40E_DEV_ID_10G_BASE_T_BC), 0}, {PCI_VDEVICE(INTEL, I40E_DEV_ID_10G_SFP), 0}, - {PCI_VDEVICE(INTEL, I40E_DEV_ID_10G_B), 0}, + /* + * This ID conflicts with ipw2200, but the devices can be differentiated + * because i40e devices use PCI_CLASS_NETWORK_ETHERNET and ipw2200 + * devices use PCI_CLASS_NETWORK_OTHER. + */ + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, I40E_DEV_ID_10G_B), + PCI_CLASS_NETWORK_ETHERNET << 8, 0xffff00, 0}, {PCI_VDEVICE(INTEL, I40E_DEV_ID_KX_X722), 0}, {PCI_VDEVICE(INTEL, I40E_DEV_ID_QSFP_X722), 0}, {PCI_VDEVICE(INTEL, I40E_DEV_ID_SFP_X722), 0}, diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c index 24a5624ef2071..3876010c2ce8f 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c @@ -11387,7 +11387,13 @@ static const struct pci_device_id card_ids[] = { {PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, 0x2754, 0, 0, 0}, {PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, 0x2761, 0, 0, 0}, {PCI_VENDOR_ID_INTEL, 0x1043, 0x8086, 0x2762, 0, 0, 0}, - {PCI_VDEVICE(INTEL, 0x104f), 0}, + /* + * This ID conflicts with i40e, but the devices can be differentiated + * because i40e devices use PCI_CLASS_NETWORK_ETHERNET and ipw2200 + * devices use PCI_CLASS_NETWORK_OTHER. + */ + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x104f), + PCI_CLASS_NETWORK_OTHER << 8, 0xffff00, 0}, {PCI_VDEVICE(INTEL, 0x4220), 0}, /* BG */ {PCI_VDEVICE(INTEL, 0x4221), 0}, /* BG */ {PCI_VDEVICE(INTEL, 0x4223), 0}, /* ABG */ -- 2.51.0