> Use guard(mutex) to automatically unlock mutexes when going out of > scope. Simplify error paths by removing a goto and manual mutex > unlocking in multiple places. … > +++ b/drivers/reset/core.c … @@ -1041,29 +1036,27 @@ __of_reset_control_get(struct device_node *node, const char *id, int index, } } - mutex_lock(&reset_list_mutex); + guard(mutex)(&reset_list_mutex); rcdev = __reset_find_rcdev(&args, gpio_fallback); … rstc = __reset_control_get_internal(rcdev, rstc_id, shared, acquired); -out_unlock: - mutex_unlock(&reset_list_mutex); out_put: of_node_put(args.np); … Would you like to preserve the same lock scope (which ended before this function call)? @@ -1098,7 +1091,7 @@ __reset_control_get_from_lookup(struct device *dev, const char *con_id, const char *dev_id = dev_name(dev); struct reset_control *rstc = NULL; - mutex_lock(&reset_lookup_mutex); + guard(mutex)(&reset_lookup_mutex); list_for_each_entry(lookup, &reset_lookup_list, list) { … break; } } - mutex_unlock(&reset_lookup_mutex); - if (!rstc) return optional ? NULL : ERR_PTR(-ENOENT); … Would you really like to increase the lock scope here? Regards, Markus