[PATCH] eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP

Daniel Palmer posted 1 patch 5 months ago
drivers/net/ethernet/realtek/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP
Posted by Daniel Palmer 5 months ago
When 8139too is probing and 8139TOO_PIO=y it will call pci_iomap_range()
and from there __pci_ioport_map() for the PCI IO space.
If HAS_IOPORT_MAP=n and NO_GENERIC_PCI_IOPORT_MAP=n, like it is on my
m68k config, __pci_ioport_map() becomes NULL, pci_iomap_range() will
always fail and the driver will complain it couldn't map the PIO space
and return an error.

NO_IOPORT_MAP seems to cover the case where what 8139too is trying
to do cannot ever work so make 8139TOO_PIO depend on being it false
and avoid creating an unusable driver.

Signed-off-by: Daniel Palmer <daniel@thingy.jp>
---
 drivers/net/ethernet/realtek/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
index fe136f61586f..272c83bfdc6c 100644
--- a/drivers/net/ethernet/realtek/Kconfig
+++ b/drivers/net/ethernet/realtek/Kconfig
@@ -58,7 +58,7 @@ config 8139TOO
 config 8139TOO_PIO
 	bool "Use PIO instead of MMIO"
 	default y
-	depends on 8139TOO
+	depends on 8139TOO && !NO_IOPORT_MAP
 	help
 	  This instructs the driver to use programmed I/O ports (PIO) instead
 	  of PCI shared memory (MMIO).  This can possibly solve some problems
-- 
2.50.1
Re: [PATCH] eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP
Posted by Jakub Kicinski 5 months ago
On Sun,  7 Sep 2025 15:43:49 +0900 Daniel Palmer wrote:
> When 8139too is probing and 8139TOO_PIO=y it will call pci_iomap_range()
> and from there __pci_ioport_map() for the PCI IO space.
> If HAS_IOPORT_MAP=n and NO_GENERIC_PCI_IOPORT_MAP=n, like it is on my
> m68k config, __pci_ioport_map() becomes NULL, pci_iomap_range() will
> always fail and the driver will complain it couldn't map the PIO space
> and return an error.
> 
> NO_IOPORT_MAP seems to cover the case where what 8139too is trying
> to do cannot ever work so make 8139TOO_PIO depend on being it false
> and avoid creating an unusable driver.

Any idea if this is a regression, or the driver would have never worked
on your platform / config?
Re: [PATCH] eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP
Posted by Daniel Palmer 4 months, 4 weeks ago
Hi,

On Wed, 10 Sept 2025 at 10:13, Jakub Kicinski <kuba@kernel.org> wrote:
> Any idea if this is a regression, or the driver would have never worked
> on your platform / config?

I don't think this is a regression. I think the PIO mode would have
never worked.
Without that option the driver probes correctly.