From 67e41d8a34d15b0d870875c44a431ed70109bbc4 Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sat, 26 Apr 2025 10:02:53 +0200 Subject: [PATCH] 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 |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 --- package/kernel/linux/modules/other.mk | 1 + target/linux/uml/config-6.12 | 1 + 2 files changed, 2 insertions(+) diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index 8da6216cbf2..61e395813b6 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -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 \ diff --git a/target/linux/uml/config-6.12 b/target/linux/uml/config-6.12 index 273c10ea4f2..d4f42f88b01 100644 --- a/target/linux/uml/config-6.12 +++ b/target/linux/uml/config-6.12 @@ -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 -- 2.47.2