(Tweaking subject; this indeed isn't related to the regression at all)
Hi,
On Mon, Sep 09, 2024 at 10:02:00AM +0200, Borislav Petkov wrote:
Looking at your log, the first warn is in framebuffer_coreboot. Some mess in the sysfs platform devices registration.
Adding the relevant people for that:
Aug 20 20:29:36 luna kernel: sysfs: cannot create duplicate filename '/bus/platform/devices/simple-framebuffer.0' Aug 20 20:29:36 luna kernel: CPU: 5 PID: 571 Comm: (udev-worker) Tainted: G OE 6.10.6-arch1-1 #1 703d152c24f1971e36f16e505405e456fc9e23f8 Aug 20 20:29:36 luna kernel: Hardware name: Purism Librem 14/Librem 14, BIOS 4.14-Purism-1 06/18/2021 Aug 20 20:29:36 luna kernel: Call Trace: Aug 20 20:29:36 luna kernel: <TASK> Aug 20 20:29:36 luna kernel: dump_stack_lvl+0x5d/0x80 Aug 20 20:29:36 luna kernel: sysfs_warn_dup.cold+0x17/0x23 Aug 20 20:29:36 luna kernel: sysfs_do_create_link_sd+0xcf/0xe0 Aug 20 20:29:36 luna kernel: bus_add_device+0x6b/0x130 Aug 20 20:29:36 luna kernel: device_add+0x3b3/0x870 Aug 20 20:29:36 luna kernel: platform_device_add+0xed/0x250 Aug 20 20:29:36 luna kernel: platform_device_register_full+0xbb/0x140 Aug 20 20:29:36 luna kernel: platform_device_register_resndata.constprop.0+0x54/0x80 [framebuffer_coreboot a587d2fc243ebaa0205c3badd33442a004d284e0] Aug 20 20:29:36 luna kernel: framebuffer_probe+0x165/0x1b0 [framebuffer_coreboot a587d2fc243ebaa0205c3badd33442a004d284e0] Aug 20 20:29:36 luna kernel: really_probe+0xdb/0x340 Aug 20 20:29:36 luna kernel: ? pm_runtime_barrier+0x54/0x90 Aug 20 20:29:36 luna kernel: ? __pfx___driver_attach+0x10/0x10 Aug 20 20:29:36 luna kernel: __driver_probe_device+0x78/0x110 Aug 20 20:29:36 luna kernel: driver_probe_device+0x1f/0xa0 Aug 20 20:29:36 luna kernel: __driver_attach+0xba/0x1c0 Aug 20 20:29:36 luna kernel: bus_for_each_dev+0x8c/0xe0 Aug 20 20:29:36 luna kernel: bus_add_driver+0x112/0x1f0 Aug 20 20:29:36 luna kernel: driver_register+0x72/0xd0 Aug 20 20:29:36 luna kernel: ? __pfx_framebuffer_driver_init+0x10/0x10 [framebuffer_coreboot a587d2fc243ebaa0205c3badd33442a004d284e0] Aug 20 20:29:36 luna kernel: do_one_initcall+0x58/0x310 Aug 20 20:29:36 luna kernel: do_init_module+0x60/0x220 Aug 20 20:29:36 luna kernel: init_module_from_file+0x89/0xe0 Aug 20 20:29:36 luna kernel: idempotent_init_module+0x121/0x320 Aug 20 20:29:36 luna kernel: __x64_sys_finit_module+0x5e/0xb0 Aug 20 20:29:36 luna kernel: do_syscall_64+0x82/0x190 Aug 20 20:29:36 luna kernel: ? __do_sys_newfstatat+0x3c/0x80 Aug 20 20:29:36 luna kernel: ? syscall_exit_to_user_mode+0x72/0x200 Aug 20 20:29:36 luna kernel: ? do_syscall_64+0x8e/0x190 Aug 20 20:29:36 luna kernel: ? do_sys_openat2+0x9c/0xe0 Aug 20 20:29:36 luna kernel: ? syscall_exit_to_user_mode+0x72/0x200 Aug 20 20:29:36 luna kernel: ? do_syscall_64+0x8e/0x190 Aug 20 20:29:36 luna kernel: ? clear_bhb_loop+0x25/0x80 Aug 20 20:29:36 luna kernel: ? clear_bhb_loop+0x25/0x80 Aug 20 20:29:36 luna kernel: ? clear_bhb_loop+0x25/0x80 Aug 20 20:29:36 luna kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e Aug 20 20:29:36 luna kernel: RIP: 0033:0x7b1bee2f81fd
Looks like it might be a conflict with drivers/firmware/sysfb_simplefb.c, which also uses the "simple-framebuffer" name with a constant ID of 0. It's possible both drivers should be switched to use PLATFORM_DEVID_AUTO? Or at least one of them. Or they should use different base names.
I'm not really sure what the best option is (does anyone rely on or care about the device naming?), and I don't actually use this driver. But here's an untested diff to try if you'd really like. If you test it, feel free to submit as a proper patch with my:
Signed-off-by: Brian Norris briannorris@chromium.org
diff --git a/drivers/firmware/google/framebuffer-coreboot.c b/drivers/firmware/google/framebuffer-coreboot.c index daadd71d8ddd..3f1b8f664c3f 100644 --- a/drivers/firmware/google/framebuffer-coreboot.c +++ b/drivers/firmware/google/framebuffer-coreboot.c @@ -62,7 +62,8 @@ static int framebuffer_probe(struct coreboot_device *dev) return -EINVAL;
pdev = platform_device_register_resndata(&dev->dev, - "simple-framebuffer", 0, + "simple-framebuffer", + PLATFORM_DEVID_AUTO, &res, 1, &pdata, sizeof(pdata)); if (IS_ERR(pdev))