[PATCH] serial: core: restore of_node information in sysfs

Aidan Stewart posted 1 patch 3 months, 3 weeks ago
There is a newer version of this series
drivers/tty/serial/serial_base_bus.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] serial: core: restore of_node information in sysfs
Posted by Aidan Stewart 3 months, 3 weeks ago
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
Re: [PATCH] serial: core: restore of_node information in sysfs
Posted by Greg KH 3 months, 3 weeks ago
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
Re: [PATCH] serial: core: restore of_node information in sysfs
Posted by Aidan Stewart 3 months, 3 weeks ago
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
Re: [PATCH] serial: core: restore of_node information in sysfs
Posted by Greg KH 3 months, 3 weeks ago
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