On Mon, Feb 12, 2024 at 2:47 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > Hi Linus, > > On Mon, Feb 12, 2024 at 2:35 PM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > looping in Geert becaus I think he wants to look into this! > > Oh no ;-) > > > On Sat, Feb 10, 2024 at 11:06 AM Stefan Wahren <wahrenst@xxxxxxx> wrote: > > > 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. > > Any names ending up in sysfs cannot contain a slash? It's actually procfs. Every irq has an entry under /proc/irq/xyz/ containing a directory named after the name of the interrupt. In this case the path of the directory would have been /proc/irq/xyz/R1/S1 but of course this wouldn't work. Should we replace every `/` in GPIO line names with `:` for interrupts? Bart > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds