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


Reply via email to