On Sat, Feb 10, 2024 at 11:06 AM Stefan Wahren <wahrenst@xxxxxxx> wrote: > > Hi, > we are using libgpiod-2.0.1 with Linux 6.1.49 on our Tarragon hardware > platform. Recently we implemented an application which waits for GPIO > interrupts and we were able to trigger a warning by naming the owner of > the GPIO as "R1/S1": > > WARNING: CPU: 0 PID: 429 at fs/proc/generic.c:173 > __xlate_proc_name+0x78/0x98 name 'R1/S1' > CPU: 0 PID: 429 Comm: cb_tarragon_dri Not tainted > 6.1.49-00019-g9dbc76303a17 #147 > Hardware name: Freescale i.MX6 Ultralite (Device Tree) > unwind_backtrace from show_stack+0x10/0x14 > show_stack from dump_stack_lvl+0x24/0x2c > dump_stack_lvl from __warn+0x74/0xbc > __warn from warn_slowpath_fmt+0xc8/0x120 > warn_slowpath_fmt from __xlate_proc_name+0x78/0x98 > __xlate_proc_name from __proc_create+0x3c/0x284 > __proc_create from _proc_mkdir+0x2c/0x70 > _proc_mkdir from proc_mkdir_data+0x10/0x18 > proc_mkdir_data from register_handler_proc+0xc8/0x118 > register_handler_proc from __setup_irq+0x554/0x664 > __setup_irq from request_threaded_irq+0xac/0x13c > request_threaded_irq from edge_detector_setup+0xc0/0x1f8 > edge_detector_setup from linereq_create+0x30c/0x384 > linereq_create from vfs_ioctl+0x20/0x38 > vfs_ioctl from sys_ioctl+0xbc/0x8b0 > sys_ioctl from ret_fast_syscall+0x0/0x54 > Exception stack(0xe0b61fa8 to 0xe0b61ff0) > 1fa0: 01b019b8 01a9f428 0000000d c250b407 beeae888 > beeae880 > 1fc0: 01b019b8 01a9f428 01af7e40 00000036 beeaeb88 beeaeb80 beeaeb58 > beeaeb60 > 1fe0: 00000036 beeae868 b6a88569 b6a01ae6 > ---[ end trace 0000000000000000 ]--- > > I'm not sure where this should be fixed. > Interesting. Seems as if the interrupt subsystem cannot handle '/' in the interrupt consumer name. I'm wondering if we should filter out any '/' in GPIO names when using the lines for interrupts? What do we replace them with? Bart