lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 17 Aug 2012 12:01:14 -0700
From:	Greg KH <gregkh@...uxfoundation.org>
To:	Marek Vasut <marek.vasut@...il.com>
Cc:	Tomas Hlavacek <tmshlvck@...il.com>, alan@...ux.intel.com,
	linux-serial@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv3 1/1] [RFC] uartclk from serial_core exposed to sysfs

On Fri, Aug 17, 2012 at 08:44:14PM +0200, Marek Vasut wrote:
> Dear Greg KH,
> 
> > 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 <gregkh@...uxfoundation.org> wrote:
> > > >> @@ -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.
> 
> (hint, DEVICE_ATTR), right ?

No, that's just a macro that creates the structure for the attribute.
You need to take that structure and tie it to the driver itself, using
the struct device_driver->groups; field.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ