public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID
@ 2026-02-06  7:17 Ethan Nelson-Moore
  2026-02-10 14:20 ` patchwork-bot+netdevbpf
  2026-03-02  1:11 ` Stephen Hemminger
  0 siblings, 2 replies; 3+ messages in thread
From: Ethan Nelson-Moore @ 2026-02-06  7:17 UTC (permalink / raw)
  To: netdev
  Cc: Ethan Nelson-Moore, stable, Mirko Lindner, Stephen Hemminger,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Thomas Gleixner, Ingo Molnar

The ID 1186:4302 is matched by both r8169 and skge. The same device ID
should not be in more than one driver, because in that case, which
driver is used is unpredictable. I downloaded the latest drivers for
all hardware revisions of the D-Link DGE-530T from D-Link's website,
and the only drivers which contain this ID are Realtek drivers.
Therefore, remove this device ID from skge.

In the kernel bug report which requested addition of this device ID,
someone created a patch to add the ID to skge. Then, it was pointed
out that this device is an "r8169 in disguise", and a patch was created
to add it to r8169. Somehow, both of these patches got merged. See the
link below.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=38862
Fixes: c074304c2bcf ("add pci-id for DGE-530T")
Cc: stable@vger.kernel.org
Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com>
---
 drivers/net/ethernet/marvell/skge.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
index 05349a0b2db1..cf4e26d337bb 100644
--- a/drivers/net/ethernet/marvell/skge.c
+++ b/drivers/net/ethernet/marvell/skge.c
@@ -78,7 +78,6 @@ static const struct pci_device_id skge_id_table[] = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x4320) }, /* SK-98xx V2.0 */
 	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4b01) },	  /* D-Link DGE-530T (rev.B) */
 	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4c00) },	  /* D-Link DGE-530T */
-	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302) },	  /* D-Link DGE-530T Rev C1 */
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4320) },	  /* Marvell Yukon 88E8001/8003/8010 */
 	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5005) },	  /* Belkin */
 	{ PCI_DEVICE(PCI_VENDOR_ID_CNET, 0x434E) }, 	  /* CNet PowerG-2000 */
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID
  2026-02-06  7:17 [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID Ethan Nelson-Moore
@ 2026-02-10 14:20 ` patchwork-bot+netdevbpf
  2026-03-02  1:11 ` Stephen Hemminger
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-02-10 14:20 UTC (permalink / raw)
  To: Ethan Nelson-Moore
  Cc: netdev, stable, mlindner, stephen, andrew+netdev, davem, edumazet,
	kuba, pabeni, tglx, mingo

Hello:

This patch was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Thu,  5 Feb 2026 23:17:14 -0800 you wrote:
> The ID 1186:4302 is matched by both r8169 and skge. The same device ID
> should not be in more than one driver, because in that case, which
> driver is used is unpredictable. I downloaded the latest drivers for
> all hardware revisions of the D-Link DGE-530T from D-Link's website,
> and the only drivers which contain this ID are Realtek drivers.
> Therefore, remove this device ID from skge.
> 
> [...]

Here is the summary with links:
  - net: ethernet: marvell: skge: remove incorrect conflicting PCI ID
    https://git.kernel.org/netdev/net/c/d01103fdcb87

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID
  2026-02-06  7:17 [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID Ethan Nelson-Moore
  2026-02-10 14:20 ` patchwork-bot+netdevbpf
@ 2026-03-02  1:11 ` Stephen Hemminger
  1 sibling, 0 replies; 3+ messages in thread
From: Stephen Hemminger @ 2026-03-02  1:11 UTC (permalink / raw)
  To: Ethan Nelson-Moore
  Cc: netdev, stable, Mirko Lindner, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Thomas Gleixner,
	Ingo Molnar

On Thu,  5 Feb 2026 23:17:14 -0800
Ethan Nelson-Moore <enelsonmoore@gmail.com> wrote:

> The ID 1186:4302 is matched by both r8169 and skge. The same device ID
> should not be in more than one driver, because in that case, which
> driver is used is unpredictable. I downloaded the latest drivers for
> all hardware revisions of the D-Link DGE-530T from D-Link's website,
> and the only drivers which contain this ID are Realtek drivers.
> Therefore, remove this device ID from skge.
> 
> In the kernel bug report which requested addition of this device ID,
> someone created a patch to add the ID to skge. Then, it was pointed
> out that this device is an "r8169 in disguise", and a patch was created
> to add it to r8169. Somehow, both of these patches got merged. See the
> link below.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=38862
> Fixes: c074304c2bcf ("add pci-id for DGE-530T")
> Cc: stable@vger.kernel.org
> Signed-off-by: Ethan Nelson-Moore <enelsonmoore@gmail.com>

I was intrigued as to how this happened, and sent of AI to find out.

D-Link DGE-530T: Chipset History and Driver Confusion
=====================================================

D-Link shipped multiple hardware revisions of the DGE-530T under the
same product name and packaging, but with completely different chipsets:

  Rev A1 - Marvell 88E8003 (SysKonnect Yukon)
  Rev B1 - Marvell 88E8001 (SysKonnect Yukon)
  Rev B2 - Marvell 88E8001-LKJ1 (SysKonnect Yukon)
  Rev C1 - D-Link DLG10028C, a rebadged Realtek RTL8169

The Marvell-based revisions (A/B) used PCI ID 1186:4b01 and were
driven by skge (the SysKonnect/Marvell Yukon driver, originally
sk98lin). The Realtek-based Rev C1 used PCI ID 1186:4302 and
required the r8169 driver.

So the PCI device IDs were actually different across chipset families,
but they shared the same D-Link vendor ID (1186) and identical product
branding.

Driver history and the VPD problem
-----------------------------------

The original SysKonnect vendor driver (sk98lin) had the D-Link
1186:4c00 entry commented out in its PCI table:

  /* DLink card does not have valid VPD so this driver gags
   * { PCI_VENDOR_ID_DLINK, 0x4c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
   */

The issue wasn't really that the card had bad VPD — D-Link simply
didn't populate the Vital Product Data fields the way SysKonnect's
own boards did, and sk98lin's probe path depended on reading VPD
during initialization. When skge was written as a clean replacement
for sk98lin, it had no VPD dependency, so the D-Link entry (1186:4c00)
went in unconditionally. The 1186:4b01 entry for Rev B was added
later as users reported it.

When the Rev C1 appeared with a Realtek RTL8169 chip, the 1186:4302
PCI ID was added to both the r8169 driver (by Lennart Sorensen in
commit 93a3aa25933461d, July 2011) and to skge's PCI table. This
meant both modules would match the Rev C1 card, even though skge
could never actually drive it — the probe would bail out when it
read the chip ID and got something that wasn't a Yukon. The result
was that lspci would report "Kernel modules: skge, r8169" for the
C1, which was harmless but untidy.

The bogus 1186:4302 entry has since been removed from skge upstream,
though it's unlikely any DGE-530T cards of any revision still exist
in the wild at this point.

The chipset swap was widely regarded as a cost-cutting move that
degraded performance significantly. The Marvell Yukon was well
respected; the Realtek 8169 was not. Many users and integrators
stopped recommending the DGE-530T after the C1 appeared.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-03-02  1:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-06  7:17 [PATCH] net: ethernet: marvell: skge: remove incorrect conflicting PCI ID Ethan Nelson-Moore
2026-02-10 14:20 ` patchwork-bot+netdevbpf
2026-03-02  1:11 ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox