Re: [RFC PATCHv2] usb: USB Type-C Connector Class

From: Oliver Neukum
Date: Thu May 19 2016 - 10:52:21 EST


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.

> + 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.

Regards
Oliver