Messages in this thread | | | Date | Thu, 29 Jun 2023 10:13:43 +0200 | From | Jiri Pirko <> | Subject | Re: [RFC PATCH v9 03/10] dpll: core: Add DPLL framework base functions |
| |
Fri, Jun 23, 2023 at 02:38:13PM CEST, arkadiusz.kubalewski@intel.com wrote: >From: Vadim Fedorenko <vadim.fedorenko@linux.dev> >
One thing I forgot to point out the last time:
[...]
>+int >+dpll_pin_register(struct dpll_device *dpll, struct dpll_pin *pin, >+ const struct dpll_pin_ops *ops, void *priv) >+{ >+ int ret; >+ >+ if (WARN_ON(!ops) || >+ WARN_ON(!ops->state_on_dpll_get) || >+ WARN_ON(!ops->direction_get))
Please add check that you don't register to dpll instance which is unregistered. Similar check needs to be added to pin_on_pin register.
Also, make sure you don't unregister dpll device/pin which has child pins registered under it.
>+ return -EINVAL; >+ >+ mutex_lock(&dpll_lock); >+ if (WARN_ON(!(dpll->module == pin->module && >+ dpll->clock_id == pin->clock_id))) >+ ret = -EINVAL; >+ else >+ ret = __dpll_pin_register(dpll, pin, ops, priv); >+ mutex_unlock(&dpll_lock); >+ >+ return ret; >+}
[...]
| |