drivers/tty/serial/serial_base_bus.c | 4 ++++ 1 file changed, 4 insertions(+)
Since in v6.8-rc1, the of_node symlink under tty devices is
missing. This breaks any udev rules relying on this information.
Link the of_node information in the serial controller device with the
parent defined in the device tree. This will also apply to the serial
device which takes the serial controller as a parent device.
Fixes: b286f4e87e32 ("serial: core: Move tty and serdev to be children of serial core port device")
Cc: stable@vger.kernel.org
Signed-off-by: Aidan Stewart <astewart@tektelic.com>
---
drivers/tty/serial/serial_base_bus.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/tty/serial/serial_base_bus.c b/drivers/tty/serial/serial_base_bus.c
index 5d1677f1b651..0e4bf7a3e775 100644
--- a/drivers/tty/serial/serial_base_bus.c
+++ b/drivers/tty/serial/serial_base_bus.c
@@ -73,6 +73,10 @@ static int serial_base_device_init(struct uart_port *port,
dev->bus = &serial_base_bus_type;
dev->release = release;
+ if (IS_ENABLED(CONFIG_OF)) {
+ device_set_of_node_from_dev(dev, parent_dev);
+ }
+
if (!serial_base_initialized) {
dev_dbg(port->dev, "uart_add_one_port() called before arch_initcall()?\n");
return -EPROBE_DEFER;
--
2.49.0
On Mon, Jun 16, 2025 at 10:21:54AM -0600, Aidan Stewart wrote:
> Since in v6.8-rc1, the of_node symlink under tty devices is
> missing. This breaks any udev rules relying on this information.
>
> Link the of_node information in the serial controller device with the
> parent defined in the device tree. This will also apply to the serial
> device which takes the serial controller as a parent device.
>
> Fixes: b286f4e87e32 ("serial: core: Move tty and serdev to be children of serial core port device")
> Cc: stable@vger.kernel.org
> Signed-off-by: Aidan Stewart <astewart@tektelic.com>
> ---
> drivers/tty/serial/serial_base_bus.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/tty/serial/serial_base_bus.c b/drivers/tty/serial/serial_base_bus.c
> index 5d1677f1b651..0e4bf7a3e775 100644
> --- a/drivers/tty/serial/serial_base_bus.c
> +++ b/drivers/tty/serial/serial_base_bus.c
> @@ -73,6 +73,10 @@ static int serial_base_device_init(struct uart_port *port,
> dev->bus = &serial_base_bus_type;
> dev->release = release;
>
> + if (IS_ENABLED(CONFIG_OF)) {
> + device_set_of_node_from_dev(dev, parent_dev);
> + }
Did this pass checkpatch.pl?
And why is the if statement needed?
thanks,
greg k-h
On Tue, 2025-06-17 at 06:44 +0200, Greg KH wrote:
>
> On Mon, Jun 16, 2025 at 10:21:54AM -0600, Aidan Stewart wrote:
> >
> >
> > + if (IS_ENABLED(CONFIG_OF)) {
> > + device_set_of_node_from_dev(dev, parent_dev);
> > + }
>
> Did this pass checkpatch.pl?
I ran checkpatch.pl with the --strict option and I didn't get any warnings
or errors. Is there a style issue you would like me to fix?
> And why is the if statement needed?
I guess it's not really needed. I was trying to avoid the call for non-DT
systems, but it should still be safe to do. I will remove it in v2.
> thanks,
>
> greg k-h
--
Thanks,
Aidan Stewart
On Tue, Jun 17, 2025 at 03:46:37PM +0000, Aidan Stewart wrote:
> On Tue, 2025-06-17 at 06:44 +0200, Greg KH wrote:
> >
> > On Mon, Jun 16, 2025 at 10:21:54AM -0600, Aidan Stewart wrote:
> > >
> > >
> > > + if (IS_ENABLED(CONFIG_OF)) {
> > > + device_set_of_node_from_dev(dev, parent_dev);
> > > + }
> >
> > Did this pass checkpatch.pl?
> I ran checkpatch.pl with the --strict option and I didn't get any warnings
> or errors. Is there a style issue you would like me to fix?
You should not need {} for a one line if statement.
> > And why is the if statement needed?
> I guess it's not really needed. I was trying to avoid the call for non-DT
> systems, but it should still be safe to do. I will remove it in v2.
Please do!
thanks,
greg k-h
© 2016 - 2026 Red Hat, Inc.