uml: disable kmod-8250-serial

The driver tries to access ioports (0x2f9!!) which UML doesn't have.
This causes lots of warnings to appear on boot:

| WARNING: CPU: 0 PID: 1 at lib/logic_iomem.c:188 serial8250_config_port+0x20a/0x1260
| Invalid writeqb of 0xff at address 2f9
| Modules linked in:
| CPU: 0 UID: 0 PID: 1 Comm: swapper Tainted: G        W          6.12.25 #0
| Tainted: [W]=WARN
| Stack:
| Call Trace:
|  [<60001000>] ? set_reset_devices+0x0/0x16
|  [<60452cba>] ? serial8250_config_port+0x20a/0x1260
|  [<6071e91f>] ? dump_stack_lvl+0x55/0x71
|  [<606e127c>] ? _printk+0x0/0x4f
|  [<60044bbb>] ? __warn+0x11b/0x120
|  [<6003b5d0>] ? um_set_signals+0x0/0x40
|  [<606de721>] ? warn_slowpath_fmt+0x81/0x8c
|  [<606de6a0>] ? warn_slowpath_fmt+0x0/0x8c
|  [<60452cba>] ? serial8250_config_port+0x20a/0x1260

(they are even recursive!)

Now, the situation gets more confusing. Because from what I can tell,
this was seemingly done intenionally. Upstream patches in related areas:

|commit ddd268c42871b78c75e12a5c28207fb481138f41
|Author: Niklas Schnelle <schnelle@linux.ibm.com>
|Date:   Wed Apr 3 14:43:00 2024 +0200
|
|    um: Select HAS_IOREMAP for UML_IOMEM_EMULATION
|
|    In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
|    compile time. UML supports these via its UML_IOMEM_EMULATION so let that
|    select HAS_IOPORT and also reflect this in NO_IOPORT_MAP.

hint that there's ongoing work in this area. But unfortunately, this future
hasn't arrived yet. Once this future arrives, please nuke this patch.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
This commit is contained in:
Christian Lamparter 2025-04-26 10:02:53 +02:00
parent 8970559351
commit 67e41d8a34
2 changed files with 2 additions and 0 deletions

View file

@ -563,6 +563,7 @@ $(eval $(call KernelPackage,reed-solomon))
define KernelPackage/serial-8250
SUBMENU:=$(OTHER_MENU)
TITLE:=8250 UARTs
DEPENDS:=@!TARGET_uml
KCONFIG:= CONFIG_SERIAL_8250 \
CONFIG_SERIAL_8250_PCI \
CONFIG_SERIAL_8250_NR_UARTS=16 \

View file

@ -107,6 +107,7 @@ CONFIG_RANDSTRUCT_NONE=y
CONFIG_RD_BZIP2=y
CONFIG_RD_GZIP=y
CONFIG_RELAY=y
# CONFIG_SERIAL_8250 is not set
CONFIG_SG_POOL=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y