On Mon, Aug 03, 2015 at 12:59:45AM -0600, Sagar Dharia wrote:

> +     INIT_WORK(&sbw->wd, slim_report);
> +     sbw->sb = sb;
> +     sbw->report = report;
> +     if (!queue_work(ctrl->wq, &sbw->wd))
> +             kfree(sbw);

Should we not complain if we fail to schedule the work?

> +#define slim_device_attr_gr NULL
> +#define slim_device_uevent NULL
> +
> +static struct device_type slim_dev_type = {
> +     .groups         = slim_device_attr_gr,
> +     .uevent         = slim_device_uevent,

Why these NULL defines?  Just add the struct members as definitions are
added.

> +     dev_set_name(&sbdev->dev, "%s", sbdev->name);
> +     mutex_lock(&ctrl->m_ctrl);
> +     list_add_tail(&sbdev->dev_list, &ctrl->devs);
> +     mutex_unlock(&ctrl->m_ctrl);

Doesn't the driver model list of children of the controller give you
a list of devices connected to the controller?

> +     /* Can't register until after driver model init */
> +     if (WARN_ON(!slimbus_type.p)) {
> +             ret = -EAGAIN;
> +             goto out_list;
> +     }

Shouldn't the core code handle this for us?

Attachment: signature.asc
Description: Digital signature

Reply via email to