Re: [PATCH v2 1/1] serial: core: Fix serial_base_match() after fixing controller port name

From: Tony Lindgren
Date: Sat Aug 05 2023 - 00:49:21 EST

* Guenter Roeck <linux@xxxxxxxxxxxx> [230804 21:42]:
> On Thu, Aug 03, 2023 at 10:10:32AM +0300, Tony Lindgren wrote:
> > While fixing DEVNAME to be more usable, I broke serial_base_match() as the
> > ctrl and port prefix for device names seemed unnecessary.
> >
> > The prefixes are still needed by serial_base_match() to probe the serial
> > base controller port, and serial tx is now broken.
> >
> > Let's fix the issue by checking against dev->type and drv->name instead
> > of the prefixes that are no longer in the DEVNAME.
> >
> > Fixes: 1ef2c2df1199 ("serial: core: Fix serial core controller port name to show controller id")
> > Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
> > Closes:
> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> With this patch applied, I see the following traceback in the pending-fixes
> branch.
> Bisect log attached as well. It actually points to commit d962de6ae51f
> ("serial: core: Fix serial core port id to not use port->line").
> Bisect was on mips, but I also see problems on arm, ppc, and sparc.
> sparc boot tests show the warning message and then stall until aborted
> (which of course may be a different problem).

Sorry about all the hassles and thanks for testing again.

I too noticed several issues remaining after testing reloading the hardware
specific serial driver, the issues I saw should be fixed in tty-linus.

> kobject: kobject_add_internal failed for serial8250.0:0.0 with -EEXIST, don't try to register things with the same name in the same directory.
> serial8250 serial8250.0: unable to register port at index 1 (IO2f8 MEM0 IRQ3): -17
> sysfs: cannot create duplicate filename '/devices/platform/serial8250.0/serial8250.0:0/serial8250.0:0.0'

The issue above should be fixed with commit:

bbb4abb1bcfb ("serial: 8250: Reinit port_id when adding back serial8250_isa_devs")

Not sure about the sparc one you mentioned, but let's when you run your
tests again.