Hi, > > +int wwan_register_ops(struct device *parent, const struct wwan_ops *ops, > > + void *ctxt) > > +{ > > + struct wwan_dev_reg *reg; > > + int ret; > > + > > + if (WARN_ON(!parent || !ops)) > > + return -EINVAL; > > + > > + mutex_lock(&wwan_mtx); > > + list_for_each_entry(reg, &wwan_devs, list) { > > + if (WARN_ON(reg->dev == parent)) { > > + ret = -EBUSY; > > + goto out; > > + } > > + } > > Thanks for this, overall it looks good to me, but just checking why > you're not using the wwan_dev internally to create-or-pick wwan_dev > (wwan_dev_create) and register ops to it, instead of having a global > new wwan_devs list. Uh, no good reason. I just missed that all that infrastructure is already there, oops. johannes