From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754750AbcESPna (ORCPT ); Thu, 19 May 2016 11:43:30 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:33613 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754225AbcESPn2 (ORCPT ); Thu, 19 May 2016 11:43:28 -0400 Date: Thu, 19 May 2016 08:43:27 -0700 From: Greg KH To: Oliver Neukum Cc: Heikki Krogerus , Guenter Roeck , Andy Shevchenko , Rajaram R , Felipe Balbi , Mathias Nyman , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: [RFC PATCHv2] usb: USB Type-C Connector Class Message-ID: <20160519154327.GA16454@kroah.com> References: <1463661894-22820-1-git-send-email-heikki.krogerus@linux.intel.com> <1463669326.14323.10.camel@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1463669326.14323.10.camel@suse.com> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 19, 2016 at 04:48:46PM +0200, Oliver Neukum wrote: > On Thu, 2016-05-19 at 15:44 +0300, Heikki Krogerus wrote: > > > + dev->class = &typec_class; > > + dev->parent = parent; > > + dev->type = &typec_partner_dev_type; > > + dev_set_name(dev, "%s-partner", dev_name(&port->dev)); > > + > > + ret = device_register(dev); > > + if (ret) { > > + put_device(dev); > > + return ret; > > + } > > This looks like a race condition. Really? How? > > + ret = typec_register_altmodes(dev, partner->alt_modes); > > + if (ret) { > > + device_unregister(dev); > > + return ret; > > + } > > + > > + /* REVISIT: Creating symlink for the port device for now. */ > > + ret = sysfs_create_link(&port->dev.kobj, &dev->kobj, "partner"); > > + if (ret) > > + dev_WARN(&port->dev, "failed to create link to %s (%d)\n", > > + dev_name(dev), ret); > > The attributes should be present as soon as the device is announced. Yes, this is wrong and racy (hint, if you have to drop down to a sysfs call within a driver, almost always something is wrong...) thanks, greg k-h