Thread (30 messages) 30 messages, 6 authors, 2012-09-06

Re: [PATCHv3 1/1] [RFC] uartclk from serial_core exposed to sysfs

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2012-08-17 16:55:08
Also in: lkml

On Fri, Aug 17, 2012 at 06:30:36PM +0200, Tomas Hlavacek wrote:
Hello Greg!

On Fri, Aug 17, 2012 at 5:06 PM, Greg KH [off-list ref] wrote:
quoted
quoted
@@ -2355,6 +2373,14 @@ int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport)
      }

      /*
+      * Expose uartclk in sysfs. Use driverdata of the tty device for
+      * referencing the UART port.
+      */
+     dev_set_drvdata(tty_dev, port);
+     if (device_create_file(tty_dev, &dev_attr_uartclk) < 0)
+             dev_err(tty_dev, "Failed to add uartclk attr\n");
I think you just raced with userspace in creating the file after the
device was announced to userspace.  Are you sure it's ok?

If not (hint, I don't think so), please make it a default attribute of
the device, which will then cause the file to be created before it is
announced to userspace.  It will also be less code as you don't have to
clean it up by hand :)
Do you mean I should modify the tty_register_device() function not to
use device_create() but it should rather do the device initialization
on it's own.
No, not at all.
And I should add add the attribute (via struct attribute_group) to
struct device in between device_initialize() and device_add() calls.
Did I get it right?
No, make this a driver attribute, that way when the device is
registered, it adds the attribute automagically to the device that is
bound to it.

Does that make sense?

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help